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: HS: Building & booting on HS devices on latest Linux SDK

Part Number: TDA4VM

Please provide instructions for building and booting for HS devices on Linux SDK.

  • 1. Installing the 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

    From here on the installation directory will be referred to as $PSDKLA

    2. Building U-Boot for HS devices:

    cd $PSDKLA

    Open the file: Rules.make & Change the below variables:

    From PLATFORM=j7-evm to PLATFORM=j7-hs-evm
    From UBOOT_MACHINE=j721e_evm_a72_defconfig to UBOOT_MACHINE=j721e_hs_evm_a72_defconfig
    From UBOOT_MACHINE_R5=j721e_evm_r5_defconfig to UBOOT_MACHINE=j721e_hs_evm_r5_defconfig

    Building the u-boot using the below command (this is the same as GP device building):

    make u-boot

    Output: The above command will generate 3 binaries:

    $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. Building sysfw.itb for HS devices:

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


    HS=1 specifies that build is for HS Devices
    ENABLE_TRACE=1 enables debug traces that will be useful for any DMSC related debug

    Output:
    The above command generates the binary:

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

    4. Copying the 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

    DIP Switch settings for SD boot

    SW8: 10000010
    SW9: 00000000

    Power on the EVM & connect the MAIN_UART micro USB port. You should see the traces on the first instance.

    5. Booting from eMMC Boot0 Partition:

    By default the u-boot j721e_hs_evm_a72_defconfig does not support the eMMC. We need to enable eMMC support in the j721e_hs_evm_a72_defconfig.

    Apply the below patch:

    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


    Boot using SD card & halt at U-Boot prompt.
    Execute the following commands:
    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
    #Power OFF the board
    Change the dip switch settings for eMMC boot

    SW8: 10000000
    SW9: 01000000

    6. Booting using UART

    Copy below binaries to home directory of your Linux machine:

    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
    Follow the FAQ: https://e2e.ti.com/support/processors/f/791/t/1003471
    DIP Switch settings for UART boot


    SW8: 00000000

    SW9: 01110000

    7. Booting from OSPI:

    8.0 SDK OSPI boot is broken on HS devices. We need to apply the below patch to get OSPI boot functional.

    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

    Boot using SD card & halt at U-Boot prompt.
    Execute the following commands - this will burn the boot images from MMC-SD to 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

    Change the dip switch settings for OSPI boot.
    SW8: 00000000
    SW9: 01000000
    Best Regards,
    Keerthy