Issue Description
I'm experiencing a consistent issue with the NXP RW612 where the ROM bootloader always enters ISP mode instead of booting from external flash, regardless of the binary structure or configuration used.
Symptoms
What I've Tested
Current Setup
Questions for the Community
Additional Context
The fact that even official Zephyr samples (frdm_rw612 and rd_rw612_bga) result in identical ISP mode behavior suggests this might be a fundamental issue with either:
Any guidance or working examples would be greatly appreciated!
Hello @dstarck, hope you are doing well.
Please check Chapter 11 - Non-secure boot ROM of the UM11865 - RW61x User Manual available at the product page, which contains information regarding on RW61x boot modes as well as FCB configuration and structure.
Additionally, please refer to Migration guide from FRDM-RW612 to third-party module memories, where a guide and example to configure the IRIS-W106-30B specific flash memory is provided.
Note: You mentioned that you tried to load an RD-RW612-BGA binary into your EVK, this procedure might cause to lock the flash and not be able to write to it, if you see this behavior, take a look into the following post on how to solve it: How to solve flashing problems in FRDM-RW612 (flash lock).
Let me know if the resources are helpful.
btw... I found the UM11865 User Manual late last night... I will also review the docs you posted... here is a summary of my investigations from this morning:
IRIS-W106-30B module (RW612-based) ROM bootloader remains stuck in ISP mode (PC =
1302B460) instead of handing off to MCUBoot bootloader from external flash.
Investigation Results
- FlexSPI external flash access via FCB (Flash Configuration Block)
- FCB signature: 42464346 at 0x08000400
- IVT (Image Vector Table) signature: 402000D1 at 0x08001040
- ARM Cortex-M33 vector table: valid stack pointer 3000B320 at 0x08001400
- External flash programming and verification successful
- All boot structures readable by ROM bootloader
- IVT boot_data_ptr (0x08001060) points to location containing all zeros
- Boot data structure not properly placed in flash by linker
- ROM bootloader validates boot structures but rejects image during validation
phase
Key Technical Details:
- Memory Layout: FCB@0x400 → IVT@0x1040 → ARM_vectors@0x1400
- IVT pointers: boot_data_ptr=0x08001060, self_ptr=0x08001040
- ROM bootloader successfully initializes FlexSPI and reads flash contents
- Issue occurs during image validation, not during flash access
Build Configuration:
- Using Zephyr RTOS with MCUBoot
- CONFIG_NXP_RW6XX_BOOT_HEADER=y
- CONFIG_TRUSTED_EXECUTION_NONSECURE=y
- Custom IVT header and FCB for IRIS-W106-30B
Remaining Question for NXP Community
Does the RW612 ROM bootloader require signed/authenticated boot images for handoff
to external flash bootloaders?
The ROM bootloader appears to validate all boot structures correctly but refuses
handoff. Missing boot data structure suggests either:
1. Linker script issue preventing proper boot data placement in flash
2. ROM bootloader requires signed images (HAB/secure boot) even for bootloader
handoff
3. Additional validation requirements (I will review the docs)
Any additional insights on the RW612-specific ROM bootloader validation requirements would be appreciated.
Thanks so much for your assistance!
Hello @dstarck.
Regarding your question about requiring signed/authenticated boot images, please refer to page 78 of UM11865 where the validation of the boot process is detailed, if you are not using secure boot ROM, the image does not require signature.
Additionally, please confirm if you have followed the guide/example I shared from the Application Code Hub.
Let me know if the information is useful and about your findings.
Yes, I got it, and have made the changes. I am working with a custom board that has a IRIS-W106-30B module (which contains the RW612). I'll be testing over the weekend. Thanks. I will reach out if I have questions, and will report back regarding my progress.
Thank you so much I will check these out and will report back. I thing the root if the issue us that the ROM bootloader can boit validate the MCUBoot bootloader in flash memory... I will report back later today