Difference between revisions of "Linux BSP build User Guide (LSDK20.12)"

From ESS-WIKI
Jump to: navigation, search
Line 21: Line 21:
  
 
'''Run/Create Docker Container'''
 
'''Run/Create Docker Container'''
<pre>  $ docker run -it --name ${CONTAINER_NAME} --privileged -v ${WORK_SPACE}:/home/adv/flexbuild_lsdk2012:rw riscswacr.azurecr.io/u18.04-ls1046albv1 /bin/bash</pre>
+
<pre>  $ docker run -it --name ${CONTAINER_NAME} --privileged -v ${WORK_SPACE}:/home/adv/flexbuild_lsdk2012:rw riscswacr.azurecr.io/u18.04-ls1046albv1 /bin/bash
 
+
</pre>
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
  
 
&nbsp;
 
&nbsp;
Line 98: Line 87:
 
&nbsp;
 
&nbsp;
  
&nbsp;
+
== Build Failed Case ==
 +
 
 +
Issue 01: NXP change repository from codeaurora to github
 +
 
 +
[[File:data:image/png;base64,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8ibgP+z5k0RERERERERERETNddvkk1RYjNuI5jOMgvzj9wQ8vUD7wleT1QxD/zeU1lAYlp4Ajq6cHKafI/67Abov11e8viUE0yVewwm8z2e6eyXANHcHjvA0JrjfBFqW/d9gsnc/8VTe7xwk2Pwp/kur/RtPnxdERERERERERERENfjnli/L1w6S1QzT4PS9T6YnZANMZ2u0xxqeOP+rv4zQeZW3hNgYwtMIwxBhWJxWMhB8IWp1y/NPKoShwr7GCA86///fUDYBch/BV4RW963kryJ7TOaVOxkfTiroRRfrkcnEUzbhViYpm5Uiqxp21QAAArhJREFUIiIiIiIiIiIi+uFumnz6s0nQ6r5B7CcDBIT0oHSIfuvSN3NiH8PRGt2JgjydVAimmGMArTxIcfxHISSUDqHOvtRMb91dhrTQfXuOmJsnwMcK6C80vHy5CwGpNMJxG9F8evLepw7GWp3UHwGpxuhEy8K7nv5sErT677n6KCA9BR2G0D955jCYYr7pQisPx9kpsve3rUfNvktRKoTjNpZF72qSCqH2zr4SfJz3TUJ6mHQ3WD7PLXNEREREREREREREd7V/7J4OQ7QAoLNA2F1hNNy+JKczRhi+Yt7bntRv9RGG/exxeP4M8/YEi0V/v8EkibCc9bCZhOiPQ4SDFXq7bQkPetFHC0CSu6NAvvfRagHjRYgxEqxyJ4eD6RB/pIfJZIHxfkIrQRKtsZz1ENx4/tc7mygbI9y/ZCo6pPtGn+sE/X4LQIL1J09au4r9IUZ/PbwPFrl3gWX1YTTycf4Kngjz2RdeJxOM9+8lSxCt5uj5xSUb+0PMoTFYhNj9RJJEWI5GCO71jh+pEI472b87C4T9kvWiwz+Fp7HIVebOIkT+a6ePsLRdH8i3xxCH7EywWs4wPGmMLtu3ZdN+xUsbQGvbzxRICm5zin0MZx7UJNz3P0m0wmw25QP3iIiIiIiIiIiIiEr8StM0/fXr16PjqIXwNBbtJXo13Y5R9/Z/mmfPz2ePn4iIiIiIiIiIiIioCjc9do+IiIiIiIiIiIiIiIgo79/rqzy5zu4xXMeP83MnocIxOrv/jS6tS9YqL6+6sT4QEREREREREREREeV968fuERERERERERERERER0X3xsXtERERERERERERERERUGU4+ERERERERERERERERUWU4+URERERERERERERERESV4eQTERERERERERERERERVYaTT0RERERERERERERERFSZ/x9eyRfNyWNOSQAAAABJRU5ErkJggg==|frame|none|top|upright|link=]]
 +
 
 +
== &nbsp; ==
  
 
== Flash Images to SD/USB ==
 
== Flash Images to SD/USB ==
Line 206: Line 201:
 
== Ethernet Phys Setting ==
 
== Ethernet Phys Setting ==
  
'''Uboot Command :'''
+
'''Uboot Command&nbsp;:'''
 
<pre>    $ setenv dtb xxxx.dtb
 
<pre>    $ setenv dtb xxxx.dtb
 
     $ saveenv
 
     $ saveenv
Line 213: Line 208:
 
'''DTB File List ''':
 
'''DTB File List ''':
  
&nbsp; &nbsp; AQR107 :
+
&nbsp; &nbsp; AQR107&nbsp;:
  
 
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fsl-ls1046a-rom8720-p1.dtb
 
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fsl-ls1046a-rom8720-p1.dtb
Line 223: Line 218:
 
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fsl-ls1046a-rom8720-s1_16G.dtb
 
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fsl-ls1046a-rom8720-s1_16G.dtb
  
&nbsp; &nbsp; AQR113C :
+
&nbsp; &nbsp; AQR113C&nbsp;:
  
 
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fsl-ls1046a-rom8720-p1-aqr-113c.dtb
 
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fsl-ls1046a-rom8720-p1-aqr-113c.dtb

Revision as of 05:07, 25 April 2023

Linux BSP Version

Ubuntu 18.04

Kernel 5.4.47

Released Image

Download flex-installer

    $ wget https://www.nxp.com/lgfiles/sdk/lsdk2012/flex-installer && chmod +x flex-installer && sudo mv flex-installer /usr/bin

Build Environment on Host

If you don't have docker in your system, then you can follow the below  steps to install docker and run it first.

Pull Ubuntu 18.04 from Azure Container Registry

   $ docker pull riscswacr.azurecr.io/u18.04-ls1046albv1:latest

Run/Create Docker Container

   $ docker run -it --name ${CONTAINER_NAME} --privileged -v ${WORK_SPACE}:/home/adv/flexbuild_lsdk2012:rw riscswacr.azurecr.io/u18.04-ls1046albv1 /bin/bash

 

 

 

Get BSP

Download BSP from Azure DevOps

    The following example shows how to download the Advantech LSDK flexbuilder from DevOps. (Execute in Docker container)

    For this example, a directory called adv-release-bsp is created for the project.

    $ cd adv-release-bsp
    $ git clone https://AIM-Linux@dev.azure.com/AIM-Linux/flexbuild_lsdk2012/_git/flexbuild_lsdk2012
    $ cd flexbuild_lsdk2012
    $ git checkout ${MACH_TAG}

    ${MACH_TAG} can refer the field "Download TAG" in LS1046/OS_Support_List_(based_on_Ubuntu 18.04)

    For example "git checkout ls1046aLBA8720P100011"

Product

ROM-8720S1

ROM-8720P1

  • Following we will take ROM-8720S1 as an example in Build/Flash Image sections.

Boot Mode

QSPI Mode MMC mode
RTENOTITLE RTENOTITLE

Build Images

These commands are execute in Docker environment.

Composite Firmware

Type with QSPI, eMMC and SD

    $ cd flexbuild_lsdk2012
    $ source setup.env
    $ flex-builder -i mkfw -m ls1046arom8720_s1 -b qspi
    $ flex-builder -i mkfw -m ls1046arom8720_s1 -b emmc
    $ flex-builder -i mkfw -m ls1046arom8720_s1 -b sd

Root File System

    $ flex-builder -i mkrfs -m ls1046arom8720_s1 -r ubuntu:main -a arm64

Boot Partition

    $ flex-builder -i mkbootpartition -a arm64

 

Build Failed Case

Issue 01: NXP change repository from codeaurora to github

[[File:data:image/png;base64,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8ibgP+z5k0RERERERERERETNddvkk1RYjNuI5jOMgvzj9wQ8vUD7wleT1QxD/zeU1lAYlp4Ajq6cHKafI/67Abov11e8viUE0yVewwm8z2e6eyXANHcHjvA0JrjfBFqW/d9gsnc/8VTe7xwk2Pwp/kur/RtPnxdERERERERERERENfjnli/L1w6S1QzT4PS9T6YnZANMZ2u0xxqeOP+rv4zQeZW3hNgYwtMIwxBhWJxWMhB8IWp1y/NPKoShwr7GCA86///fUDYBch/BV4RW963kryJ7TOaVOxkfTiroRRfrkcnEUzbhViYpm5Uiqxp21QAAArhJREFUIiIiIiIiIiIi+uFumnz6s0nQ6r5B7CcDBIT0oHSIfuvSN3NiH8PRGt2JgjydVAimmGMArTxIcfxHISSUDqHOvtRMb91dhrTQfXuOmJsnwMcK6C80vHy5CwGpNMJxG9F8evLepw7GWp3UHwGpxuhEy8K7nv5sErT677n6KCA9BR2G0D955jCYYr7pQisPx9kpsve3rUfNvktRKoTjNpZF72qSCqH2zr4SfJz3TUJ6mHQ3WD7PLXNEREREREREREREd7V/7J4OQ7QAoLNA2F1hNNy+JKczRhi+Yt7bntRv9RGG/exxeP4M8/YEi0V/v8EkibCc9bCZhOiPQ4SDFXq7bQkPetFHC0CSu6NAvvfRagHjRYgxEqxyJ4eD6RB/pIfJZIHxfkIrQRKtsZz1ENx4/tc7mygbI9y/ZCo6pPtGn+sE/X4LQIL1J09au4r9IUZ/PbwPFrl3gWX1YTTycf4Kngjz2RdeJxOM9+8lSxCt5uj5xSUb+0PMoTFYhNj9RJJEWI5GCO71jh+pEI472b87C4T9kvWiwz+Fp7HIVebOIkT+a6ePsLRdH8i3xxCH7EywWs4wPGmMLtu3ZdN+xUsbQGvbzxRICm5zin0MZx7UJNz3P0m0wmw25QP3iIiIiIiIiIiIiEr8StM0/fXr16PjqIXwNBbtJXo13Y5R9/Z/mmfPz2ePn4iIiIiIiIiIiIioCjc9do+IiIiIiIiIiIiIiIgo79/rqzy5zu4xXMeP83MnocIxOrv/jS6tS9YqL6+6sT4QEREREREREREREeV968fuERERERERERERERER0X3xsXtERERERERERERERERUGU4+ERERERERERERERERUWU4+URERERERERERERERESV4eQTERERERERERERERERVYaTT0RERERERERERERERFSZ/x9eyRfNyWNOSQAAAABJRU5ErkJggg==|frame|none|top|upright|link=]]

 

Flash Images to SD/USB

These operations process in linux local host

Bootable SD card :

    $ cd adv-release-bsp/flexbuild_lsdk2012/build/images/
    $ flex-installer -i pf -d /dev/sda
    $ flex-installer -f firmware_ls1046arom8720_s1_uboot_sdboot.img -b bootpartition_LS_arm64_lts_5.4_xxxxxxxxxxxx.tgz -r rootfs_lsdk2012_ubuntu_main_arm64.tgz -d /dev/sda
    $ sync

Rootfs and Boot-Partition in USB

    $ cd adv-release-bsp/flexbuild_lsdk2012/build/images/
    $ flex-installer -i pf -d /dev/sdx
    $ flex-installer -b bootpartition_LS_arm64_lts_5.4_xxxxxxxxxxxx.tgz -r rootfs_lsdk2012_ubuntu_main_arm64.tgz -d /dev/sdx
    $ sync

 

Flash Image to eMMC

Step 1. Burn In Boot-Loader to QSPI Flash

    You need a bootable SD card (follow above section), and switch boot mode to SD mode.

    Insert your SD card and follow below flow in U-boot console.

   Set FTP Server IP

   $ setenv serverip 172.22.31.153

    Request IP Address

    $ dhcp

    Try to Ping FTP Server

    $ ping 172.22.31.153

    Load U-boot Firmware Image

    $ tftp $load_addr firmware_ls1046arom8720_s1_uboot_qspiboot.img

    Install Image to QSPI (32MB)

    $ sf probe 0:0
    $ sf erase 0 0x2000000 && sf write $load_addr 0 0x2000000

    Shutdown, unplug SD card, switch to QSPI mode, plugin the prepared USB disk and power on the board again.

    Boot into U-boot console again and flush the eMMC

    $ mmc erase 0 0x8000
    $ boot

    Boot into rootfs with USB disk

    Create FTP Temp Folder

    $ mkdir /media/mytftp
    $ cd /media/mytftp

    Request IP Address

    The network interface in here is fml-mac9 :

    $ ifconfig fm1-mac9 up
    $ dhclient -i fm1-mac9
    $ ping 172.22.31.153

    Download Images from FTP

    $ tftp -m binary 172.22.31.153 -c get "bootpartition_LS_arm64_lts_5.4_xxxxxxxxxxxx.tgz"
    $ tftp -m binary 172.22.31.153 -c get "firmware_ls1046arom8720_s1_uboot_emmcboot.img"
    $ tftp -m binary 172.22.31.153 -c get "rootfs_lsdk2012_ubuntu_main_arm64.tgz"

   Initial eMMC Partitions

    $ flex-installer -i pf -d /dev/mmcblk0

   Install Images

    $ flex-installer -f firmware_ls1046arom8720_s1_uboot_emmcboot.img -b bootpartition_LS_arm64_lts_5.4_xxxxxxxxxxxx.tgz -r rootfs_lsdk2012_ubuntu_main_arm64.tgz -d /dev/mmcblk0
    $ sync

    * Finally, shutdown and restart after switch boot mode back to SD mode.

 

Program Boot-Loader

After flash eMMC complete (by flex-installer). If you want to update boot-loader only, just put composite firmware image in your tftp path and execute following commands.

    $ tftp $load_addr firmware_ls1046arom8720_s1_uboot_emmcboot.img
    $ mmc dev 0
    $ mmc write $load_addr 8 $IMAGE_SIZE

   * IMAGE_SIZE = tftp-download-size / 512 (block size)

Linux Kernel and Device Tree Update

Compile kernel and device tree first :

    $ flex-builder -c linux -a arm64

Copy image and dtb file to boot partition mount point :

    $ cp linux/arch/arm64/boot/Image ${boot_partition}
    $ cp linux/arch/arm64/boot/Image.gz ${boot_partition}
    $ cp linux/arch/arm64/boot/dts/freescale/fsl-ls1046a-rom8720-s1.dtb ${boot_partition}
    $ sync

 

Ethernet Phys Setting

Uboot Command :

    $ setenv dtb xxxx.dtb
    $ saveenv
    $ boot

DTB File List :

    AQR107 :

        fsl-ls1046a-rom8720-p1.dtb

        fsl-ls1046a-rom8720-p1_16G.dtb

        fsl-ls1046a-rom8720-s1.dtb

        fsl-ls1046a-rom8720-s1_16G.dtb

    AQR113C :

        fsl-ls1046a-rom8720-p1-aqr-113c.dtb

        fsl-ls1046a-rom8720-s1-aqr-113c.dtb

 

System Recovery

This section provides detail procedures of restoring the eMMC image.

If you destroy the onboard flash image by accident, you can recover a system following these steps.

  • Recovery by SD card & USB disk

  1. Copy 8720S1AIM30UIV00009_2022-08-12_img.tar.gz package to  your desktop.

  2. Insert SD card to PC

  3. Make a bootable sd card

    $ tar xzvf 8720P1AIM30UIV00009_2022-08-12_img.tar.gz
    $ cd ls1046arom8720_p1.out/
    $ sudo flex-installer -i pf -d /dev/sdg
    $ sudo flex-installer -f firmware_ls1046arom8720_p1_uboot_sdboot.img -b bootpartition_LS_arm64_lts_5.4_202208120200.tgz -r rootfs_lsdk2012_ubuntu_main_arm64.sdcard.tgz -d /dev/sdg
    $ sync

  4. Insert USB disk to PC

  5. Burn root filesytem in USB disk

    $ sudo flex-installer -i pf -d /dev/sdh
    $ sudo flex-installer -b bootpartition_LS_arm64_lts_5.4_202208120200.tgz -r rootfs_lsdk2012_ubuntu_main_arm64.sdcard.tgz -d /dev/sdh
    $ sync

  6. Insert SD card and Boot from SD.

  7. Burn bootloader to QSPI

    $ /usr/bin/flash_qspi.sh
    $ sync

  8. Power down

  9. Unplug SD card & Insert USB disk

10. Boot on QSPI mode

11. Enter U-Boot console and force into USB root filesystem

    $ (U-BOOT Console)
    $ run bootcmd_usb0

12. Burn image  to eMMC

    $ /usr/bin/flash_emmc.sh
    $ sync

13. Reboot by MMC mode (End)