Repository navigation
arch/arm/src/imxrt: Add rptun backend for the RT117x CM4 over the MU mailbox. - #420
Draft
methodmissing wants to merge 2 commits into
Draft
methodmissing wants to merge 2 commits into
methodmissing wants to merge 2 commits into
Conversation
…mailbox. Assisted-by: Claude:claude-fable-5-1 Signed-off-by: Lourens Naude <lourens@bearmetal.eu>
…end. Assisted-by: Claude:claude-fable-5-1 Signed-off-by: Lourens Naude <lourens@bearmetal.eu>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
RPTUN backend for the i.MX RT1170 CM4, opt-in through
CONFIG_IMXRT_RPTUN. NuttX on the CM7 loads aCM4 ELF through the LMEM backdoor window, programs the boot vector into
IOMUXC_LPSR_GPR0/1,releases and holds the core through SRC, and exchanges virtqueue kicks over MU-A channel 0. A CM4
lockup resets only the CM4. The board passes name, ELF path, address environment and boot vector to
imxrt_rptun_init()and maps the shared window non-cacheable. Documentation in the second commit.Related: #421 (OpenAMP length hardening, independent), PX4/PX4-Autopilot#28880 (the
px4_fmu-v6xrtrpmsg variant and CM4 remote that use this).Impact
imxrt_rptun_init()and ships a CM4 image.containment.
Testing
make px4_fmu-v6xrt_rpmsg.tools/checkpatch.shpasses.To replay on the PX4 branch. The PX4
remote_corecommand drives the rptun ioctls and prints theboard's register view in the shell. The nsh
rptunbuiltin works on the device node and reportsthrough NuttX
syslog, which this config sends to the LPUART1 debug UART, so its output is visiblethere only, not in a MAVLink or USB shell and not in
dmesg.rpmsg dump allwalks/dev/rpmsg,absent for an rptun node; use
rptun dump.The three faults differ in what the CM4 does:
hardfaulttakes an exception and parks,lockupfaults again inside the handler so the core locks up, and
hangspins with interrupts off. In allthree the CM7 shell stays up,
SRSRgains no reset cause, and a stop/start cycle recovers the CM4.Logs after change (new feature, none before), NuttX
46bc73fe11on PX4rpmsg-v6xrt, run of2026-09-28 over the MAVLink shell. The two
rptunlines print on LPUART1, hence no output here:PR verification Self-Check