Skip to content

Add section for boot ROM reservations#30

Merged
mciantyre merged 1 commit into
imxrt-rs:mainfrom
mciantyre:bootrom-reserve
Mar 12, 2026
Merged

Add section for boot ROM reservations#30
mciantyre merged 1 commit into
imxrt-rs:mainfrom
mciantyre:bootrom-reserve

Conversation

@mciantyre

Copy link
Copy Markdown
Member

The boot ROM is allowed to use allocations of OCRAM as scratch space. If you interact with the boot ROM -- using it to interact with FlexSPI, for instance -- then you cannot also use these OCRAM regions. See the system boot chapter in the reference manual for more info.

The boot ROM typically reserves the start of OCRAM. The size varies by chip. This commit describes a new section, .bootrom_reservation, at the start of OCRAM. Users are encouraged to place a MaybeUninit buffer that's sized for your ROM's requirements.

If users don't place anything in this section, then the new directive is a no-op. On the other hand, the section is defined before other RAM regions, so that it takes precedence over other sections users might want to place in OCRAM.

Tested using the runtime's test suite. I'm testing with the Teensy 4 binary, since the test suite can support features in this build. The updated test suite shows that the linker will place the boot ROM reservation before placing the stack, suggesting that we're respecting section priority.

The boot ROM is allowed to use allocations of OCRAM as scratch space. If
you interact with the boot ROM -- using it to interact with FlexSPI, for
instance -- then you cannot also use these OCRAM regions. See the system
boot chapter in the reference manual for more info.

The boot ROM typically reserves the start of OCRAM. The size varies by
chip. This commit describes a new section, .bootrom_reservation, at the
start of OCRAM. Users are encouraged to place a MaybeUninit buffer
that's sized for your ROM's requirements.

If users don't place anything in this section, then the new directive is
a no-op. On the other hand, the section is defined before other RAM
regions, so that it takes precedence over other sections users might
want to place in OCRAM.

Tested using the runtime's test suite. I'm testing with the Teensy 4
binary, since the test suite can support features in this build. The
updated test suite shows that the linker will place the boot ROM
reservation before placing the stack, suggesting that we're respecting
section priority.
@mciantyre
mciantyre merged commit a0dd354 into imxrt-rs:main Mar 12, 2026
7 checks passed
@mciantyre
mciantyre deleted the bootrom-reserve branch March 12, 2026 11:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant