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] TDA4VM: 在最新的 Linux SDK 上对 HS 器件进行编译和引导

Part Number: TDA4VM

问:

请提供有关在 Linux SDK 上对 HS 器件进行编译和引导的指令。

  • 编译和引导

    1. 安装 PSDKLA

    wget https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_00_00_08/exports/ti-processor-sdk-linux-j7-evm-08_00_00_08-Linux-x86-Install.bin
    chmod+x ti-processor-sdk-linux-j7-evm-08_00_00_08-Linux-x86-Install.bin
    ./ti-processor-sdk-linux-j7-evm-08_00_00_08-Linux-x86-Install.bin

    从此处开始,安装目录将用 $PSDKLA 表示

    2. 为 HS 器件编译 U-Boot

    cd $PSDKLA

    打开文件:Rules.make 并更改以下变量:

    从 PLATFORM=j7-evm 更改为 PLATFORM=j7-hs-evm

    从 UBOOT_MACHINE=j721e_evm_a72_defconfig 更改为 UBOOT_MACHINE=j721e_hs_evm_a72_defconfig

    从 UBOOT_MACHINE_R5=j721e_evm_r5_defconfig 更改为 UBOOT_MACHINE=j721e_hs_evm_r5_defconfig

    使用以下命令编译 u-boot(这与 GP 器件的编译相同):

    make u-boot

    输出:以上命令将生成 3 个二进制文件:

    $PSDKLA/board-support/u-boot_build/a72/u-boot.img_HS

    $PSDKLA/board-support/u-boot_build/a72/tispl.bin_HS

    $PSDKLA/board-support/u-boot_build/r5/tiboot3.bin

     

    3. 为 HS 器件编译 sysfw.itb

    cd $PSDKLA
    make sysfw-image_clean
    make sysfw-image HS=1 ENABLE_TRACE=1

    HS=1 指定该编译用于 HS 器件

    ENABLE_TRACE=1 启用调试跟踪,这对于任何与 DMSC 相关的调试都很有用 

    输出:

    以上命令将生成二进制文件:

     $PSDKLA/board-support/k3-image-gen-2021.05/sysfw.itb

    4. 将二进制文件复制到 SD

    cp $PSDKLA/board-support/u-boot_build/a72/u-boot.img_HS /media/$USER/boot/u-boot.img
    cp $PSDKLA/board-support/u-boot_build/a72/tispl.bin_HS /media/$USER/boot/tispl.bin
    cp $PSDKLA/board-support/u-boot_build/r5/tiboot3.bin /media/$USER/boot/tiboot3.bin
    cp $PSDKLA/board-support/k3-image-gen-2021.05/sysfw.itb /media/$USER/boot/sysfw.itb

    用于 SD 引导的 DIP 开关设置

    SW810000010

    SW900000000

    给 EVM 上电并连接 MAIN_UART micro USB 端口。您应该会看到对第一个实例的跟踪。

    5. 从 eMMC Boot0 分区进行引导:

    默认情况下,u-boot j721e_hs_evm_a72_defconfig 不支持 eMMC。我们需要在 j721e_hs_evm_a72_defconfig 中启用 eMMC 支持。

    应用以下补丁:

    2625.0001-configs-j721e_hs_evm_a72_defconfig-Enable-eMMC-booti.patch

    cd $PSDKLA/board-support/u-boot-2021.01+gitAUTOINC+53e79d0e89-g53e79d0e89/
    git am 0001-configs-j721e_hs_evm_a72_defconfig-Enable-eMMC-booti.patch
    cd ../..
    make u-boot
    
    #Copy binaries to SD card
    cp $PSDKLA/board-support/u-boot_build/a72/u-boot.img_HS /media/$USER/boot/u-boot.img
    cp $PSDKLA/board-support/u-boot_build/a72/tispl.bin_HS /media/$USER/boot/tispl.bin
    cp $PSDKLA/board-support/u-boot_build/r5/tiboot3.bin /media/$USER/boot/tiboot3.bin
    cp $PSDKLA/board-support/k3-image-gen-2021.05/sysfw.itb /media/$USER/boot/sysfw.itb

    使用 SD 卡进行引导并在 U-Boot 提示符处停止。

    执行以下命令:

    mmc dev 0 1
    fatload mmc 1 ${loadaddr} tiboot3.bin
    mmc write ${loadaddr} 0x0 0x400
    fatload mmc 1 ${loadaddr} tispl.bin
    mmc write ${loadaddr} 0x400 0x1000
    fatload mmc 1 ${loadaddr} u-boot.img
    mmc write ${loadaddr} 0x1400 0x2000
    fatload mmc 1 ${loadaddr} sysfw.itb
    mmc write ${loadaddr} 0x3600 0x800
    
    mmc partconf 0 1 1 1
    mmc bootbus 0 2 0 0

    #给电路板断电更改用于 eMMC 引导的 DIP 开关设置

    SW810000000

    SW901000000

    6. 使用 UART 进行引导

    将以下二进制文件复制到 Linux 计算机的主目录:

    cp $PSDKLA/board-support/u-boot_build/a72/u-boot.img_HS ~/u-boot.img
    cp $PSDKLA/board-support/u-boot_build/a72/tispl.bin_HS ~/tispl.bin
    cp $PSDKLA/board-support/u-boot_build/r5/tiboot3.bin ~/tiboot3.bin
    cp $PSDKLA/board-support/k3-image-gen-2021.05/sysfw.itb ~/sysfw.itb

    参考常见问题解答: https://e2e.ti.com/support/processors/f/791/t/1003471

    用于 UART 引导的 DIP 开关设置

    SW800000000

    SW901110000

    7.   OSPI 进行引导:

     

    8.0 SDK OSPI 引导会在 HS 器件上中断。我们需要应用以下补丁来确保 OSPI 引导功能正常。

    8345.0001-ARM-mach-k3-sysfw-loader-Copy-sysfw.itb-to-OCRAM-in-.patch

    cd $PSDKLA/board-support/u-boot-2021.01+gitAUTOINC+53e79d0e89-g53e79d0e89/
    git am 0001-ARM-mach-k3-sysfw-loader-Copy-sysfw.itb-to-OCRAM-in-.patch
    cd ../..
    make u-boot
    
    cp $PSDKLA/board-support/u-boot_build/a72/u-boot.img_HS /media/$USER/boot/u-boot.img
    cp $PSDKLA/board-support/u-boot_build/a72/tispl.bin_HS /media/$USER/boot/tispl.bin
    cp $PSDKLA/board-support/u-boot_build/r5/tiboot3.bin /media/$USER/boot/tiboot3.bin
    cp $PSDKLA/board-support/k3-image-gen-2021.05/sysfw.itb /media/$USER/boot/sysfw.itb

    使用 SD 卡进行引导并在 U-Boot 提示符处停止。

    执行以下命令 - 这会将引导映像从 MMC-SD 刻录到 OSPI

    sf probe
    sf erase 0x0 0x4000000
    
    sf probe
    fatload mmc 1 ${loadaddr} tiboot3.bin
    sf update $loadaddr 0x0 $filesize
    fatload mmc 1 ${loadaddr} tispl.bin
    sf update $loadaddr 0x80000 $filesize
    fatload mmc 1 ${loadaddr} u-boot.img
    sf update $loadaddr 0x280000 $filesize
    fatload mmc 1 ${loadaddr} sysfw.itb
    sf update $loadaddr 0x6C0000 $filesize

    更改用于 OSPI 引导的 DIP 开关设置。

    SW800000000

    SW901000000