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.

[FAQ] [参考译文] [常见问题解答]如何在 AM62x 上使用 USB-DFU 将 u-boot 刷写到 GPMC-NAND

Guru**** 2012440 points
Other Parts Discussed in Thread: SK-AM62-LP
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1460090/faq-how-to-flash-u-boot-to-gpmc-nand-with-usb-dfu-on-am62x

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

工具与软件:

AM62x 引导 ROM 支持从并行 GPMC NAND 引导。
从 AM62x TRM 中的"5.4.9.1 GPMC NAND 引导加载程序操作"更改成了
"GPMC NAND 引导仅支持从 ONFI 1.0兼容型8位并行 NAND 存储器(连接尺寸高达2GB)引导
具有以下几何形状的 GPMC CS0:
•2K 字节页和至少为64字节或的备用区域
•4KB 的页大小和至少128字节的备用区域。
•仅限非 ECC 器件:
–ROM 使用 ELM 处理 ECC
–ECC 为 BCH8、使用 D[7:0]表示数据
–检查参数页面 CRC、如果出现故障、则使用冗余页面"

有关引导 ROM 支持 GPMC NAND 的详细信息、请参阅 AM62x TRM"第5章初始化"。

常见问题解答列出了如何在 SK-AM62-LP 板[1]和[2]上使用 USB-DFU 将 u-boot 刷写到 GPMC-NAND 中 AM62x Linux SDK 10.0.7.4 [3]
[1]。 SK-AM62-LP 电路板(https://www.ti.com/tool/SK-AM62-LP)
[2]。 TI 内部 NAND 卡(PROC143E1)
[3]。 https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX - AM62X/10.00.07.04

其中 MT29F8G08ADAFAH4位于所列的 GPMC-NAND 子卡上
[ 1.713540] nand:找到器件、制造商 ID:0x2C、芯片 ID:0xd3
[1.719965] nAND:Micron MT29F8G08ADAFAH4.
[ 1.723993] nand:1024 MIB、SLC、erase size:256 KiB、page size:4096、OOB size:256
[ 1.731797] nand:使用 OMAP_ECC_BCH8_CODE_HW ECC 方案

下面列出了其他用于将 u-boot 刷写到 GPMC-NAND 的选项
https://e2e.ti.com/support/processors-group/processors/f/791/t/1402705
https://e2e.ti.com/support/processors-group/processors/f/791/t/1422565

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

    (1)。 构建 u-boot 以从 USB-DFU 引导
    a/。 在 Linux SDK 安装程序顶层的 Rules.make 中进行以下更改

    Fullscreen
    1
    2
    - UBOOT_MACHINE_R5=am62x_lpsk_r5_defconfig
    + UBOOT_MACHINE_R5=am62x_lpsk_r5_defconfig am62x_r5_usbdfu.config
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    b/. 通过从 Linux SDK 安装程序的顶层运行 cmd、使用顶级 makefile 来构建 u-boot。
    Fullscreen
    1
    make u-boot PLATFORM=am62xx-lp-evm
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    (2)。 构建 u-boot 以从 GPMC-NAND 引导
    a/。 在 Linux SDK 安装程序顶层的 Rules.make 中进行以下更改。

    Fullscreen
    1
    2
    - UBOOT_MACHINE_R5=am62x_lpsk_r5_defconfig
    + UBOOT_MACHINE_R5=am62x_lpsk_r5_gpmc_defconfig
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    b/. 通过从 Linux SDK 安装程序的顶层运行 cmd、使用顶级 makefile 来构建 u-boot。
    Fullscreen
    1
    make u-boot PLATFORM=am62xx-lp-evm
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    (3)。 引导内置(1)中的 u-boot 以从 USB-DFU 引导
    -配置 BOOTMODE[15:0]= 045B => GPMC-NAND (主要)+ USB-DFU (备份)
    -在主板上加电
    -从 Linux 主机(安装的 dfu-util )发出 cmds 与 u-boot 二进制文件从(1)

    Fullscreen
    1
    2
    3
    4
    sudo dfu-util -l
    sudo dfu-util -R -a bootloader -D tiboot3-am62x-hs-fs-evm.bin
    sudo dfu-util -R -a tispl.bin -D tispl.bin
    sudo dfu-util -R -a u-boot.img -D u-boot.img
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    -停止@u-boot 提示符,并运行命令以配置 GPMC-NAND 闪存下一个在(4)
    Fullscreen
    1
    2
    => setenv dfu_alt_info "tiboot3.bin raw 0x0 0x200000; tispl.bin raw 0x200000 0x400000; u-boot.img raw 0x600000 0xA00000"
    => dfu 0 mtd nand0
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    (4)。 将内置 u-boot (2)刷写到 GPMC-NAND
    -从 Linux 主机(安装的 dfu-util )发出 cmds 与 u-boot 二进制文件从(2)

    Fullscreen
    1
    2
    3
    4
    sudo dfu-util -l
    sudo dfu-util -a 0 -D tiboot3-am62x-hs-fs-evm.bin
    sudo dfu-util -a 1 -D tispl.bin
    sudo dfu-util -a 2 -D u-boot.img
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    本文附录了这三个日志以供参考
    - am62-lpsk_gpmc-nand_dfu_host.log:从 USB-DFU GPMC-n 读取 Linux 主机日志并进行刷写
    - am62-lpsk_gpmc-nand_dfu_target.log:来自 USB-DFU GPMC-n 的 u-boot 目标日志并闪烁
    - am62-lpsk_gpmc-nand_boot.log:来自 gpmc-nand 引导的 u-boot 日志

    e2e.ti.com/.../am62_2D00_lpsk_5F00_gpmc_2D00_nand_5F00_dfu_5F00_host.log

    e2e.ti.com/.../am62_2D00_lpsk_5F00_gpmc_2D00_nand_5F00_dfu_5F00_target.log

    e2e.ti.com/.../am62_2D00_lpsk_5F00_gpmc_2D00_nand_5F00_boot.log