Create bootable image for RT1173 QSPI flash

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

Create bootable image for RT1173 QSPI flash

2,342 Views
Stephan_
Contributor I

Hello,

I've working on custom hardware with iMX RT1173. The MCU is booting from QSPI NOR Flash connected to FlexSPI2 (2nd Pin Group), which lead into some trouble with given tools.

The on-Boad Debugger from i.MX RT1170 EVK is not capable to work with Flash connected to FlexSPI2. Segger JLink is also not capable. Even with MCU Boot Utility I'm not able to access Flash. I'm using Lauterbach uTrace which can access Flash, so I'm able to debug and write Image to flash.

I've done a little test project which is running fine if I use 'Run from RAM' configuration. But when I try to generate bin or srec file to write into flash the MCU will still boot in 'Serial Download Mode'. Bootconfig is set to 'Boot from Fuses' and fuses FLEXSPI_INSTANCE, FLEXSPI_PIN_GROUP_SEL and BT_FUSE_SEL are configured correct.

I think in the generated files the QSPI Header information is missing so MCU internal bootloader will fail in 'Load and Authenticate' step. In MCUXpresso I've set XIP_EXTERNAL_FLASH=1 and XIP_BOOT_HEADER_ENABLE=1 but according map file the qspiflash_config is not linked into binary.

Can someone give me a hint how I can generate complete flash image to use with external tools like Lauterbach?

Best Regards

0 Kudos
Reply
6 Replies

2,210 Views
Usharani_1
Contributor II

Hi Stephen,

We are also using NXP i.MXRT 1173 in our customized board. 

1. In the SDK for 1173, there is no XIP folder under 'SDK_2_11_0_MIMXRT1173xxxxx\devices\MIMXRT1173\'.

Like to know, whether u have used XIP files in 1176 SDK for 1173 QSPI Flash XIP.

2. May I know the IDE used in your side. We are using KEIL IDE, in order to create a new project from scratch using 1173, may I know the steps u have followed to include all the folders and files as we do not have an example project using 1173.

Best Regards

 

 

Tags (1)
0 Kudos
Reply

2,332 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
According to your statement, it fails to build a communication with the RT1173 when using the tool, is it right?
Furthermore, whether you ever try to use the polling_transfer demo from the SDK library to access the QSPI flash. (Note: it needs to adjust the demo code to fit your customize board)
Last, I was wondering if you can share the schematic of the board.
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

 

0 Kudos
Reply

2,325 Views
Stephan_
Contributor I

Hi,

I've an open threat try to deal with flash connection (RT1173 JTAG/SWD connection problems - NXP Community). where you can see the schematic and acutal result trying to get polling example work.

Since flash programming is working with Lauterbach I think we can stick here to bootable image generation.

Best Regards

0 Kudos
Reply

2,313 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thanks for your reply.
Firstly, I'd highly recommend the customer avoid burning any fuse bit, as the fuse bit can't recover after blowing.
Next,  I'd like to suggest you use the MCU Boot Utility download code to a new board, then set the GPIO boot pin to check whether it can boot up well.

jeremyzhou_0-1645584078285.png

Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
Reply

2,307 Views
Stephan_
Contributor I

Hello,

as already state we're using 2nd pin group, so when I got the TRM right there is no way to boot from this flash device without burning at least the FLEXSPI_PIN_GROUP_SEL fuse.

Also already statet MCU Boot Utility is not capable to access QSPI Flash at FlexSPI2 (2nd pin group). I'm already in contact with NXP FAE but still no solution for this. 

As even the on-Board debugger from iMXRT1170-EVK is not capable to access QSPI flash at FlexSPI2 my only solution is to use Lauterbach Debugger.

I'm able to get bootable image from MCUXpresso for eval board, therefore I set XIP_EXTERNAL_FLASH=1 and XIP_BOOT_HEADER_ENABLE=1. Build the AXF in release configuration. Convert it to binay. Use Lauterbach to write it to flash at address 0x30000000. But this is only working for eval board. When I switch to our own board I've to change BOARD_FLASH to 0x60000000, but with this configuration the generated binary misses the IVT, DCD, ... there is only the application image starting at offset 0. 

Best Regards

0 Kudos
Reply

2,299 Views
Stephan_
Contributor I

I've managed to get an binary image from MCU expresso with IVT and FCB. Not sure why, but after changing BOARD_FLASH from 0x3000000 to 0x6000000 in the Release linke file the following lines are missing:

/* Image Vector Table and Boot Data for booting from external flash */
.boot_hdr : ALIGN(4)
{
FILL(0xff)
. = 0x400 ;
__boot_hdr_start__ = ABSOLUTE(.) ;
KEEP(*(.boot_hdr.conf))
. = 0x1000 ;
__boot_hdr_ivt_loadaddr__ = ABSOLUTE(.) ;
KEEP(*(.boot_hdr.ivt))
. = 0x1020 ;
__boot_hdr_boot_data_loadaddr__ = ABSOLUTE(.) ;
KEEP(*(.boot_hdr.boot_data))
. = 0x1030 ;
__boot_hdr_dcd_loadaddr__ = ABSOLUTE(.) ;
KEEP(*(.boot_hdr.dcd_data))
__boot_hdr_end__ = ABSOLUTE(.) ;
. = 0x2000 ;
} >BOARD_FLASH

After adding manual and switch off managed linker files in project configuration I got a binary with FCB and IVT. 

Nethertheless my MCU won't boot with this image. Is there any way to get information if MCU Bootloader failes to load image and why?

0 Kudos
Reply