This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM620-Q1:AM62x:使用 USB-DFU 方法从 OSPI NAND 进行闪存和引导

Guru**** 2551640 points
Other Parts Discussed in Thread: SK-AM62-LP

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1421944/am620-q1-am62x-flash-and-boot-from-ospi-nand-using-usb-dfu-method

器件型号:AM620-Q1
Thread 中讨论的其他器件:SK-AM62-LP

工具与软件:

团队成员、您好!

 的上使用的器件 AM62xx-LP-EVM  &已使用 OSPI NAND 闪存 内存(W35N01JWTBAG) Windows 主机。 我们 正在尝试 通过从 OSPI NAND 闪存中引导和刷写 U-Boot 映像 USB-DFU 正方形数法。

我从下面的链接中获取了参考。

[常见问题解答] SK-AM62:如何在 AM62x-SK E2上使用 USB DFU 进行 eMMC 刷写-处理器论坛-处理器- TI E2E 支持论坛

目前正在执行以下步骤。

 要在刷写到 OSPI NAND 闪存之前构建两组映像、 一组用于 USB-DFU 引导 、另一个 设置为刷写到 NAND 闪存 (NAND 闪存引导)。

使用 USB-DFU 引导的第一组映像:

1.使用默认的"am62x_evm_r5_usbdfu_defconfig"和"am62x_evm_a53_defconfig"文件构建引导加载程序映像。
2.从主机 PC 上使用 dfu-util 加载引导加载程序映像 tiboot3.bin、tispl.bin 和 u-boot.img。

以下三个命令用于将 U-Boot 映像从主机传输到目标:

Host> dfu-util.exe -R -A 0 -D tiboot3.bin
host> dfu-util.exe -l
找到 DFU:[0451:6165] devnum=0、cfg=1、intf=0、alt=0、name="tispl.bin"
找到 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

传输第三个文件后、通过按 EVM UART 控制台中的任意键停止 EVM 自动引导。 此时、u-boot 开始在目标上执行。

在 U-Boot 提示符下、我们将 执行 以下命令。  

setenv dfu_alt_info ${dfu_alt_info_ospi_nand}
DFU 0和列表
DFU 0 nand 0

然后执行  DFU 0和列表 和  DFU 0 nand 0 这些命令

=> DFU 0 nand 0
DFU 实体配置失败!
(分区表与 dfu_alt_info 不匹配?)
DFU -器件固件升级

=> DFU 0和列表
DFU 实体配置失败!
(分区表与 dfu_alt_info 不匹配?)
DFU -器件固件升级

=> mtdparts
未找到器件 SPI-NAND0!

请帮助解决我的问题。 我已经附上日志供您参考。  

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)
=>


  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我没有 DFU 闪存 ospi-nand 就绪的指令。 我将在我的 SK-AM62-LP 上尝试一下、以了解如何使它工作并与您联系。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的更新。 只需在准备就绪时请求分享说明。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我会的。

    因为这是新的、我可能需要一两周时间才能做好准备。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Liu、我请求的任何更新。 非常感谢您的观看!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我在过去的几天里离开了办公室,今天早上刚回到办公室。 很抱歉耽误你的时间。

    一旦取得进展、我将更新该主题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Liu、

    谢谢、我们等待您对此问题的答复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这是我在 AM62x LP SK 上执行的用于刷写 OSPI NAND 的操作。 使用 DFU 引导进入 U-Boot 提示符后、在 SK 控制台上运行以下命令以准备刷写。 地址和大小来自"MTD list"命令中的分区。

    => setenv dfu_alt_info "tiboot3原始0x0 0x80000;tispl 原始0x80000 0x200000;u-boot 原始0x280000 0x400000"
    => DFU 0 MTD SPI-nand0

    现在、PC 应该会检测到新的 DFU 器件:

    dev@uda:uEnv$ sudo dfu-util -l
    dfu-util 0.9
    ...
    Found DFU: [0451:6165] ver=0223, devnum=109, cfg=1, intf=0, path="3-2", alt=2, name="u-boot", serial="0000000000000077"
    Found DFU: [0451:6165] ver=0223, devnum=109, cfg=1, intf=0, path="3-2", alt=1, name="tispl", serial="0000000000000077"
    Found DFU: [0451:6165] ver=0223, devnum=109, cfg=1, intf=0, path="3-2", alt=0, name="tiboot3", serial="0000000000000077"

    然后在 PC 上运行以下命令、以传输要刷写的 U-Boot 二进制文件。

    $ sudo dfu-util -a tiboot3 -D tiboot3.bin.sdk10
    $ sudo dfu-util -a tispl -D tispl.bin.sdk10
    $ sudo dfu-util -R -a u-boot -D u-boot.img.sdk10