MCAN's RF0L and RF1L Interrupts not Handled #63544
Labels
area: CAN
bug
The issue is a bug, or the PR is fixing a bug
priority: medium
Medium impact/importance bug
Describe the bug
The message lost interrupt in the mcan driver is being directed to the line 0 interrupt instead of line 1 which is what handles that interrupt. When this interrupt occurs, the controller will lock up since it never clears/handles the interrupt.
To Reproduce
I have not replicated the error using a built in Zephyr board, but I expect that it will exhibit identical behavior if paused during debug. In particular, I am operating on an STM32H753VI. The behavior that the MCAN is not halted when the cpu is halted may be specific to this family, but I haven't looked into it. That said, I have confirmed that my fix removes the problem, and aligns with the intended operation of the driver.
Expected behavior
MCAN driver should properly handle a Message Lost interrupt and not lock up the processor.
Impact
This is a critical fault as it prevents debugging (Since the MCAN isn't halted when the cpu is halted, it fills the FIFO and start missing messages which triggers the failure.) and also would lock up the processor in the event that the CPU can't process all of the messages in time.
Fix
RF0L and RF1L simply need to be moved to line 1 instead. I've already posted the pull request to fix it: #63489
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: