Private Island Networks Inc.

Use the Yocto Project with NXP LS1046A Freeway Board

Build a custom Yocto image using the powerful NXP LS1046A Freeway Board with Ubuntu Linux

Overview

This article discusses using an NXP LS1046A Freeway Board with the Yocto Project to build a working system to interoperate with a Private Island ® networking node. We're going to use the Yocto kirkstone release / branch since it has long term support through at least April 2024.

The LS1046A is an amazing networking device, and the Freeway board (shown below) enables many of its features:

  • Four Gigabit Ethernet ports
  • WiFi support via M.2 connectors
  • USB 3.0
  • Data Path Acceleration Architecture (DPAA) for the high-speed transfer of packet data
  • Cryptographic acceleration engine
  • Linux Kernel hardware debug support using NXP Codewarrior.
NXP FRWY-LS1046A board
NXP FRWY-LS1046A Board

Setting up the Yocto Project on Ubuntu Linux

This article assumes familiarity with the Yocto Project and that the Ubuntu Linux build machine has already been properly configured. If you are new to Yocto Project, then start with the Quick Build Guide. Also, don't overlook What I Wish I'd Known.

To setup Yocto, we first check out the Git repositories we'll need.

Create our top level build directory.

$ mkdir -p /build/yocto; cd /build/yocto;

Clone and checkout the kirkstone poky branch.

$  git clone https://git.yoctoproject.org/git/poky
Cloning into 'poky'...

$ cd poky/
$ git branch -r 
...
  origin/hardknott
  origin/honister
  origin/jethro
  origin/kirkstone
  origin/krogoth
  origin/langdale
  origin/laverne
  origin/master
 ...

$ git checkout kirkstone

$ git log
commit 54af8c5e80ebf63707ef4e51cc9d374f716da603 (HEAD -> kirkstone, origin/kirkstone)
Author: Steve Sakoman 
Date:   Thu Jan 25 04:06:50 2024 -1000

    build-appliance-image: Update to kirkstone head revision
    
    (From OE-Core rev: a744a897f0ea7d34c31c024c13031221f9a85f24)
...

$ ls
bitbake  documentation  LICENSE.GPL-2.0-only  MAINTAINERS.md  MEMORIAM  meta-poky      meta-skeleton   oe-init-build-env   README.md          README.poky.md  scripts
contrib  LICENSE        LICENSE.MIT           Makefile        meta      meta-selftest  meta-yocto-bsp  README.hardware.md  README.OE-Core.md  README.qemu.md

Clone and checkout the other repositories that we will need under our /build/yocto directories.

$ cd /build/yocto
$ git clone git://git.yoctoproject.org/meta-freescale
Cloning into 'meta-freescale'...

$ cd meta-freescale/
$ git checkout kirkstone
Branch 'kirkstone' set up to track remote branch 'kirkstone' from 'origin'.
Switched to a new branch 'kirkstone'

$ cd /build/yocto
$ git clone git://git.openembedded.org/meta-openembedded
Cloning into 'meta-openembedded'...
...

# We will need meta-openembedded later below
$ cd meta-openembedded/
$ git checkout kirkstone
Branch 'kirkstone' set up to track remote branch 'kirkstone' from 'origin'.
Switched to a new branch 'kirkstone'

$ ls /build/yocto
meta-freescale  meta-openembedded  poky

Build and Boot our First Image

Before we create a custom recipe / image, let's first build and boot core-image-minimal.

$ cd /build/yocto
$ source poky/oe-init-build-env  bld_ls1046afrwy

You had no conf/local.conf file. This configuration file has therefore been
created for you from /build/yocto/poky/meta-poky/conf/local.conf.sample
You may wish to edit it to, for example, select a different MACHINE (target
hardware). See conf/local.conf for more information as common configuration
options are commented.

You had no conf/bblayers.conf file. This configuration file has therefore been
created for you from /build/yocto/poky/meta-poky/conf/bblayers.conf.sample
To add additional metadata layers into your configuration please add entries
to conf/bblayers.conf.

The Yocto Project has extensive documentation about OE including a reference
manual which can be found at:
    https://docs.yoctoproject.org

For more information about OpenEmbedded see the website:
    https://www.openembedded.org/

### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
...

Modify our "conf/local.conf" file to setMACHINE="ls1046afrwy".

#
# Machine Selection
#
# You need to select a specific machine to target the build with. 
#
MACHINE="ls1046afrwy"

Add "/build/yocto/meta-freescale" to "conf/bblayers.conf".

# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /build/yocto/poky/meta \
  /build/yocto/poky/meta-poky \
  /build/yocto/poky/meta-yocto-bsp \
  /build/yocto/meta-freescale \
  "
$ bitbake core-image-minimal

Loading cache: 100% |                                                                                                                                               | ETA:  --:--:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |##############################################################################################################################################| Time: 0:00:12
Parsing of 1037 .bb files complete (0 cached, 1037 parsed). 1817 targets, 153 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "2.0.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-poky-linux"
MACHINE              = "ls1046afrwy"
DISTRO               = "poky"
DISTRO_VERSION       = "4.0.16"
TUNE_FEATURES        = "aarch64"
TARGET_FPU           = ""
meta                 
meta-poky            
meta-yocto-bsp       = "kirkstone:54af8c5e80ebf63707ef4e51cc9d374f716da603"
meta-freescale       = "kirkstone:710e55d529c86d15a93c4421365ef62eb601a49b"


NOTE: Fetching uninative binary shim http://downloads.yoctoproject.org/releases/uninative/4.0/x86_64-nativesdk-libc-4.0.tar.xz;sha256sum=fd75b2a1a67a10f6b7d65afb7d0f3e71a63b0038e428f34dfe420bb37716558a (will check PREMIRRORS first)
Initialising tasks: 100% |###########################################################################################################################################| Time: 0:00:01
Sstate summary: Wanted 1391 Local 0 Mirrors 0 Missed 1391 Current 0 (0% match, 0% complete)
NOTE: Executing Tasks
WARNING: libcap-ng-native-0.8.2-r0 do_fetch: Failed to fetch URL https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-0.8.2.tar.gz, attempting MIRRORS if available
Setscene tasks: 1391 of 1391
NOTE: Tasks Summary: Attempted 3565 tasks of which 0 didn't need to be rerun and all succeeded.
...

Create a disk with an SD Card and boot it.

$ cd /build/yocto/bld_ls1046afrwy/tmp/deploy/images/ls1046afrwy/

$ ls *.bz2
core-image-minimal-ls1046afrwy-20230814034927.rootfs.wic.bz2  core-image-minimal-ls1046afrwy.wic.bz2

$ bzip2 -dfk core-image-minimal-ls1046afrwy.wic.bz2

$ file core-image-minimal-ls1046afrwy.wic
core-image-minimal-ls1046afrwy.wic: DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x10,0,1), end-CHS (0x3ff,3,32), 
startsector 32768, 104894 sectors; partition 2 : ID=0x83, start-CHS (0x3ff,3,32), end-CHS (0x3ff,3,32), startsector 163840, 46664 sectors


# insert a fresh SD card in our reader/writer

$ sudo dd if=core-image-minimal-ls1046afrwy.wic of=/dev/sdb bs=1M status=progress
102+1 records in
102+1 records out
107778048 bytes (108 MB, 103 MiB) copied, 1.38804 s, 77.6 MB/s

mount | grep sdb
/dev/sdb1 on /media/<user>/boot type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)
/dev/sdb2 on /media/<user>/rootfs type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)

Insert the SD Card in the FRWY board, hit reset, and press any key to prevent auto boot.

NOTICE:  Fixed DDR on board

NOTICE:  4 GB DDR4, 64-bit, CL=15, ECC on
NOTICE:  BL2: v2.4(release):lf-5.10.52-2.1.0-rc2-0-gbb4957067
NOTICE:  BL2: Built : 04:45:39, Sep  8 2021
NOTICE:  BL2: Booting BL31
NOTICE:  BL31: v2.4(release):lf-5.10.52-2.1.0-rc2-0-gbb4957067
NOTICE:  BL31: Built : 04:45:39, Sep  8 2021
NOTICE:  Welcome to ls1046afrwy BL31 Phase


U-Boot 2021.04+fsl+g1c0116f3da (Sep 06 2021 - 08:48:23 +0000)

SoC:  LS1046AE Rev1.0 (0x87070010)
Clock Configuration:
       CPU0(A72):1600 MHz  CPU1(A72):1600 MHz  CPU2(A72):1600 MHz  
       CPU3(A72):1600 MHz  
       Bus:      600  MHz  DDR:      2100 MT/s  FMAN:     700  MHz
Reset Configuration Word (RCW):
       00000000: 0c150010 0e000000 00000000 00000000
       00000010: 30400506 00800012 60040000 c1000000
       00000020: 00000000 00000000 00000000 00038800
       00000030: 20044100 24003101 00000096 00000001
Model: LS1046A FRWY Board
Board: LS1046AFRWY, Rev: B, boot from SD
SD1_CLK1 = 100.00MHZ, SD1_CLK2 = 100.00MHZ
DRAM:  3.9 GiB (DDR4, 64-bit, CL=15, ECC on)
Using SERDES1 Protocol: 12352 (0x3040)
Using SERDES2 Protocol: 1286 (0x506)
NAND:  512 MiB
MMC:   FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

EEPROM: NXID v1
In:    serial
Out:   serial
Err:   serial
SEC0:  RNG instantiated
Net:   
MMC read: dev # 0, block # 18432, count 128 ...
Fman1: Uploading microcode version 106.4.18
PCIe1: pcie@3400000 disabled
PCIe2: pcie@3500000 Root Complex: no link
PCIe3: pcie@3600000 Root Complex: no link
FM1@DTSEC1, FM1@DTSEC5, FM1@DTSEC6, FM1@DTSEC10
Hit any key to stop autoboot:  0 
=> 

Examime some key u-boot variables that we will use in booting our FRWY board.

=> printenv kernel_addr_r
kernel_addr_r=0x81000000
=> printenv fdt_addr_r 
fdt_addr_r=0x90000000
=> printenv bootargs
bootargs=console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)

Set up our own boot_yocto environment variable

=> part uuid mmc 0:2 partuuidr
=> print partuuidr 
partuuidr=79c30953-02
=> setenv bootargs onsole=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=79c30953-02 rw rootwait nokaslr
=> setenv boot_yocto "load mmc 0:1  $kernel_addr_r Image; load mmc 0:1 $fdt_addr_r /fsl-ls1046a-frwy-sdk.dtb; booti $kernel_addr_r - $fdt_addr_r"
=> saveenv 
Saving Environment to MMC... Writing to MMC(0)... OK

Time to boot it!

=> run boot_yocto
42144256 bytes read in 3600 ms (11.2 MiB/s)
30944 bytes read in 12 ms (2.5 MiB/s)
## Flattened Device Tree blob at 90000000
   Booting using the fdt blob at 0x90000000
   Loading Device Tree to 000000008ffe5000, end 000000008ffff8df ... OK
