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,
In MCUBootUtility v5.2.1 or latest version, below nand devices are verified.
- MX35LF2G24AD
- W25N01GV
- GD5F1GQ5UEYIG
I have confirmed with Winbond guys that W25N02 has two planes actually, so we should try below setting
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,
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
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,
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:
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
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,
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,
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?
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,
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