-
Couldn't load subscription status.
- Fork 8.1k
Description
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

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


Expected behavior
CANXL Errors is reported and printed in console.

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