Skip to content

NXP S32 CANXL driver is missing CANXL MRU handler, CANXL errors is not reported #75022

@congnguyenhuu

Description

@congnguyenhuu

NXP S32 CANXL driver is missing CANXL MRU handler, CANXL error is not reported

Describe the bug
In HAL driver NXP S32 RTD, it supplies APIs and error handler that statistic CAN errors and count CAN TX and RX errors via BCANXL, uses CANXL MRU to exchange information with CAN host to get errors report.

But current implementation handler of NXP S32 CANXL driver is missing CANXL MRU handler.

To Reproduce
Run samples/net/socket/can in normal mode and CAN bus is disconnected. The log error is expected to see.

Result: just see CAN sending frames but not see any errors print in console
image

The flow error handling when error interrupts happen: error handler is called -> execute Canexcel_GetControllerMRU() and verify status -> If status OK, errors is reported, error callbacks is call else no error reported.

See function Canexcel_GetControllerMRU() will enable CANXL MRU and send a msg MRU to get error report then expect a CANXL MRU interrupt trigger, call MRU handler to return status OK for get error report sucessfully.
Because of missing CANXL MRU handler, Canexcel_GetControllerMRU() return TIMEOUT, so error callbacks are not called.

Canexcel_GetControllerMRU() return TIMEOUT
image
image

Expected behavior
CANXL Errors is reported and printed in console.
image

Impact
CANXL errors is not reported. No console error is printed.

Logs and console output
See above captures

Environment (please complete the following information):
OS: Linux
Toolchain Zephyr SDK
Commit SHA or Version used 7f8cc43

Additional context
NA

Metadata

Metadata

Assignees

Labels

area: CANbugThe issue is a bug, or the PR is fixing a bugplatform: NXP S32NXP Semiconductors, S32

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions