| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
The imxrt FlexCAN driver left the TX mailbox CS word uninitialised, so classic frames went out with EDL set and appeared on the wire as CAN FD, and its TX timeout handler aborted mailboxes that were still transmitting. Either one takes the interface error passive and it never recovers. Picks up PX4/NuttX #395 and #396.
The imxrt FlexCAN driver left the TX mailbox CS word uninitialised, so classic frames went out with EDL set and appeared on the wire as CAN FD, and its TX timeout handler aborted mailboxes that were still transmitting. Either one takes the interface error passive and it never recovers. Picks up PX4/NuttX #395 and #396. (cherry picked from commit cd512ae) Assisted-by: GitHub Copilot:gpt-6-astra
The imxrt FlexCAN driver left the TX mailbox CS word uninitialised, so classic frames went out with EDL set and appeared on the wire as CAN FD, and its TX timeout handler aborted mailboxes that were still transmitting. Either one takes the interface error passive and it never recovers. Picks up PX4/NuttX #395 and #396. (cherry picked from commit cd512ae) Assisted-by: GitHub Copilot:gpt-6-astra
| Back | FazBrowse Home | New Git URL |
Summary
Bumps the NuttX submodule to the current px4_firmware_nuttx-10.3.0+ tip, picking up PX4/NuttX #395 and #396. No PX4-side changes.
Problem
The imxrt FlexCAN driver left the TX mailbox CS word uninitialised, so classic frames were transmitted with EDL set and reached the bus as CAN FD. Separately, its TX timeout handler aborted the wrong mailbox and used an expiry test that fires across any second boundary, so live frames were aborted. Either one drives the transmit error counter to error passive and pins the mailbox allocator, and transmit never recovers — including across a reboot.
Solution
#396 zero-initialises the mailbox union and gates BRS on imxrt, s32k1xx, s32k3xx and kinetis. #395 fixes the timeout handler's mailbox indexing, expiry comparison, deadline lifetime and ring bound on imxrt, and assigns MCR MAXMB rather than OR-ing it in.
Measured on an ARK FMU-v6XRT with a DroneCAN GNSS node offering 736 frames/s: 0 frames/s and error passive before, 734 frames/s at 0.1% loss and error active after.