MCU BootUtility: Non-XIP Application is detected on custom PCB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCU BootUtility: Non-XIP Application is detected on custom PCB

Jump to solution
1,103 Views
opamp_magic
Contributor II

I've got a custom RT1176 design with an external flash chip (IS25LP128F-JBLA3) on the FlexSPI 2A interface. Using MCUXpresso v11.5.0, I've modified the blinky example code to toggle the DAC output instead of a GPIO. I'm trying to use MCU BootUtility v3.5.0 to program my custom board with my modified code as an XIP application. I am connecting to the board using the USB interface, with the RT1176 configured for serial download mode.

When I press "Generate Unsigned Bootable Image" in the BootUtility tool, I get the error "Non-XIP Application is detected but is not in the range of ITCM/DTCM/OCRAM/SDRAM!". I have tried with .axf, .s19, and .bin files without success. I got all of these files out of the Debug folder, and generated the .s19 and .bin files by right-clicking the .axf file in the IDE. 

I have tried a bunch of stuff from other NXP forum posts and have not gotten my situation to work. Is there something I need to configure in MCUXpresso to get it to generate an XIP application? Or is there something else I'm doing wrong?

 

Some of the things that i've checked:

  • I have set XIP_BOOT_HEADER_ENABLE=0, which is apparently required for the BootUtility tool
  • I have not modified the linker file as instructed here because it looks like the linker file is auto-generated now. Do I need to change something in the linker file autogeneration options?
  • MCU BootUtility successfully connects to the custom board over USB (blue circle in the port setup section)
  • I have run my modified blinky code on the EVK board and it works as intended
  • I have tried to use the BootUtility's Boot Device Memory tab with no luck
  • All the power rails on the board look good on an oscilloscope

Thank you in advance!

Labels (1)
0 Kudos
Reply
1 Solution
1,074 Views
opamp_magic
Contributor II

Found the solution myself eventually

In MCUXpresso, under Project -> Properties -> C/C++ Build -> MCU settings, in the memory map, I had to change the location of my flash memory from the default 0x30000000 to 0x60002000

The micro boots now!

 

Various other details in case anyone else runs into this in the future:

* I added an XIP_BOOT_HEADER_DCD_ENABLE=0 line, which previously did not exist (it wasn't set to 1, it just wasn't there at all)

* The file type that finally worked was an .s19 generated as a post-build step

* I changed the Size of my flash memory from 0x10000000 to 0x0ffe000

* I was able to use the MCU BootUtility's Boot Device Memory tab to write and read back binary files well before the micro was actually booting

View solution in original post

0 Kudos
Reply
2 Replies
1,087 Views
opamp_magic
Contributor II

I followed the instructions here to generate a binary file and .s19 file as a post-build step. Using the .s19, I get the same "Non-XIP application" error. Using that binary, i'm no longer getting the non-XIP application error, but it still doesn't work. If I specify a base address of 0x00002000 or 0x00003000, MCU BootUtility now runs without throwing an error, but when I switch to internal boot mode and power cycle, nothing happens

I've also confirmed that I'm definitely able to write to & read from the flash chip using the Boot Device Memory tab. The RT1176 reference manual describes what the IVT header is supposed to look like, and I found it at 0x60001000. I'm not sure why the memory addresses that the Boot Device Memory tab reads back all start at 0x60000000; I can't find that number anywhere else

0 Kudos
Reply
1,075 Views
opamp_magic
Contributor II

Found the solution myself eventually

In MCUXpresso, under Project -> Properties -> C/C++ Build -> MCU settings, in the memory map, I had to change the location of my flash memory from the default 0x30000000 to 0x60002000

The micro boots now!

 

Various other details in case anyone else runs into this in the future:

* I added an XIP_BOOT_HEADER_DCD_ENABLE=0 line, which previously did not exist (it wasn't set to 1, it just wasn't there at all)

* The file type that finally worked was an .s19 generated as a post-build step

* I changed the Size of my flash memory from 0x10000000 to 0x0ffe000

* I was able to use the MCU BootUtility's Boot Device Memory tab to write and read back binary files well before the micro was actually booting

0 Kudos
Reply