AM620-Q1: AM62x: Flash and Boot from OSPI NAND using USB-DFU method

Part Number: AM620-Q1
Other Parts Discussed in Thread: SK-AM62-LP

Tool/software:

Hello Team,

We are using on the AM62xx-Lp-Evm & used OSPI NAND flash memory (W35N01JWTBAG) windows host. We are trying to Boot & flash the U-Boot images from OSPI NAND flash memory through USB-DFU method.

I took the reference from below link.

[FAQ] SK-AM62: How to flash eMMC using USB DFU on AM62x-SK E2 - Processors forum - Processors - TI E2E support forums

Currently am following the below steps.

Two sets of images to be built before flashing to OSPI NAND Flash, one set for USB-DFU boot, another set for flashing to NAND Flash (Nand Flash boot).

First set of images to boot using USB-DFU:

1. Build the bootloader images using default “am62x_evm_r5_usbdfu_defconfig” and “am62x_evm_a53_defconfig” configs files.
2. Load the bootloader images tiboot3.bin, tispl.bin and u-boot.img using the dfu-util from host PC.

The following three commands are used to transfer the U-Boot images from the host to the target:

host> dfu-util.exe -R -a 0 -D tiboot3.bin
host> dfu-util.exe -l
Found DFU: [0451:6165] devnum=0, cfg=1, intf=0, alt=0, name="tispl.bin"
Found DFU: [0451:6165] devnum=0, cfg=1, intf=0, alt=1, name="u-boot.img"

host> dfu-util.exe -R -a 0 -D tispl.bin
host> dfu-util.exe -R -a 1 -D u-boot.img

After the transfer of the third file, stop the EVM from auto-booting by pressing any key in the EVM UART console. At this point, the u-boot starts executing on the target.

At the U-Boot prompt, we are executing below commands. 

setenv dfu_alt_info ${dfu_alt_info_ospi_nand}
dfu 0 nand list
dfu 0 nand 0

After Executing the dfu 0 nand listdfu 0 nand 0 these commands it is showing

=> dfu 0 nand 0
DFU entities configuration failed!
(partition table does not match dfu_alt_info?)
dfu - Device Firmware Upgrade

=> dfu 0 nand list
DFU entities configuration failed!
(partition table does not match dfu_alt_info?)
dfu - Device Firmware Upgrade

=> mtdparts
Device spi-nand0 not found!

Please help resolve my issue. I have attached the logs for your reference. 

U-Boot 2023.04 (Oct 04 2024 - 14:43:33 +0530)

SoC:   AM62X SR1.0 HS-FS
Model: Texas Instruments AM62x LP SK
EEPROM not available at 80, trying to read at 81
Board: AM62-LP-SKEVM rev E2
DRAM:  2 GiB
Core:  81 devices, 33 uclasses, devicetree: separate
NAND:  0 MiB
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from nowhere... OK
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@8000000port@1
Hit any key to stop autoboot:  0
=>
=>
=>
=> setenv dfu_alt_info ${dfu_alt_info_ospi_nand}
=> printenv dfu_alt_info_ospi_nand
dfu_alt_info_ospi_nand=ospi_nand.tiboot3 part 1; ospi_nand.tispl part 2; ospi_nand.u-boot part 3; ospi_nand.env part 4; ospi_nand.env.backup part 5; ospi_nand.rootfs part 6; ospi_nand.phypattern part 7
=>
=> dfu 0 nand list
DFU entities configuration failed!
(partition table does not match dfu_alt_info?)
dfu - Device Firmware Upgrade

Usage:
dfu <USB_controller> [<interface> <dev>] [list]
  - device firmware upgrade via <USB_controller>
    on device <dev>, attached to interface
    <interface>
    [list] - list available alt settings

=> mtdparts
Device spi-nand0 not found!
=> sf probe
=> dfu 0 nand 0
DFU entities configuration failed!
(partition table does not match dfu_alt_info?)
dfu - Device Firmware Upgrade

Usage:
dfu <USB_controller> [<interface> <dev>] [list]
  - device firmware upgrade via <USB_controller>
    on device <dev>, attached to interface
    <interface>
    [list] - list available alt settings

=> mtd list
nand: error: Unable to find NAND settings in GPMC Configuration - quitting
Could not find a valid device for omap2-nand.0
List of MTD devices:
* spi-nand0
  - device: flash@0
  - parent: spi@fc40000
  - driver: spi_nand
  - path: /bus@f0000/bus@fc00000/spi@fc40000/flash@0
  - type: NAND flash
  - block size: 0x40000 bytes
  - min I/O: 0x1000 bytes
  - OOB size: 128 bytes
  - OOB available: 80 bytes
  - 0x000000000000-0x000008000000 : "spi-nand0"
          - 0x000000000000-0x000000080000 : "ospi.tiboot3"
          - 0x000000080000-0x000000280000 : "ospi.tispl"
          - 0x000000280000-0x000000680000 : "ospi.u-boot"
          - 0x000000680000-0x0000006c0000 : "ospi.env"
          - 0x0000006c0000-0x000000700000 : "ospi.env.backup"
          - 0x000002000000-0x000007fc0000 : "ospi.rootfs"
          - 0x000007fc0000-0x000008000000 : "ospi.phypattern"
=> dfu 0 mtd 0
DFU entities configuration failed!
(partition table does not match dfu_alt_info?)
dfu - Device Firmware Upgrade

Usage:
dfu <USB_controller> [<interface> <dev>] [list]
  - device firmware upgrade via <USB_controller>
    on device <dev>, attached to interface
    <interface>
    [list] - list available alt settings

=> sf probe
=> env default -a -f
## Resetting to default environment
=> dfu 0 nand 0
"dfu_alt_info" env variable not defined!
exit not allowed from main input shell.
=> mtdparts
Device spi-nand0 not found!
=>
=> setenv dfu_alt_info ${dfu_alt_info_ospi_nand}
=> dfu 0 nand 0
DFU entities configuration failed!
(partition table does not match dfu_alt_info?)
dfu - Device Firmware Upgrade

Usage:
dfu <USB_controller> [<interface> <dev>] [list]
  - device firmware upgrade via <USB_controller>
    on device <dev>, attached to interface
    <interface>
    [list] - list available alt settings
=> printenv mtdparts
mtdparts=mtdparts=spi-nand0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),98048k@32m(ospi.rootfs),256k@130816k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system)
=>