MIMXRT105x: upgrade linker script to use memory banks, disable SRAM #411
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 of changes
This PR upgrades the MIMXRT105x/6x linker script to use memory banks instead of the hand-written header file that it had been using. This enables bootloader support on the MIMXRT106x, and I also took the chance to enable crash data RAM on it.
Unfortunately, while testing this change, I ran into constant failures on the heap fill test (which I don't think had been reactivated until a couple months ago, so it never got run on this target before). It showed that there was corruption happening in the external 256MB SDRAM: bytes received didn't always match bytes written back.
For now, I didn't have a ton of time to dig into this, after half an hour of messing around I kinda had to keep moving. So, I had to disable the SDRAM for now to restore stable operation of the chip. Thankfully it still has a reasonable amount of on-chip ram (256k usable for MIMXRT105x, 768k usable for MIMXRT106x), so it isn't totally hobbled for most applications. Future tasks would be to do some deeper testing to understand why this corruption is happening (i.e. do A-B testing with IDE projects and Mbed), and to enable split heap for MIMXRT105x so we can take advantage of more of the on-chip RAM.
UPDATE: Split heap support added
Impact of changes
MIMXRT1050_EVK and MIMXRT1060_EVK RAM space currently reduced to just the DTCM bank (fast on-chip data RAM) pending investigation into external SDRAM errors.
Migration actions required
Documentation
Before merge I will update the MIMXRT105x info page to explain about SDRAM being disabled for now (the corruption, and also it causes debugging issues).
Pull request type
Test results
Working a test run with this plus my other PR