NXP LS1088A - Create rootfs
Table of Contents
Board LS1088ARDB-PB.
Instructions on how to create rootfs for booting board.
Notice that the official documentation for this and other boards is the "Layerscape Software Development Kit User Guide" link to specific version LSDK v19.03 User Guide. This document will reference section in this document.
For this board LS1088ARDB-PB look at section:
- "4.1.7 LSDK Quick Start Guide for LS1088ARDB"
This document is basically a cheat-sheet, with steps that I performed to bring-up the board.
Download flexbuild
First step is downloading and extracting the flexbuild tool:
Create Ubuntu rootfs
A more detailed description of all the steps can be found in chapter 4.1.7.2 from LSDK 19.03 User Guide.
Prerequisite: Docker
Use flexbuild to create docker image:
[~/flexbuild] $ source setup.env [~/flexbuild] $ flex-builder docker
When Docker "fbubuntu" is running, inside container run:
flex-builder -i mkrfs -a arm64 [...] (long-time) [...] ~/projects/nxp-board/flexbuild_lsdk1903/build/rfs/rootfs_lsdk_19.03_LS_arm64 [Done]
Still inside docker container, create tar.gz rootfs:
flex-builder -i packrfs -a arm64 INSTRUCTION: packrfs DESTARCH: arm64 packing rootfs_lsdk_19.03_LS_arm64_201905031532.tgz, waiting ... ~/projects/nxp-board/flexbuild_lsdk1903/build/images/rootfs_lsdk_19.03_LS_arm64_201905031532.tgz [Done]
Create a bootpartition file:
flex-builder -i mkbootpartition -a arm64 INSTRUCTION: mkbootpartition DESTARCH: arm64 build/linux/kernel/arm64/LS/Image not exist, generating it COMPONENT: linux PORTFOLIO: LS CONFIGLIST: build_lsdk.cfg make: Entering directory '/home/hawk/redhat/doc/projects/nxp-board/flexbuild_lsdk1903' make[1]: Entering directory '/home/hawk/redhat/doc/projects/nxp-board/flexbuild_lsdk1903/packages/linux' Cloning into 'linux'... [...] ~/projects/nxp-board/flexbuild_lsdk1903/build/images/bootpartition_LS_arm64_lts_4.19_201905031555.tgz [Done]
We can also download it:
wget http://www.nxp.com/lgfiles/sdk/lsdk1903/bootpartition_LS_arm64_lts_4.19.tgz wget http://www.nxp.com/lgfiles/sdk/lsdk1903/lib_modules_LS_arm64_4.19.26.tgz
Install on SD-card
Install the bootpartition and Ubuntu rootfs onto an SD card or USB directly from an x86 machine.
For SD boot, download SD firmware for LS1088ARDB-PB and deploy it to the SD card (via flex-installer -f). (As described in guide: 4.1.7.3.2 Option 1 - Deploy LSDK images using removable storage device).
wget http://www.nxp.com/lgfiles/sdk/lsdk1903/firmware_ls1088ardb_pb_uboot_sdboot.img flex-installer -f firmware_ls1088ardb_pb_uboot_sdboot.img
Copy over to a machine that have an SD-card reader:
cp build/images/bootpartition_LS_arm64_lts_4.19_201905031555.tgz upload/ cp build/images/rootfs_lsdk_19.03_LS_arm64_201905031532.tgz upload/ cp ../flexbuild_lsdk1903.tgz upload/
On machine with SD-card with device /dev/mmcblk0 , extract flexbuild tool and use it to install the images on the SD-card:
# source setup.env # flex-installer -b bootpartition_arm64_lts_<version>.tgz \ -r rootfs_lsdk_19.03_LS_arm64_<timestamp>.tgz -d /dev/mmcblk0
Boot setup
From LSDK 19.03 User Guide: "4.1.7.3.2 Option 1 - Deploy LSDK images using removable storage device"
Make sure the DIP switch settings on the board enable the desired boot option. (Refer to “On-board switch options” in the preceding section for switch settings.)
Changed DIP switch SW1[1:8]
:
- From: 0011 0001
- To : 0010 0000
Kernel DTS files
Upstream kernel also have DTS files for this board:
$ ls -1 arch/arm64/boot/dts/freescale/*1088* arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
Make command:
$ make freescale/fsl-ls1088a-rdb.dtb DTC arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dtb