LS1046ARDB - How to update U-Boot binary on SD card

Document created by Swati Gupta Employee on Apr 22, 2019Last modified by Swati Gupta Employee on Aug 14, 2019
Version 6Show Document
  • View in full screen mode

This how-to topic is applicable only to LSDK 18.09 and older releases. For LSDK 18.12 and newer releases, refer Deploying TF-A binaries in Layerscape Software Development Kit <version> Documentation.

        

Follow these steps to update U-Boot binary on the SD card. 

Prerequisites 

  • Ubuntu 18.04 64-bit should be installed on the Linux host machine for building LSDK 18.06 or LSDK 18.09 U-Boot binary.

 

Compiling U-Boot binary

Clone the u-boot repository.

  1. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git
  2. $ cd u-boot
  3. $ git checkout -b <new branch name> LSDK-<LSDK version>. For example, $ git checkout -b LSDK-18.09 LSDK-18.09 
  4. $ export ARCH=arm64
  5. $ export CROSS_COMPILE=aarch64-linux-gnu-
  6. $ make distclean
  7. $ make ls1046ardb_sdcard_defconfig
  8. If required, make changes to the U-Boot files.
  9. $ make

If the make command shows the error "*** Your GCC is older than 6.0 and is not supported", ensure that you are using Ubuntu 18.04 64-bit version for building LSDK 18.06 or LSDK 18.09 U-Boot binary. 

                  

The compiled U-Boot image, u-boot-with-spl-pbl.bin, is available at u-boot/.

 

You need to use u-boot-with-spl-pbl.bin because for SD boot, ls104x devices use different way for bootloader from ls1088/ls2088/lx2160 devices.

SD card start block number for U-Boot binary

 

Image SD card start block number
U-Boot PBL binary0x00008 = 8

Refer the Flash layout for boot flow with PPA – LSDK 18.09 and older releases for a complete listing of the SD card start block numbers for all LSDK firmware images.

        

Programming U-Boot binary to SD card

  1. Plug the SD card into the Linux host.
  2. Run the following command on the Linux host:
    • $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync

      Use the command cat /proc/partitions to see a list of devices and their sizes to

      make sure that the correct device names have been chosen.

       

      The SDHC storage drive in the Linux PC is detected as /dev/
      sdX, where X is a letter such as a, b, c. Make sure to choose the correct
      device name, because data on this device will be replaced.

       

      If your Linux host machine supports read/write SDHC card directly without
      an extra SDHC card reader device, the device name of SDHC card is typically
      mmcblk0.

                              
  3. Remove the SD card from the Linux host machine.
  4. Plug the SD card into LS1046ARDB and boot the board to Ubuntu using the SD card. You can boot the board using the SD card either by:
    • setting the switches: SW3[1:8] = 01001110 and SW5 [1:8] = 00100000, or
    • boot switching to SD card: => cpld reset sd

In boot log, you’ll see:

Board: LS1046ARDB, boot from SD

If U-Boot does not find LSDK on the SD card, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored on the SD card.

Attachments

    Outcomes