How to use MCU Boot Utility to NAND Flash.

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

How to use MCU Boot Utility to NAND Flash.

1,953 Views
Onds_Satoshi_Sasaki
Contributor II

Hello,

We are going to connect MCU Boot Utility to W25N02JW Serial SLC NAND Flash.
It is adopted on i.MX RT1170, our client's hardware.
Previos hardware had SerialNOR flash, then our environment was working well, including MCU Boot Utility.
However exchanged with NAND Flash hardware couldn't connect by MCU Boot Utility.
What should we do, as the first step?
Should we implement any NAND Flash driver for MCU Boot Utility?

Regards,

0 Kudos
12 Replies

968 Views
jay_heng
NXP Employee
NXP Employee

In MCUBootUtility v5.2.1 or latest version, below nand devices are verified.

- MX35LF2G24AD
- W25N01GV
- GD5F1GQ5UEYIG

0 Kudos

1,833 Views
jay_heng
NXP Employee
NXP Employee

I have confirmed with Winbond guys that W25N02 has two planes actually, so we should try below setting

Capture.PNG

0 Kudos

1,814 Views
Onds_Satoshi_Sasaki
Contributor II

Thank you for your help and contacting to Winbond.

Unfortunately, MCU Boot Utility couldn't works.

The situation couldn't be changed.

Should we give up booting from W25N02JW?

Regards,

0 Kudos

1,767 Views
diego_charles
NXP TechSupport
NXP TechSupport

Hi @Onds_Satoshi_Sasaki 

Continuing with the follow up. I want to see if we could try to narrow down the issue.

Do you have any  W25N01 to test  your design with?

Or do you have any different pin setup for FlexSPI NAND pins, to the ones we have on Table 10-1. ROM Bootloader Peripheral PinMux ?

Diego

0 Kudos

1,741 Views
Onds_Satoshi_Sasaki
Contributor II

Thank you for comment.

Unfortunately, we don't have W25N01.

We are trying on EVK board replaced from NOR to NAND, currently.
How can we change ROM Bootloader Peripheral PinMux ?

 

Regards,

0 Kudos

1,866 Views
jay_heng
NXP Employee
NXP Employee

 Winbond 1Gb device (W25N01) is well verified by NXP team, but for 2Gb device, I am not sure about it.

 I checked W25N02JW data sheet, it didn't seem to support multi-plane, but there are always two planes in 2Gb device of other vendors (MXIC, Micron…).

Anyway you can give a try by below settings:

Capture.PNG

0 Kudos

1,868 Views
jay_heng
NXP Employee
NXP Employee

You don't need to implement NAND driver for MCU Boot Utility, it is included in \SDK_2.11.1_MIMXRT1170-EVK\boards\evkmimxrt1170\bootloader_examples\flashloader.

If you want to update flashloader for MCU Boot Utility, you can build new flashloader.srec file from SDK, and rename it to flashloader_user.srec and then put it into \NXP-MCUBootUtility\src\targets\MIMXRT1176\ folder

0 Kudos

1,850 Views
Onds_Satoshi_Sasaki
Contributor II

Thank you for your help.

We can see just following files.

-----------------------------------------

C:\nxp\SDK_2_12_0_MIMXRT1176xxxxx\boards\evkmimxrt1170\bootloader_examples\flashloader\cm7


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/08/30 17:51 mcux
------ 2022/08/29 8:48 11181 flashloader_cm7_v3_10.xml
------ 2022/08/29 8:48 6890 pin_mux.c
------ 2022/08/29 8:48 4002 pin_mux.h
------ 2022/08/29 8:48 59834 usb_device_ch9.c
------ 2022/08/29 8:48 2572 usb_device_ch9.h
------ 2022/08/29 8:48 25318 usb_device_class.c
------ 2022/08/29 8:48 19692 usb_device_class.h
------ 2022/08/29 8:48 36195 usb_device_hid.c
------ 2022/08/29 8:48 10457 usb_device_hid.h

-----------------------------------------

Should we modify and build pin_mux.c? Then, is it OK just setting mux for Spi-NAND?

When we have to get another files, please let me know how to get them.

Best Regards,

 

0 Kudos

1,836 Views
Onds_Satoshi_Sasaki
Contributor II

Sorry,

I find ,I have to build flashloader_cm7 project.

Then I rebuild it and replaced, however result is same.

Should I change anything to support NAND flash?

Regards,

 

