LS1046ARDB - How to update Linux kernel and device tree on SD card

Document created by Swati Gupta Employee on Oct 22, 2018Last modified by Swati Gupta Employee on Mar 20, 2019
Version 9Show Document
  • View in full screen mode

Follow these steps to update the Linux kernel image and device tree on the SD card. 

Compiling Linux kernel images and device tree

  1. On the Linux host, clone the repository with Linux kernel image and device tree: $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/linux
  2. $ cd linux
  3. $ git checkout -b <new branch> <start point>
    • For example, $ git checkout -b LSDK-18.09-V4.14 LSDK-18.09-V4.14

      where LSDK-18.09-V4.14 refers to a tag in the format LSDK-<LSDK version>-V<kernel version>
  4. $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig lsdk.config

    If you want to make changes to device tree, open and edit arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts

  5. $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

The binary kernel image Image and compressed kernel image Image.gz are in arch/arm64/boot/.
The device tree blob fsl-ls1046a-rdb.dtb is in arch/arm64/boot/dts/freescale/.

Copying the compiled kernel images and device tree to SD card

  1. Plug the SD card into the Linux host machine.
  2. List the disks that are accessible to the computer: $ cat /proc/partitions

    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. Mount the SD card partition that contains Linux kernel images and device tree:

    $ sudo mount /dev/sdX  <mount_location>

  4. Replace Image, Image.gz, and fsl-ls1046a-rdb.dtb on the SD card with the new files compiled in the steps above.

    sudo cp linux/arch/arm64/boot/Image linux/arch/arm64/boot/Image.gz linux/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dtb <mount_location>

  5. sudo umount /dev/sdX
  6. Plug the SD card into LS1046ARDB and boot the board to Ubuntu using the 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