WARNING failed to get smmu node: FDT_ERR_NOTFOUND
WARNING failed to get smmu node: FDT_ERR_NOTFOUND

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd082]
[    0.000000] Linux version 5.10.52+ga11753a89ec6+p0 (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Wed Sep 8 10:41:11 UTC 2021
[    0.000000] Machine model: LS1046A FRWY Board
[    0.000000] earlycon: uart8250 at MMIO 0x00000000021c0500 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] OF: reserved mem: initialized node qman-fqd, compatible id fsl,qman-fqd
[    0.000000] OF: reserved mem: initialized node qman-pfdr, compatible id fsl,qman-pfdr
[    0.000000] OF: reserved mem: initialized node bman-fbpr, compatible id fsl,bman-fbpr
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000008ff7fffff]
[    0.000000] NUMA: NODE_DATA [mem 0x8ff015b00-0x8ff017fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ff7fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000fbdfffff]
[    0.000000]   node   0: [mem 0x0000000880000000-0x00000008fbffffff]
[    0.000000]   node   0: [mem 0x00000008ff000000-0x00000008ff7fffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ff7fffff]
[    0.000000] cma: Reserved 32 MiB at 0x00000000f9c00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 24 pages/cpu s60120 r8192 d29992 u98304
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: EL2 vector hardening
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1001184
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: onsole=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=79c30953-02 rw rootwait nokaslr
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000f5c00000-0x00000000f9c00000] (64MB)
[    0.000000] Memory: 3848208K/4069376K available (21376K kernel code, 3076K rwdata, 9952K rodata, 6656K init, 1040K bss, 188400K reserved, 32768K cma-reserved)
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=4.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x000000000142f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x318/0x4e0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000002] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008554] Console: colour dummy device 80x25
[    0.013026] printk: console [tty0] enabled
[    0.017146] printk: bootconsole [uart8250] disabled
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd082]
[    0.000000] Linux version 5.10.52+ga11753a89ec6+p0 (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Wed Sep 8 10:41:11 UTC 2021
[    0.000000] Machine model: LS1046A FRWY Board
[    0.000000] earlycon: uart8250 at MMIO 0x00000000021c0500 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] OF: reserved mem: initialized node qman-fqd, compatible id fsl,qman-fqd
[    0.000000] OF: reserved mem: initialized node qman-pfdr, compatible id fsl,qman-pfdr
[    0.000000] OF: reserved mem: initialized node bman-fbpr, compatible id fsl,bman-fbpr
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000008ff7fffff]
[    0.000000] NUMA: NODE_DATA [mem 0x8ff015b00-0x8ff017fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ff7fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000fbdfffff]
[    0.000000]   node   0: [mem 0x0000000880000000-0x00000008fbffffff]
[    0.000000]   node   0: [mem 0x00000008ff000000-0x00000008ff7fffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ff7fffff]
[    0.000000] cma: Reserved 32 MiB at 0x00000000f9c00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 24 pages/cpu s60120 r8192 d29992 u98304
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: EL2 vector hardening
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1001184
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: onsole=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=79c30953-02 rw rootwait nokaslr
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000f5c00000-0x00000000f9c00000] (64MB)
[    0.000000] Memory: 3848208K/4069376K available (21376K kernel code, 3076K rwdata, 9952K rodata, 6656K init, 1040K bss, 188400K reserved, 32768K cma-reserved)
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=4.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x000000000142f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x318/0x4e0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000002] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008554] Console: colour dummy device 80x25
[    0.013026] printk: console [tty0] enabled
[    0.017146] printk: bootconsole [uart8250] disabled
[    0.022096] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=100000)
[    0.022107] pid_max: default: 32768 minimum: 301
[    0.022166] LSM: Security Framework initializing
[    0.022244] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.022272] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.023034] rcu: Hierarchical SRCU implementation.
[    0.023933] EFI services will not be available.
[    0.024046] smp: Bringing up secondary CPUs ...
[    0.024352] Detected PIPT I-cache on CPU1
[    0.024378] CPU1: Booted secondary processor 0x0000000001 [0x410fd082]
[    0.024706] Detected PIPT I-cache on CPU2
[    0.024724] CPU2: Booted secondary processor 0x0000000002 [0x410fd082]
[    0.025035] Detected PIPT I-cache on CPU3
[    0.025053] CPU3: Booted secondary processor 0x0000000003 [0x410fd082]
[    0.025088] smp: Brought up 1 node, 4 CPUs
[    0.025108] SMP: Total of 4 processors activated.
[    0.025114] CPU features: detected: 32-bit EL0 Support
[    0.025120] CPU features: detected: CRC32 instructions
[    0.025125] CPU features: detected: 32-bit EL1 Support
[    0.036080] CPU: All CPU(s) started at EL2
[    0.036101] alternatives: patching kernel code
[    0.036722] devtmpfs: initialized
[    0.039259] KASLR disabled on command line
[    0.039341] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.039354] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.039756] pinctrl core: initialized pinctrl subsystem
[    0.040265] DMI not present or invalid.
[    0.040482] NET: Registered protocol family 16
[    0.041100] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.041184] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.041317] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.041341] audit: initializing netlink subsys (disabled)
[    0.041414] audit: type=2000 audit(0.032:1): state=initialized audit_enabled=0 res=1
[    0.041868] thermal_sys: Registered thermal governor 'step_wise'
[    0.041871] thermal_sys: Registered thermal governor 'power_allocator'
[    0.042211] cpuidle: using governor menu
[    0.042289] Bman ver:0a02,02,01
[    0.044424] qman-fqd addr 0x00000008ff800000 size 0x800000
[    0.044431] qman-pfdr addr 0x00000008fc000000 size 0x2000000
[    0.044440] Qman ver:0a01,03,02,01
[    0.044526] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.044568] ASID allocator initialised with 65536 entries
[    0.045192] Serial: AMBA PL011 UART driver
[    0.045243] imx mu driver is registered.
[    0.045264] imx rpmsg driver is registered.
[    0.066066] Machine: LS1046A FRWY Board
[    0.066075] SoC family: QorIQ LS1046A
[    0.066080] SoC ID: svr:0x87070010, Revision: 1.0
[    0.079128] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.079139] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.079146] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.079152] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.079963] cryptd: max_cpu_qlen set to 1000
[    0.146147] raid6: neonx8   gen()  4543 MB/s
[    0.214179] raid6: neonx8   xor()  3356 MB/s
[    0.282216] raid6: neonx4   gen()  4635 MB/s
[    0.350252] raid6: neonx4   xor()  3475 MB/s
[    0.418286] raid6: neonx2   gen()  4109 MB/s
[    0.486323] raid6: neonx2   xor()  3205 MB/s
[    0.554359] raid6: neonx1   gen()  3175 MB/s
[    0.622388] raid6: neonx1   xor()  2599 MB/s
[    0.690425] raid6: int64x8  gen()  2417 MB/s
[    0.758454] raid6: int64x8  xor()  1475 MB/s
[    0.826487] raid6: int64x4  gen()  2683 MB/s
[    0.894527] raid6: int64x4  xor()  1547 MB/s
[    0.962549] raid6: int64x2  gen()  2546 MB/s
[    1.030578] raid6: int64x2  xor()  1375 MB/s
[    1.098619] raid6: int64x1  gen()  1959 MB/s
[    1.166643] raid6: int64x1  xor()  1023 MB/s
[    1.166648] raid6: using algorithm neonx4 gen() 4635 MB/s
[    1.166653] raid6: .... xor() 3475 MB/s, rmw enabled
[    1.166659] raid6: using neon recovery algorithm
[    1.167164] ACPI: Interpreter disabled.
[    1.169633] iommu: Default domain type: Passthrough 
[    1.169763] vgaarb: loaded
[    1.169907] SCSI subsystem initialized
[    1.170068] usbcore: registered new interface driver usbfs
[    1.170090] usbcore: registered new interface driver hub
[    1.170108] usbcore: registered new device driver usb
[    1.170623] i2c i2c-0: IMX I2C adapter registered
[    1.170651] i2c i2c-0: using dma0chan16 (tx) and dma0chan17 (rx) for DMA transfers
[    1.171302] mc: Linux media interface: v0.10
[    1.171318] videodev: Linux video capture interface: v2.00
[    1.171357] pps_core: LinuxPPS API ver. 1 registered
[    1.171363] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti 
[    1.171373] PTP clock support registered
[    1.171476] EDAC MC: Ver: 3.0.0
[    1.172249] bman-fbpr addr 0x00000008fe000000 size 0x1000000
[    1.172279] Bman err interrupt handler present
[    1.172763] Bman portal initialised, cpu 0
[    1.172846] Bman portal initialised, cpu 1
[    1.172925] Bman portal initialised, cpu 2
[    1.173007] Bman portal initialised, cpu 3
[    1.173012] Bman portals initialised
[    1.174037] Qman err interrupt handler present
[    1.174413] QMan: Allocated lookup table at (____ptrval____), entry count 131073
[    1.174852] Qman portal initialised, cpu 0
[    1.174926] Qman portal initialised, cpu 1
[    1.174996] Qman portal initialised, cpu 2
[    1.175067] Qman portal initialised, cpu 3
[    1.175073] Qman portals initialised
[    1.175126] Bman: BPID allocator includes range 32:32
[    1.175160] Qman: FQID allocator includes range 256:256
[    1.175167] Qman: FQID allocator includes range 32768:32768
[    1.175203] Qman: CGRID allocator includes range 0:256
[    1.175351] Qman: pool channel allocator includes range 1025:15
[    1.175415] No USDPAA memory, no 'fsl,usdpaa-mem' in device-tree
[    1.175792] fsl-ifc 1530000.ifc: Freescale Integrated Flash Controller
[    1.175812] fsl-ifc 1530000.ifc: IFC version 1.4, 8 banks
[    1.175961] FPGA manager framework
[    1.176009] Advanced Linux Sound Architecture Driver Initialized.
[    1.176781] clocksource: Switched to clocksource arch_sys_counter
[    1.176895] VFS: Disk quotas dquot_6.6.0
[    1.176927] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.177018] pnp: PnP ACPI: disabled
[    1.180375] NET: Registered protocol family 2
[    1.180565] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    1.181715] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    1.181768] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    1.181904] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    1.182161] TCP: Hash tables configured (established 32768 bind 32768)
[    1.182212] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    1.182267] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    1.182376] NET: Registered protocol family 1
[    1.182573] RPC: Registered named UNIX socket transport module.
[    1.182580] RPC: Registered udp transport module.
[    1.182585] RPC: Registered tcp transport module.
[    1.182590] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.182912] PCI: CLS 0 bytes, default 64
[    1.183303] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    1.183603] kvm [1]: IPA Size Limit: 44 bits
[    1.184351] kvm [1]: vgic interrupt IRQ9
[    1.184425] kvm [1]: Hyp mode initialized successfully
[    1.186206] Initialise system trusted keyrings
[    1.186276] workingset: timestamp_bits=42 max_order=20 bucket_order=0
[    1.186536] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.186673] NFS: Registering the id_resolver key type
[    1.186688] Key type id_resolver registered
[    1.186693] Key type id_legacy registered
[    1.186710] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.186717] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.186732] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    1.186841] fuse: init (API version 7.32)
[    1.186921] 9p: Installing v9fs 9p2000 file system support
[    1.212007] xor: measuring software checksum speed
[    1.213537]    8regs           :  6509 MB/sec
[    1.214815]    32regs          :  7727 MB/sec
[    1.216319]    arm64_neon      :  6563 MB/sec
[    1.216324] xor: using function: 32regs (7727 MB/sec)
[    1.216331] Key type asymmetric registered
[    1.216337] Asymmetric key parser 'x509' registered
[    1.216356] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    1.216415] io scheduler mq-deadline registered
[    1.216421] io scheduler kyber registered
[    1.227398] layerscape-pcie 3500000.pcie: host bridge /soc/pcie@3500000 ranges:
[    1.227421] layerscape-pcie 3500000.pcie:       IO 0x4800010000..0x480001ffff -> 0x0000000000
[    1.227436] layerscape-pcie 3500000.pcie:      MEM 0x4840000000..0x487fffffff -> 0x0040000000
[    1.227527] layerscape-pcie 3500000.pcie: PCI host bridge to bus 0000:00
[    1.227536] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.227542] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    1.227550] pci_bus 0000:00: root bus resource [mem 0x4840000000-0x487fffffff] (bus address [0x40000000-0x7fffffff])
[    1.227573] pci 0000:00:00.0: [1957:81c0] type 01 class 0x060400
[    1.227619] pci 0000:00:00.0: supports D1 D2
[    1.227625] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
[    1.229309] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    1.229435] pcieport 0000:00:00.0: PME: Signaling with IRQ 72
[    1.229572] layerscape-pcie 3600000.pcie: host bridge /soc/pcie@3600000 ranges:
[    1.229592] layerscape-pcie 3600000.pcie:       IO 0x5000010000..0x500001ffff -> 0x0000000000
[    1.229605] layerscape-pcie 3600000.pcie:      MEM 0x5040000000..0x507fffffff -> 0x0040000000
[    1.229679] layerscape-pcie 3600000.pcie: PCI host bridge to bus 0001:00
[    1.229687] pci_bus 0001:00: root bus resource [bus 00-ff]
[    1.229694] pci_bus 0001:00: root bus resource [io  0x10000-0x1ffff] (bus address [0x0000-0xffff])
[    1.229703] pci_bus 0001:00: root bus resource [mem 0x5040000000-0x507fffffff] (bus address [0x40000000-0x7fffffff])
[    1.229720] pci 0001:00:00.0: [1957:81c0] type 01 class 0x060400
[    1.229759] pci 0001:00:00.0: supports D1 D2
[    1.229765] pci 0001:00:00.0: PME# supported from D0 D1 D2 D3hot
[    1.230686] pci 0001:01:00.0: [8086:2723] type 00 class 0x028000
[    1.230746] pci 0001:01:00.0: reg 0x10: [mem 0x5040000000-0x5040003fff 64bit]
[    1.231041] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
[    1.231968] pci 0001:00:00.0: BAR 14: assigned [mem 0x5040000000-0x50400fffff]
[    1.231979] pci 0001:01:00.0: BAR 0: assigned [mem 0x5040000000-0x5040003fff 64bit]
[    1.232008] pci 0001:00:00.0: PCI bridge to [bus 01-ff]
[    1.232015] pci 0001:00:00.0:   bridge window [mem 0x5040000000-0x50400fffff]
[    1.232123] pcieport 0001:00:00.0: PME: Signaling with IRQ 74
[    1.233345] EINJ: ACPI disabled.
[    1.240430] Bus freq driver module loaded
[    1.246318] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.247796] 21c0500.serial: ttyS0 at MMIO 0x21c0500 (irq = 46, base_baud = 18750000) is a 16550A
[    2.626733] printk: console [ttyS0] enabled
[    2.631194] 21c0600.serial: ttyS1 at MMIO 0x21c0600 (irq = 46, base_baud = 18750000) is a 16550A
[    2.640255] 21d0500.serial: ttyS2 at MMIO 0x21d0500 (irq = 47, base_baud = 18750000) is a 16550A
[    2.649310] 21d0600.serial: ttyS3 at MMIO 0x21d0600 (irq = 47, base_baud = 18750000) is a 16550A
[    2.658515] SuperH (H)SCI(F) driver initialized
[    2.663566] msm_serial: driver initialized
[    2.676017] brd: module loaded
[    2.682497] loop: module loaded
[    2.686484] megasas: 07.714.04.00-rc1
[    2.691129] imx ahci driver is registered.
[    2.695562] ahci-qoriq 3200000.sata: supply ahci not found, using dummy regulator
[    2.703109] ahci-qoriq 3200000.sata: supply phy not found, using dummy regulator
[    2.710549] ahci-qoriq 3200000.sata: supply target not found, using dummy regulator
[    2.718280] ahci-qoriq 3200000.sata: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl platform mode
[    2.727253] ahci-qoriq 3200000.sata: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst 
[    2.737277] scsi host0: ahci-qoriq
[    2.740814] ata1: SATA max UDMA/133 mmio [mem 0x03200000-0x0320ffff] port 0x100 irq 58
[    2.749864] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xac
[    2.756228] nand: AMD/Spansion S34MS04G2
[    2.760153] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 128
[    2.768173] Bad block table found at page 262080, version 0x01
[    2.774664] Bad block table found at page 262016, version 0x01
[    2.785120] fsl,ifc-nand 7e800000.nand: IFC NAND device at 0x7e800000, bank 0
[    2.793668] spi-nor spi0.0: mt25qu512a (65536 Kbytes)
[    2.802725] libphy: Fixed MDIO Bus: probed
[    2.807684] tun: Universal TUN/TAP device driver, 1.6
[    2.813376] thunder_xcv, ver 1.0
[    2.816617] thunder_bgx, ver 1.0
[    2.819865] nicpf, ver 1.0
[    2.823036] libphy: Freescale XGMAC MDIO Bus: probed
[    2.828182] libphy: Freescale XGMAC MDIO Bus: probed
[    2.835725] libphy: Freescale XGMAC MDIO Bus: probed
[    2.841064] libphy: Freescale XGMAC MDIO Bus: probed
[    2.846384] libphy: Freescale XGMAC MDIO Bus: probed
[    2.851707] libphy: Freescale XGMAC MDIO Bus: probed
[    2.857062] libphy: Freescale XGMAC MDIO Bus: probed
[    2.862389] libphy: Freescale XGMAC MDIO Bus: probed
[    2.867707] libphy: Freescale XGMAC MDIO Bus: probed
[    2.873039] libphy: Freescale XGMAC MDIO Bus: probed
[    2.888054] Freescale FM module, FMD API version 21.1.0
[    2.895904] Freescale FM Ports module
[    2.899576] fsl_mac: fsl_mac: FSL FMan MAC API based driver
[    2.905532] fsl_mac 1ae0000.ethernet: FMan MEMAC
[    2.910159] fsl_mac 1ae0000.ethernet: FMan MAC address: 00:04:9f:06:2c:5e
[    2.917265] fsl_mac 1ae8000.ethernet: FMan MEMAC
[    2.921890] fsl_mac 1ae8000.ethernet: FMan MAC address: 00:04:9f:06:2c:5f
[    2.928996] fsl_mac 1aea000.ethernet: FMan MEMAC
[    2.933624] fsl_mac 1aea000.ethernet: FMan MAC address: 00:04:9f:06:2c:60
[    2.940727] fsl_mac 1af2000.ethernet: FMan MEMAC
[    2.945352] fsl_mac 1af2000.ethernet: FMan MAC address: 00:04:9f:06:2c:61
[    2.952175] fsl_dpa: FSL DPAA Ethernet driver
[    2.958007] fsl_dpa: fsl_dpa: Probed interface eth0
[    2.964372] fsl_dpa: fsl_dpa: Probed interface eth1
[    2.970854] fsl_dpa: fsl_dpa: Probed interface eth2
[    2.975806] fsl_dpa soc:fsl,dpaa:ethernet@8: of_find_device_by_node(ethernet@f0000) failed
[    2.984112] fsl_dpa: probe of soc:fsl,dpaa:ethernet@8 failed with error -22
[    2.992864] fsl_dpa: fsl_dpa: Probed interface eth3
[    2.997776] fsl_advanced: FSL DPAA Advanced drivers:
[    3.002744] fsl_proxy: FSL DPAA Proxy initialization driver
[    3.008484] fsl_oh: FSL FMan Offline Parsing port driver
[    3.014479] hclge is initializing
[    3.017805] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    3.025035] hns3: Copyright (c) 2017 Huawei Corporation.
[    3.030371] e1000: Intel(R) PRO/1000 Network Driver
[    3.035253] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    3.041025] e1000e: Intel(R) PRO/1000 Network Driver
[    3.045992] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    3.051938] igb: Intel(R) Gigabit Ethernet Network Driver
[    3.057345] igb: Copyright (c) 2007-2014 Intel Corporation.
[    3.062935] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    3.062942] ata1: SATA link down (SStatus 0 SControl 300)
[    3.069206] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    3.069499] sky2: driver version 1.30
[    3.085173] usbcore: registered new interface driver r8152
[    3.090678] usbcore: registered new interface driver asix
[    3.096094] usbcore: registered new interface driver ax88179_178a
[    3.102499] VFIO - User Level meta-driver version: 0.3
[    3.110437] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.116976] ehci-pci: EHCI PCI platform driver
[    3.121439] ehci-platform: EHCI generic platform driver
[    3.126780] ehci-orion: EHCI orion driver
[    3.130881] ehci-exynos: EHCI Exynos driver
[    3.135147] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    3.141343] ohci-pci: OHCI PCI platform driver
[    3.145808] ohci-platform: OHCI generic platform driver
[    3.151139] ohci-exynos: OHCI Exynos driver
[    3.155679] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    3.161179] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    3.168905] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220f66d hci version 0x100 quirks 0x0000000002010810
[    3.178331] xhci-hcd xhci-hcd.0.auto: irq 55, io mem 0x02f00000
[    3.184595] hub 1-0:1.0: USB hub found
[    3.188362] hub 1-0:1.0: 1 port detected
[    3.192427] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    3.197926] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    3.205598] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[    3.212360] hub 2-0:1.0: USB hub found
[    3.216131] hub 2-0:1.0: 1 port detected
[    3.220241] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    3.225740] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[    3.233461] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f66d hci version 0x100 quirks 0x0000000002010810
[    3.242884] xhci-hcd xhci-hcd.1.auto: irq 56, io mem 0x03000000
[    3.249098] hub 3-0:1.0: USB hub found
[    3.252863] hub 3-0:1.0: 1 port detected
[    3.256915] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    3.262410] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[    3.270119] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    3.276884] hub 4-0:1.0: USB hub found
[    3.280642] hub 4-0:1.0: 1 port detected
[    3.284784] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    3.290281] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 5
[    3.298017] xhci-hcd xhci-hcd.2.auto: hcc params 0x0220f66d hci version 0x100 quirks 0x0000000002010810
[    3.307439] xhci-hcd xhci-hcd.2.auto: irq 57, io mem 0x03100000
[    3.313673] hub 5-0:1.0: USB hub found
[    3.317439] hub 5-0:1.0: 1 port detected
[    3.321496] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    3.326992] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 6
[    3.334661] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed
[    3.341428] hub 6-0:1.0: USB hub found
[    3.345198] hub 6-0:1.0: 1 port detected
[    3.349528] usbcore: registered new interface driver uas
[    3.354887] usbcore: registered new interface driver usb-storage
[    3.363368] ftm-alarm 29d0000.timer: registered as rtc1
[    3.369427] i2c /dev entries driver
[    3.375590] i2c i2c-0: Added multiplexed i2c bus 1
[    3.380480] i2c i2c-0: Added multiplexed i2c bus 2
[    3.385367] i2c i2c-0: Added multiplexed i2c bus 3
[    3.390253] i2c i2c-0: Added multiplexed i2c bus 4
[    3.395053] pca954x 0-0077: registered 4 multiplexed busses for I2C switch pca9546
[    3.403280] ptp_qoriq: device tree node missing required elements, try automatic configuration
[    3.411980] pps pps0: new PPS source ptp0
[    3.435544] qoriq-cpufreq qoriq-cpufreq: Freescale QorIQ CPU frequency scaling driver
[    3.444050] sdhci: Secure Digital Host Controller Interface driver
[    3.450248] sdhci: Copyright(c) Pierre Ossman
[    3.455084] Synopsys Designware Multimedia Card Interface Driver
[    3.462039] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.469351] ledtrig-cpu: registered to indicate activity on CPUs
[    3.476032] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    3.482913] usbcore: registered new interface driver usbhid
[    3.488491] usbhid: USB HID core driver
[    3.493534] Freescale USDPAA process driver
[    3.494015] mmc0: SDHCI controller on 1560000.esdhc [1560000.esdhc] using ADMA 64-bit
[    3.497726] fsl-usdpaa: no region found
[    3.497728] Freescale USDPAA process IRQ driver
[    3.501181] optee: probing for conduit method.
[    3.518388] optee: api uid mismatch
[    3.521885] optee: probe of firmware:optee failed with error -22
[    3.533010] NET: Registered protocol family 26
[    3.537490] u32 classifier
[    3.540192]     input device check on
[    3.543856]     Actions configured
[    3.547567] Initializing XFRM netlink socket
[    3.551904] NET: Registered protocol family 10
[    3.551954] mmc0: new high speed SDHC card at address b368
[    3.556805] Segment Routing with IPv6
[    3.562150] mmcblk0: mmc0:b368 LX32G 29.5 GiB 
[    3.565560] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.571014]  mmcblk0: p1 p2
[    3.576185] NET: Registered protocol family 17
[    3.583154] NET: Registered protocol family 15
[    3.587631] Bridge firewalling registered
[    3.591755] 8021q: 802.1Q VLAN Support v1.8
[    3.595956] lib80211: common routines for IEEE802.11 drivers
[    3.601673] 9pnet: Installing 9P2000 support
[    3.605968] tsn generic netlink module v1 init...
[    3.610720] Key type dns_resolver registered
[    3.615122] registered taskstats version 1
[    3.619234] Loading compiled-in X.509 certificates
[    3.624948] Btrfs loaded, crc32c=crc32c-generic
[    3.631572] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.640111] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.646689] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.648807] ALSA device list:
[    3.655317] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    3.658283]   No soundcards found.
[    3.675013] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    3.683188] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.689506] devtmpfs: mounted
[    3.694425] Freeing unused kernel memory: 6656K
[    3.700854] Run /sbin/init as init process
INIT: version 3.01 booting
Starting udev
[    3.966499] random: fast init done
[    4.000036] udevd[193]: starting version 3.2.10
[    4.005260] random: udevd: uninitialized urandom read (16 bytes read)
[    4.012379] random: udevd: uninitialized urandom read (16 bytes read)
[    4.018873] random: udevd: uninitialized urandom read (16 bytes read)
[    4.043644] udevd[195]: starting eudev-3.2.10
[    4.091126] cfg80211: failed to load regulatory.db
[    4.206054] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)