0 Kudos

1,895 Views
Onds_Satoshi_Sasaki
Contributor II

Hi,

> Did you loaded an DCD pin configuration for your SEMC or FlexSPI interface?

In this case, should we update DCD for using FlexSPI NAND?

0 Kudos

1,932 Views
Onds_Satoshi_Sasaki
Contributor II

Hello Diego,
Thank you for your help.

It cause after clicking with the Connect to ROM section.
We load evkmimxrt1170_xip_boot_header_dcd.bin.

Log is following...


Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x1FC9,0x013D -j -- get-property 1 0
toolStatus: 0
commandOutput: {
"command" : "get-property",
"response" : [ 1258487809 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x1FC9,0x013D -j -- get-property 17 0
toolStatus: 0
commandOutput: {
"command" : "get-property",
"response" : [ 0 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}


C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\elftosb4\win>"C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\elftosb4\win\elftosb.exe" -f imx -V -c "C:\Users\user\Downloads\NXP-MCUBootUtility-master\gen\bd_file\imx_flashloader_gen.bd" -o "C:\Users\user\Downloads\NXP-MCUBootUtility-master\gen\bootable_image\ivt_flashloader_user.bin" "C:\Users\user\Downloads\NXP-MCUBootUtility-master\src\targets\MIMXRT1176\flashloader_user.srec"
Section: 0x0
iMX bootable image generated successfully

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x1FC9,0x013D -j -- load-image C:\Users\user\Downloads\NXP-MCUBootUtility-master\gen\bootable_image\ivt_flashloader_user.bin
toolStatus: 0
commandOutput: {
"command" : "load-image",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x15A2,0x0073 -j -- get-property 1 0
toolStatus: 0
commandOutput: {
"command" : "get-property",
"response" : [ 1258424320 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x15A2,0x0073 -j -- get-property 1 0
toolStatus: 0
commandOutput: {
"command" : "get-property",
"response" : [ 1258424320 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x15A2,0x0073 -j -- get-property 24 0
toolStatus: 0
commandOutput: {
"command" : "get-property",
"response" : [ 1409351684 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x15A2,0x0073 -j -- efuse-read-once 22
toolStatus: 0
commandOutput: {
"command" : "efuse-read-once",
"response" : [ 4, 8 ],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x15A2,0x0073 -j -- read-memory 1074675776 4 C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\vectors\readReg.dat 0
toolStatus: 0
commandOutput: {
"command" : "read-memory",
"response" : [ 0 ],
"status" : {
"description" : "10200 (0x27D8) kStatusMemoryRangeInvalid",
"value" : 10200
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x15A2,0x0073 -j -- fill-memory 538976256 4 3238133794 word
toolStatus: 0
commandOutput: {
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x15A2,0x0073 -j -- fill-memory 538976260 4 239 word
toolStatus: 0
commandOutput: {
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x15A2,0x0073 -j -- fill-memory 538976264 4 3254780164 word
toolStatus: 0
commandOutput: {
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x15A2,0x0073 -j -- fill-memory 538976268 4 538976256 word
toolStatus: 0
commandOutput: {
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 5242000 -u 0x15A2,0x0073 -j -- fill-memory 538976272 4 262148 word
toolStatus: 0
commandOutput: {
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}

Executing: C:\Users\user\Downloads\NXP-MCUBootUtility-master\tools\blhost2_3\win\blhost -t 50000 -u 0x15A2,0x0073 -j -- configure-memory 257 538976256
toolStatus: 0
commandOutput: {
"command" : "configure-memory",
"response" : [],
"status" : {
"description" : "4 (0x4) kStatus_InvalidArgument",
"value" : 4
}
}


Best Regards,

 

0 Kudos

1,940 Views
diego_charles
NXP TechSupport
NXP TechSupport

Hi @Onds_Satoshi_Sasaki 

I hope you are doing great.

Generally speaking the MCU Boot Utility can support generating and loading the image FlexSPI/SEMC NAND memories.

Per my understanding the MCU Boot Utility loads  customizable a Flashloader, which is does receive your bootable images and knows how to program the flash memory. However,  I think have we be sure on the following.

Where does communication fails with your device? After clicking with the Connect to ROM section or in the Image loading sequence?

Did you loaded an DCD pin configuration for your SEMC or FlexSPI interface?

If you could share the log generated by the tool it would be good.

All the best, 

Diego

 

All the best, 

Diego

0 Kudos