Error Using MfgTool iMXRT1052 QSPI Flash Boot

cancel
Showing results for 
Search instead for 
Did you mean: 

Error Using MfgTool iMXRT1052 QSPI Flash Boot

969 Views
ebollerman
Contributor I

I am attempting to bring up a board that has an iMXRT1052 connected to a QuadSPI Flash that is meant to be the boot location for the code. The XIP examples that I have used on the EVKB board work just fine. I am attempting to use the MfgTool on the board through USB to program the flash.

I can create the boot_image.sb file using the tool, but when I start the MfgTool to program the flash I get "kStatus_FlexSPINOR_SFDP_NotFound" as an error message in the log file and the MfgTool fails. My boot pins are set to the serial download mode and the device shows up properly in the MfgTool before I attempt to program.

For a test I am trying to use the SDK evkbimxrt1050_hello_world example and have modified the XIP code to run from QSPI according to the Application Notes provided on NXP's page. I am also able to use the FlexSpi Nor Polling Transfer example project to correctly read and program the flash so I know the flash is electrically sound.

I am using MCUXpresso V10.2 and SDK 2.4.0 for the EVKB.

Any idea on what I could be doing wrong here?

Thanks,

Eric

0 Kudos
7 Replies

412 Views
rogerc1894
Contributor II

We are experiencing the same problem with the design on our board.  We are using the optional 'secondary pinmux' port pins to connect to our QSPI flash.  We can load and run the "evkbimxrt1050_flexspi_nor_polling_transfer" example project from RAM.  It erases, writes, reads, and verifies the external QSPI flash device on our board.  We are using the ISSI IS25LP016D-JBLE (16Mb) part.  We are unable to load our XIP image using the MfgTool (BLHost) over UART (no OpenSDA chip on our board) and receive the following message: "kStatus_FlexSPINOR_SFDP_NotFound", when we try using the blhost -V -p COM7,115200 -- configure-memory 0x09 0x2000 command.  We have tried several QCB (QSPI Configuration Block) option settings with the -- fill-memory 0x2000 0x04 0xC0000006; 0xC0000046 ('secondary pinmux' setting); 0xC0000106 (Quad Enable in bit 6 on this device); 0xC0000146, etc. None work.  A similar error is received while trying to load the "evkbimxrt1050_led_blinky" image using the MCUXpresso IDE via a LPC-Link2 over the SWJ-DP interface (using SWD).  We get this message:

pastedImage_1.png

When using the following Project Properties->C/C++ Build->MCU Settings:

pastedImage_4.png

Yet, again, when we load and run the "evkbimxrt1050_flexspi_nor_polling_transfer" example project from RAM, everything works as expected.

We are using MCUXpresso IDE v10.3.0 [Build 2200] [2018-12-03] and SDK_2.x_EVKB_IMXRT1050 version 2.4.2, manifest version 3.3.0.

Any help will be greatly appreciated.

Regards and thanks in advance,

-Roger

0 Kudos

412 Views
timewald
Contributor I

Hi Roger, I'm having a similar error using NXP-MCUBootUtility, V1.4.0.  We are using the ISSI IS25WP064AJBLE part using the same pins as the EVKB board.  I've tried a PEMicro Multilink, and a Segger JLink.  I even routed my own SWD interface adapter to try to problem my 1052 board using a HID to control the reset line and a UART for the sdphost and blhost commands.  The process gets stuck at the same "kStatus_FlexSPINOR_SFDP_NotFound", when we try using the blhost  -p COM5,115200 -- configure-memory 0x09 0x2000 command.

I haven't verified that I can run the "evkbimxrt1050_flexspi_nor_polling_transfer" on my board, but that's next.

 

If I solve the problem, I'll let you know.  Just wanted to let you know that I'm having the same problem!

Tim Ewald

0 Kudos

412 Views
Lorac
Contributor III

I did the same think on my side, but when we use Hyperflash everything is working fine on the EVKB. My guest is that the ivt_flashloader.bin version K2.1.0 doesn't support correctly the QSPI flash as well as they should. I tryed to recompile the flashloader v K2.7.0 to solve it, but this new version doesn't work, I felt in BootLoader after the jump call. 

0 Kudos

412 Views
Lorac
Contributor III

PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 2048
Inject command 'flash-erase-region'
Successful generic response to command 'flash-erase-region'
Response status = 0 (0x0) Success.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x10000
Inject command 'flash-erase-region'
Successful generic response to command 'flash-erase-region'
Response status = 0 (0x0) Success.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x100000
Inject command 'flash-erase-region'
sendCommandGetResponse.readPacket error 5.
Response status = 10004 (0x2714) No response packet from target device.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win>

I found the issue, if the sector size is bigger than 64kB the command get back error message. That's probably normal??

CD

0 Kudos

412 Views
Lorac
Contributor III

PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x60000
Inject command 'flash-erase-region'
Successful generic response to command 'flash-erase-region'
Response status = 0 (0x0) Success.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x68000
Inject command 'flash-erase-region'
Successful generic response to command 'flash-erase-region'
Response status = 0 (0x0) Success.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x6F000
Inject command 'flash-erase-region'
sendCommandGetResponse.readPacket error 5.
Response status = 10004 (0x2714) No response packet from target device.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x6A000
Inject command 'flash-erase-region'
sendCommandGetResponse.readPacket error 5.
Response status = 10004 (0x2714) No response packet from target device.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x69000
Inject command 'flash-erase-region'
sendCommandGetResponse.readPacket error 5.
Response status = 10004 (0x2714) No response packet from target device.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win> .\blhost.exe -u -- flash-erase-region 0x60000000 0x68000
Inject command 'flash-erase-region'
Successful generic response to command 'flash-erase-region'
Response status = 0 (0x0) Success.
PS F:\MCUXpresso\Flashloader_RT1050_1.1\Tools\blhost\win>

It's probably that we reach a timeout in the flashloader during the erasing procedure. On my RT1050-EVKB, this point is between size of 0x68000 and 0x69000. 

CD

0 Kudos

412 Views
Lorac
Contributor III

referenced to : cfg.ini

[profiles]

chip = MXRT105X

[platform]

board =

[LIST]

name = MXRT105x-DevBootSerialQSPIFlashXiP

reference to: ucl2.xml

[...]

<LIST name="MXRT105x-DevBootSerialQSPIFlashXiP" desc="Manufacturing with Flashloader">
<!-- Stage 1, load and execute Flashloader -->
<CMD state="BootStrap" type="boot" body="BootStrap" file="ivt_flashloader.bin" > Loading Flashloader. </CMD>
<CMD state="BootStrap" type="jump" onError = "ignore"> Jumping to Flashloader. </CMD>

<!-- Stage 2, Program boot image into external memory using Flashloader -->
<CMD state="Blhost" type="blhost" body="get-property 1" > Get Property 1. </CMD> <!--Used to test if flashloader runs successfully-->
<CMD state="Blhost" type="blhost" body="fill-memory 0x2000 4 0xc0000005"> Prepare Flash Configuration option </CMD>
<CMD state="Blhost" type="blhost" body="configure-memory 0x9 0x2000"> Configure QuadSPI NOR Flash </CMD>
<!-- This erase size need to be updated based on the actual boot image size-->
<CMD state="Blhost" type="blhost" timeout="15000" body="flash-erase-region 0x60000000 0x040000" > Erase 256kBytes </CMD>
<CMD state="Blhost" type="blhost" timeout="15000" body="flash-erase-region 0x60040000 0x040000" > Erase 256kBytes </CMD>
<CMD state="Blhost" type="blhost" timeout="15000" body="flash-erase-region 0x60080000 0x040000" > Erase 256kBytes </CMD>
<CMD state="Blhost" type="blhost" timeout="15000" body="flash-erase-region 0x600C0000 0x040000" > Erase 256kBytes </CMD>
<CMD state="Blhost" type="blhost" timeout="15000" body="write-memory 0x60000000 \"Profiles\\MXRT105x\\OS Firmware\\boot_image.bin\"" > Program Boot Image. </CMD>
<CMD state="Blhost" type="blhost" body="Update QSPI Completed!">Done</CMD>
</LIST>

[..]

Here is the solution. :smileyhappy:

CD

0 Kudos

412 Views
igorpadykov
NXP TechSupport
NXP TechSupport

Hi Eric

issue is communicated internally.

Best regards
igor

0 Kudos