Poky (Yocto Project Reference Distro) 4.0.16 ls1046afrwy /dev/ttyS0

ls1046afrwy login: root
root@ls1046afrwy:~# # uname -a
Linux ls1046afrwy 5.10.52+ga11753a89ec6+p0 #1 SMP PREEMPT Wed Sep 8 10:41:11 UTC 2021 aarch64 GNU/Linux

root@ls1046afrwy:~# # ifconfig eth0 up 192.168.3.100
root@ls1046afrwy:~# [  130.117238] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

root@ls1046afrwy:~# 
root@ls1046afrwy:~# ping 192.168.3.1
PING 192.168.3.1 (192.168.3.1): 56 data bytes
64 bytes from 192.168.3.1: seq=0 ttl=64 time=2.207 ms
64 bytes from 192.168.3.1: seq=1 ttl=64 time=0.514 ms
^C
--- 192.168.3.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.514/1.360/2.207 ms

Create an Initial Custom Image Recipe

We begin to create our own Yocto custom image recipe below that we'll use to add packages, scripts, and various customizations.

First create a top-level pi-monitor directory:

$ mkdir -p /build/yocto/meta-pi-monitor; cd /build/yocto/meta-pi-monitor

Create conf/layer.conf and add the following to it:

BBPATH .= ":${LAYERDIR}"

BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
            ${LAYERDIR}/recipes-*/*/*.bbappend"

Create recipes-core/images/pi-monitor.bb and add the following to it:

SUMMARY = "Initial Base Image for PI Monitor"

IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}"
IMAGE_INSTALL += "inetutils dhcpcd"
IMAGE_INSTALL += "openssh openssl"
IMAGE_INSTALL += "iputils iptables"
IMAGE_INSTALL += "iproute2 iproute2-tc ethtool"
IMAGE_INSTALL += "util-linux nfs-utils net-tools"
IMAGE_INSTALL += "squid"


IMAGE_LINGUAS = " "

LICENSE = "MIT"

inherit core-image

IMAGE_ROOTFS_SIZE ?= "8192"
IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}"

Our last step before attempting to build our new image recipe is to add our new layer and several meta-openembedded layers to our conf/bblayers.conf file. BBLAYERS is now defined as shown below.

BBLAYERS ?= " \
  /build/yocto/poky/meta \
  /build/yocto/poky/meta-poky \
  /build/yocto/poky/meta-yocto-bsp \
  /build/yocto/meta-freescale \
  /build/yocto/meta-openembedded/meta-oe \ 
  /build/yocto/meta-openembedded/meta-python \ 
  /build/yocto/meta-openembedded/meta-networking \ 
  /build/yocto/meta-pi-monitor \
  "

Try building the new image.

$ bitbake pi-monitor
Loading cache: 100% |                                                                                                                                               | ETA:  --:--:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |##############################################################################################################################################| Time: 0:00:24
Parsing of 2575 .bb files complete (0 cached, 2575 parsed). 3991 targets, 227 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "2.0.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "ubuntu-18.04"
TARGET_SYS           = "x86_64-poky-linux"
MACHINE              = "qemux86-64"
DISTRO               = "poky"
DISTRO_VERSION       = "4.0.16"
TUNE_FEATURES        = "m64 core2"
TARGET_FPU           = ""
meta                 
meta-poky            
meta-yocto-bsp       = "kirkstone:54af8c5e80ebf63707ef4e51cc9d374f716da603"
meta-freescale       = "kirkstone:710e55d529c86d15a93c4421365ef62eb601a49b"
meta-oe              
meta-python          
meta-networking      = "kirkstone:730e44900a0a86265bad93a16b5a5ff344a07266"
meta-pi-monitor      = ":"

NOTE: Fetching uninative binary shim http://downloads.yoctoproject.org/releases/uninative/4.3/x86_64-nativesdk-libc-4.3.tar.xz;sha256sum=1c35f09a75c4096749bbe1e009df4e3968cde151424062cf4aa3ed89db22b030 (will check PREMIRRORS first)
Initialising tasks: 100% |###########################################################################################################################################| Time: 0:00:04
Sstate summary: Wanted 1524 Local 0 Mirrors 0 Missed 1524 Current 0 (0% match, 0% complete)
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 3878 tasks of which 0 didn't need to be rerun and all succeeded.


$ bitbake package-index

We can now use the same technique as described above to create an SD Card and boot our new image.

Shown below are the intial boot messages after INIT

INIT: version 3.01 booting
[    3.560912] random: fast init done
Starting udev
[    3.674704] udevd[195]: starting version 3.2.10
[    3.689220] random: udevd: uninitialized urandom read (16 bytes read)
[    3.696485] random: udevd: uninitialized urandom read (16 bytes read)
[    3.702957] random: udevd: uninitialized urandom read (16 bytes read)
[    3.727194] udevd[196]: starting eudev-3.2.10
[    3.771283] cfg80211: failed to load regulatory.db
[    3.921500] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
Fri Mar  9 12:34:56 UTC 2018
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
Configuring packages on first boot....
 (This may take several minutes. Please do not power off the machine.)
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
INIT: Entering runlevel: 5
Configuring network interfaces... done.
[    7.057783] random: crng init done
[    7.061183] random: 3 urandom warning(s) missed due to ratelimiting
Starting OpenBSD Secure Shell server: sshd
  generating ssh RSA host key...
  generating ssh ECDSA host key...
  generating ssh ED25519 host key...
done.
Starting rpcbind daemon...done.
starting statd: done
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
NFS daemon support not enabled in kernel
Starting syslogd/klogd: done
Starting internet superserver: xinetd.

Poky (Yocto Project Reference Distro) 4.0.16 ls1046afrwy ttyS0

ls1046afrwy login: root

# squid --version
Squid Cache: Version 4.15
...

# ethtool -h
ethtool version 5.16
Usage:
        ethtool [ FLAGS ]  DEVNAME	Display standard information about device
...

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

This is just a start, and we will be expanding this article and creating others to develop a full Linux system to interoperate with a Private Island ® networking node.

References

Didn't find an answer to your question? Post your issue below or in our new FORUM, and we'll try our best to help you find a solution.

And please note that we update our site daily with new content related to our open source approach to network security and system design. If you would like to be notified about these changes, then please join our mailing list.

Related articles on this site:

share
subscribe to mailing list:

Please help us improve this article by adding your comment or question:

your email address will be kept private
authenticate with a 3rd party for enhanced features, such as image upload
previous month
next month
Su
Mo
Tu
Wd
Th
Fr
Sa
loading