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:

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

Date: 2021-09-20 Mon 18:33

Validate