DESK-MX8M-L/pdf

From DAVE Developer's Wiki
< DESK-MX8M-L
Revision as of 13:28, 27 February 2024 by U0007 (talk | contribs)

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


History[edit | edit source]

DESK-MX8M-L History
Version Issue Date Notes Refers to

2.0.0

Feb 2023 DESK-MX8M-L-2.0.0 release ORCA
SBC ORCA
MITO 8M Mini

4.0.0

Aug 2023 DESK-MX8M-L-4.0.0 release ORCA
SBC ORCA
MITO 8M Mini
4.1.0 Apr 2024 DESK-MX8M-L-4.1.0 release ORCA-SOM-TOP-render.pngORCA
SBC8MU-1.0.0.pngSBC ORCA
Mito8M Mini-top.pngMITO 8M Mini


General Information[edit | edit source]

Contents

Release Notes[edit | edit source]

DAVE Embedded Systems adds to the latest Linux BSP from NXP the customization required to support the SOC platform. For this reason, most of the documentation provided by NXP remains valid for the DESK development kit.

However, some customization is required, in particular at bootloader and linux kernel levels.

The following table reports the DESK releases information.

DESK version
Release number 4.1.0
Release type Minor
Status Released
Release date Apr 2024
Release notes Ver 4.1.0
Product support ORCA, MITO 8M Mini
MVM (distro version) Ubuntu 20.04
U-Boot version 2022.04-desk-mx8-l-4.0.0
Linux version 5.15.71-desk-mx8-l-4.1.0
Drivers

Audio
Ethernet
HDMI
LVDS
MIPI
SD

UART
USB-C
USB1 OTG
USB2 OTG
PCIe
GPIOs
ConfigID

Manufacturer BSP version rel_imx_5.15.71_2.2.2
Graphic libraries Qt 6.3.2
Build System Yocto Kirkstone (4.0)

DESK-MX8M-L 4.1.0[edit | edit source]

Release notes:

  • MITO 8M Mini
    • add support for mipi2lvds and HDMI panel with capacitive touchscreen
    • add support for AzureWave CM276NF
    • add support for MULTILIB-LIB32
    • refactor of device-tree hierarchy, this feature break compatibility with desk-mx8m-l-4.0.0
  • introduced KAS support for building system
  • update to NXP lf-5.15.71-2.2.2

Known Limitations[edit | edit source]

The following table reports the known limitations of this DESK release:

Issue Description
USB-C 1 limitations Some USB 3.2 Gen1 peripherals connected to USB-C 1 are not working on ORCA SBC
Suspend mode Waken up from suspend mode is not properly working correctly when the DWS add-on module is inserted
zstd package missing on MVM zstd package is needed to build Yocto BSP on MVM, to install it run apt install zstd
Audio subsystem not working correctly Audio subsystem is not configured correctly and sound is not played with the right frequency

Downloadable binary images[edit | edit source]

All binary images for DESK-MX8M-L are hosted on DAVE Embedded System mirror server. There you can find a subdirectory for each version of this development kit.

U-Boot performs a container image providing a single file: flash.bin. The binary file must be stored into SD card using dd command.

A summary of images with a brief description can be found in the table below:

Image DESK version 4.1.0
Platform ORCA SBC SBCX MITO 8M Mini
Carrier Board ConfigID 1008 100A
LCD panel HDMI HDMI (through LVDS to HDMI converter)
Touchscreen capacitive capacitive
flash.bin
(SD or eMMC)
desk-mx8m-l-4.0.0_imx8mp_flash.bin desk-mx8m-l-4.0.0_imx8mm_flash.bin
Linux kernel Image
Device tree imx8mp-mito8mplus-cb1008.dtb imx8mm-mito8mmini-cb100a.dtb
root file system dave-image-devel-desk-mx8mp dave-image-devel-desk-mx8mm

Yocto images and built-in packages[edit | edit source]

Yocto target images for DESK-MX8M-L are hosted on DAVE Embedded System mirror server. There are more build targets which include a list of built and installed packages in the root file system image.

A summary of built images and their included packages can be found in the table below:

Image DESK version 4.1.0
root file system packages list
devel ORCA desk-image-devel-mx8mp.bz2 image-devel_installed-packages.txt
networking ORCA desk-image-networking-mx8mp.bz2 image-networking_installed-packages.txt
qt6 ORCA desk-image-qt6-mx8mp.bz2 image-qt6_installed-packages.txt
devel MITO 8M Mini desk-image-devel-mx8mm.bz2 image-devel_installed-packages.txt
networking MITO 8M Mini desk-image-networking-mx8mm.bz2 image-networking_installed-packages.txt
qt6 MITO 8M Mini desk-image-qt6-mx8mm.bz2 image-qt6_installed-packages.txt
multilib MITO 8M Mini desk-image-devel-mx8mm-multilib.bz2 image-devel_mutilib-installed-packages.txt

DESK-MX8M-L 4.0.0[edit | edit source]

200px-Emblem-important.svg.png

New MVM must be installed for using DESK-MX-L-4.0.0. The VM is available for download on DAVE's XELK Reserved Area for registered users.

Release notes:

  • Stable release based on NXP BSP 5.15.71

Known Limitations[edit | edit source]

The following table reports the known limitations of this DESK release:

Issue Description
USB-C 1 limitations Some USB 3.2 Gen1 peripherals connected to USB-C 1 are not working on ORCA SBC
Suspend mode Waken up from suspend mode is not properly working correctly when the DWS add-on module is inserted
mipi2lvds and lvds2hdmi not working on MITO 8M Mini Display connected to mipi2lvds and lvds2hdmi is not working on MITO 8M Mini Evaluation kit
zstd package missing on MVM zstd package is needed to build Yocto BSP on MVM, to install it run apt install zstd
Audio subsystem not working correctly Audio subsystem is not configured correctly and sound is not played with the right frequency

Downloadable binary images[edit | edit source]

All binary images for DESK-MX8M-L are hosted on DAVE Embedded System mirror server. There you can find a subdirectory for each version of this development kit.

U-Boot performs a container image providing a single file: flash.bin. The binary file must be stored into SD card using dd command.

A summary of images with a brief description can be found in the table below:

Image DESK version 4.0.0
Platform ORCA SBC SBCX MITO 8M Mini
Carrier Board ConfigID 1008 100A
LCD panel HDMI Not Avaible
Touchscreen capacitive Not Avaible
flash.bin
(SD or eMMC)
desk-mx8m-l-4.0.0_imx8mp_flash.bin desk-mx8m-l-4.0.0_imx8mm_flash.bin
Linux kernel Image
Device tree imx8mp-mito8mplus-cb1008.dtb imx8mm-mito8mmini-cb100a.dtb
root file system desk-image-qt6-desk-mx8mp dave-image-devel-desk-mx8mm

Yocto images and built-in packages[edit | edit source]

Yocto target images for DESK-MX8M-L are hosted on DAVE Embedded System mirror server. There are more build targets which include a list of built and installed packages in the root file system image.

A summary of built images and their included packages can be found in the table below:

Image DESK version 4.0.0
root file system packages list
devel ORCA desk-image-devel-mx8mp.bz2 image-devel_installed-packages.txt
networking ORCA desk-image-networking-mx8mp.bz2 image-networking_installed-packages.txt
qt6 ORCA desk-image-qt6-mx8mp.bz2 image-qt6_installed-packages.txt
devel MITO 8M Mini desk-image-devel-mx8mm.bz2 image-devel_installed-packages.txt
networking MITO 8M Mini desk-image-networking-mx8mm.bz2 image-networking_installed-packages.txt
qt6 MITO 8M Mini desk-image-qt6-mx8mm.bz2 image-qt6_installed-packages.txt

DESK-MX8M-L 2.0.0[edit | edit source]

200px-Emblem-important.svg.png

The DESK-MX8M-L-2.0.0 BSP and SDK can be installed starting from DESK-MX6-L 1.0.0 MVM. See the DVDK for release 2.0.0 installation how to for more information.
The DESK-MX6-L 1.0.0 MVM is available for download on DAVE's DESK-MX Reserved Area for registered users.

Release notes:

  • Stable release based on NXP BSP 5.4.70

Known Limitations[edit | edit source]

The following table reports the known limitations of this DESK release:

Issue Description
USB-C 1 not working in U-Boot USB-C 1 not working in ORCA SBC
USB1, USB2 not working in U-Boot USB1, USB2 not working in U-Boot for MITO 8M Mini

Downloadable binary images[edit | edit source]

All binary images for DESK-MX8M-L are hosted on DAVE Embedded System mirror server. There you can find a subdirectory for each version of this development kit.

U-boot performs a container image providing a single file: flash.bin. The binary file must be stored into SD card using dd command.

A summary of images with a brief description can be found into the table below:

Image DESK version 2.0.0
Platform ORCA SBC SBCX MITO 8M Mini
Carrier Board ConfigID 1008 100A
LCD panel HDMI Not Avaible
Touchscreen capacitive Not Avaible
bootscript boot.scr boot.scr
flash.bin
(SD or eMMC)
flash.bin flash.bin
Linux kernel Image
Device tree imx8mp-mito8mplus-cb1008.dtb imx8mm-mito8mmini.dtb
root file system desk-image-qt5-desk-mx8mp dave-image-devel-desk-mx8mm

DESK-MX8M-L 2.0.0-rc2[edit | edit source]

200px-Emblem-important.svg.png

The DESK-MX8M-L-2.0.0 BSP and SDK can be installed starting from DESK-MX6-L 1.0.0 MVM. See the DVDK for release 2.0.0 installation how to for more information.
The DESK-MX6-L 1.0.0 MVM is available for download on DAVE's DESK-MX Reserved Area for registered users.

Release notes:

  • First release based on NXP BSP 5.4.70

Known Limitations[edit | edit source]

The following table reports the known limitations of this DESK release:

Issue Description
HDMI not working HDMI is not working on ORCA SBC. Device tree fixing is required

Release types[edit | edit source]

DESK release type can be:

  • Major, when substantial changes are applied to the BSP (eg: major kernel version upgrades) or to the development kit (eg: new features, build system updates, ..). This usually means that a new DVDK is created for the DESK release
  • Maintenance, when minor updates and bug fixes are introduced. This usually means that the DVDK remains the same provided with the previous major version, and only an update of the source tree repositories (and the tftp binaries) is required

As an example, DESK 2.1.0 is a maintenance release, so it provides the DVDK released with the 2.0.0 major release; customers can easily upgrade to the 1.1.0 release by updating the software components as described in Synchronizing git repositories.

Supported platforms[edit | edit source]

The following table reports the supported platforms in this DESK release:

Platform Description
SBC ORCA Single Board Computer using ORCA SOM as Evaluation Kit
SBC AXEL Single Board Computer using MITO 8M Mini SOM as Evaluation Kit


Virtual Machine[edit | edit source]

DAVE' standard DVDK Virtual Machine contains all the required software and documentation to start developing Linux applications on the ORCA and MITO 8M Mini platforms. In particular, DESK-MX8M-L provides a virtual machine, called DVDK, with the following features:

  • VirtualBox virtual machine (.OVA archive)
  • based on Lubuntu 20.04 LTS (64-bit version)
  • pre-installed VirtualBox Guest Additions
  • LXDE desktop environment
  • boot disk with the distro and pre-configured basic Linux services:
    • TFTP: with base directory /tftpboot/desk-mx8m-l/
    • NFS: configured through the /etc/exports file
  • secondary disk containing source code and tools:
    • bootloader (U-Boot) source tree cloned from DAVE Embedded Systems public git repository
    • Linux kernel source tree cloned from DAVE Embedded Systems public git repository
    • external pre-built toolchain
    • Yocto BSP for ORCA SOM and MITO 8M Mini SOM
  • pre-installed Yocto-based root file systems with setup scripts, makefiles, example applications, ...
  • administrator account (dvdk) with autologin. Please note that the user account credentials are provided with the development kit (you can find them in the README file contained in the sw/dvdk folder of the kit distribution)
    • user: dvdk
    • password: dvdk

Please note that U-Boot and kernel source trees are derived from the official trees released by NXP/Freescale; these trees have been customized to add support for the ORCA and MITO 8M Mini SOMs.

Host setup[edit | edit source]

As stated previously, ORCA SOM host tools are based on a Managed Virtual Machine. As indicated here, microSD card delivered along with ORCA Evaluation Kit includes basic version of MVM that is the default option.

Please follows the README file on the SD card to extract the *.ova archive and to install the MVM.

It is also worth remembering that access to git repositories is required to download target source code. To enable it, please refer to this page.

MVM can be downloaded here. For accessing DESK Reserved area please contact our helpdesk support channel

To install it, please refer to this page.

Installing the meta-toolchain SDK[edit | edit source]

meta toolchain is preinstalled on DESK-MX8M-L-4.0.0 and it is used for building U-Boot and kernel sources. It can be found in the following path.

dvdk@vagrant:~/desk-mx-l$ ls -la /opt/yocto/sdk/desk-mx8m-l/desk-mx8m-l-4.0.0/
total 40
drwxr-xr-x 3 root root  4096 Jul 24 14:12 .
drwxr-xr-x 3 root root  4096 Jul 24 14:11 ..
-rw-r--r-- 1 root root  4253 Jul 24 14:11 environment-setup-armv8a-poky-linux
-rw-r--r-- 1 root root 14027 Jul 24 14:11 site-config-armv8a-poky-linux
drwxr-xr-x 4 root root  4096 Jul 24 14:11 sysroots
-rw-r--r-- 1 root root   141 Jul 24 14:11 version-armv8a-poky-linux
dvdk@vagrant:~/desk-mx-l$

The installation script can be found in /home/dvdk/desk-mx-l/desk-mx8m-l-4.0.0_meta-toolchain.sh. In case reinstallation would be need, execute following commands.

dvdk@vagrant:~$ cd desk-mx-l/
dvdk@vagrant:~/desk-mx-l$ ./desk-mx8m-l-4.0.0_meta-toolchain.sh -d /opt/yocto/sdk/desk-mx8m-l/desk-mx8m-l-4.0.0 -y
NXP i.MX Release Distro SDK installer version 5.15-kirkstone
============================================================
You are about to install the SDK to "/opt/yocto/sdk/desk-mx8m-l/desk-mx8m-l-4.0.0". Proceed [Y/n]? Y
Extracting SDK..........................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
 $ . /opt/yocto/sdk/desk-mx8m-l/desk-mx8m-l-4.0.0-rc2/environment-setup-armv8a-poky-linux
dvdk@vagrant:~/desk-mx-l$

Installing the application SDK[edit | edit source]

application SDK is preinstalled on DESK-MX8M-L-4.0.0 and it is used for building userspace application. The SDK contains the headers and libraries for building the Qt6 application. It can be found in the following path.

dvdk@vagrant:~$ ls -la ~/desk-mx-l/sdk/desk-mx8m-l-4.0.0/
total 40
drwxr-xr-x 3 dvdk dvdk  4096 Jul 24 14:27 .
drwxr-xr-x 3 dvdk dvdk  4096 Jul 24 14:19 ..
-rw-r--r-- 1 dvdk dvdk  4231 Jul 24 14:26 environment-setup-armv8a-poky-linux
-rw-r--r-- 1 dvdk dvdk 14027 Jul 24 14:26 site-config-armv8a-poky-linux
drwxr-xr-x 4 dvdk dvdk  4096 Jul 24 14:19 sysroots
-rw-r--r-- 1 dvdk dvdk   141 Jul 24 14:26 version-armv8a-poky-linux
dvdk@vagrant:~$

The installation script can be found in /home/dvdk/desk-mx-l/desk-mx8m-l-4.0.0_sdk.sh. In case reinstallation would be need, execute following commands.

dvdk@vagrant:~$ cd desk-mx-l/
dvdk@vagrant:~/desk-mx-l$ ./desk-mx8m-l-4.0.0_sdk.sh -d /home/dvdk/desk-mx-l/sdk/desk-mx8m-l-4.0.0 -y
NXP i.MX Release Distro SDK installer version 5.15-kirkstone
============================================================
You are about to install the SDK to "/home/dvdk/desk-mx-l/sdk/desk-mx8m-l-4.0.0". Proceed [Y/n]? Y
Extracting SDK............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
 $ . /home/dvdk/desk-mx-l/sdk/desk-mx8m-l-4.0.0/environment-setup-armv8a-poky-linux
dvdk@vagrant:~/desk-mx-l$

Using the SDK[edit | edit source]

Anytime it is required to compile u-boot or kernel sources, it is enough to enabling it using the script:

 source /home/dvdk/desk-mx-l/desk-mx8m-l-4.0.0_env.sh

MITO 8M Mini SDK[edit | edit source]

MITO 8M Mini has the same 4-cores Cortex-A53 architecture: even if Yocto builds two SDK, it is possible to install and use the previously described/used SDK file for both SOM modules/architectures.



ConfigID[edit | edit source]

This article describes how the ConfigID is implemented in the products supported by the DESK-MX8M-L Linux Kit.

Moreover, a system is composed of the combination of a SOM and a carrier board. In this case, two ConfigIDs are used to identify the actual board configuration like it was a SOM+carrier board system.

For the sake of simplicity, the first ConfigID is denoted as SOM ConfigID, while the second one is denoted as CB ConfigID:

MITO 8M Mini[edit | edit source]

As MITO 8M Mini is a system-on-module (SOM), the typical mechanism described here is used.

...
SOM ConfigID#: 00000002
SOM UniqueID#: e317318f:1b1229d4
CB ConfigID#: 0000100a
CB UniqueID#: fb000030:4d8eea2d
Board: MX8MM-Mito8MMini on SBCX
...

ORCA[edit | edit source]

As ORCA is a system-on-module (SOM), the typical mechanism described here is used.

...
SOM ConfigID#: 00000005
SOM UniqueID#: 0002aaff:8aefcecd
CB ConfigID#: 00001008
CB UniqueID#: da000011:0dd2e72d
Board: MX8MP-Mito8MPlus on SBC ORCA
...

Generally speaking[edit | edit source]

  • SOM ConfigID is used to identify the configuration of the basic features of the SOM
  • CB ConfigID is used to identify the peripherals and the I/O interfaces.


200px-Emblem-important.svg.png

NXP silicon manufacturer guarantees that processors UIDs (a.k.a. SOM UniqueID# on DESK-MX8M-L) to be unique over the whole MX8M family



Booting from NFS[edit | edit source]

This configuration is very helpful during the software development (both for kernel and applications). The kernel image is downloaded via TFTP while the root file system is remotely mounted via NFS from the host. It is assumed that the development host:

  • is connected with the target host board through an Ethernet LAN
  • exports the directory containing the root file system for the target through the NFS server
  • runs a TFTP server.
  • has a proper subnet IP address

net_nfs configuration[edit | edit source]

DESK-MX8M-L Virtual Machine is properly configured for the TFTP and NFS debug.

In any case, some variables has to be configured on the target and the VM itself has to be configured for respect to the network environment.

Host (Virtual Machine) configuration[edit | edit source]

The DESK-MX8M-L Virtual Machine has the tftp and nfs services already running. Optionally, their configuration has to be changed according to the network configuration where the target is connected to.

Check and properly configure the items describe in VirtualBox Network Configuration

Target configuration[edit | edit source]

The IP address for server and target should be configured: an example (for a network subnet 192.168.0.x)

u-boot=> setenv serverip 192.168.10.100
u-boot=> setenv ipaddr 192.168.10.56
u-boot=> setenv gatewayip 192.168.10.254
u-boot=> setenv netmask 255.255.255.0
u-boot=> setenv netdev eth0
  • serverip is the IP address of the host machine running the tftp/nfs server
  • ipaddr is the IP address of the target
  • gatewayip is the gateway address of the target
  • netmask is the netmask address of the target
  • netdev is the name of ethernet interface of the target

For using the DVDK Virtual Machine, a static IP address configuration has been selected, to the U-Boot variable ip_dyn has to be set to no:

u-boot=> setenv ip_dyn no

The kernel and device tree files have to be selected

u-boot=> setenv bootfile /tftpboot/desk-mx8m-l/Image

ORCA has its dtb file imx8mp-mito8mplus-cb1001.dtb

u-boot=> setenv fdt_file /tftpboot/desk-mx8m-l/imx8mp-mito8mplus-cb1008.dtb

while MITO 8M Mini has its own dtb file imx8mm-mito8mmini.dtb

u-boot=> setenv fdt_file /tftpboot/desk-mx8m-l/imx8mm-mito8mmini.dtb

finally, the root file system directory on the Virtual Machine should be configured to let the kernel find the INIT

u-boot=> setenv rootpath /home/dvdk/desk-mx-l/rfs/desk-mx8m-l-4.0.0/mx8mp/

To run this configuration just issue the net_nfs command which firstly downloads the kernel and device tree using the tftp protocol

u-boot=> setenv net_nfs 'run loadk loadfdt nfsargs addip addcons addmisc; if run configid_fixupfdt; then sleep 3; booti ${loadaddr} - ${fdt_addr}; fi'

Here below the complete bootlog from nfs:

u-boot=> run net_nfs 
Using ethernet@30be0000 device
TFTP from server 192.168.10.100; our IP address is 192.168.10.56
Filename '/tftpboot/desk-mx8m-l/Image'.
Load address: 0x40480000
Loading: *#################################################################
	 #################################################################
	 ##############
	 3 MiB/s
done
Bytes transferred = 31351296 (1de6200 hex)
Using ethernet@30be0000 device
TFTP from server 192.168.10.100; our IP address is 192.168.10.56
Filename '/tftpboot/desk-mx8m-l/imx8mp-mito8mplus-cb1008.dtb'.
Load address: 0x43000000
Loading: *############
	 1.2 MiB/s
done
Bytes transferred = 61299 (ef73 hex)
Moving Image from 0x40480000 to 0x40600000, end=42480000
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 0000000043000000, end 0000000043011f72

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.71-desk-mx8m-l-4.0.0 (jenkins@focalbakery) (aarch64-poky-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Thu Jun 29 20:50:11 CEST 2023
[    0.000000] Machine model: i.MX8MPlus Mito8MPlus on SBC Orca - adapter LVDS HDMI
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000c4000000, size 960 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x0000000094300000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@94300000, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x00000001bfffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x1bf449800-0x1bf44bfff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000001bfffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000557fffff]
[    0.000000]   node   0: [mem 0x0000000055800000-0x0000000055ffffff]
[    0.000000]   node   0: [mem 0x0000000058000000-0x00000000923fffff]
[    0.000000]   node   0: [mem 0x0000000092400000-0x00000000a43fffff]
[    0.000000]   node   0: [mem 0x00000000a4400000-0x00000001bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000001bfffffff]
[    0.000000] On node 0, zone DMA: 8192 pages in unavailable ranges
[    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: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 20 pages/cpu s41368 r8192 d32360 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1540096
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.10.100:/home/dvdk/desk-mx-l/rfs/desk-mx8m-l-4.0.0/mx8mp/,v3,tcp ip=192.168.10.56:192.168.10.100:192.168.10.254:255.255.255.0:desk-mx:eth0:off panic=1 console=ttymxc1,115200,115200 mtdparts=gpmi-nand:2M(nand-SPL),6M(nand-uboot),1M(nand-env1),1M(nand-env2),1M(nand-fdt),1M(nand-spare),8M(nand-kernel),4M(nand-splash),-(nand-ubi);
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000c0000000-0x00000000c4000000] (64MB)
[    0.000000] Memory: 4752040K/6258688K available (18688K kernel code, 1560K rwdata, 7244K rodata, 3008K init, 543K bss, 523608K reserved, 983040K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 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] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 160 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[    0.000000] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[    0.000455] Console: colour dummy device 80x25
[    0.000521] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)
[    0.000534] pid_max: default: 32768 minimum: 301
[    0.000590] LSM: Security Framework initializing
[    0.000687] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000714] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.002059] rcu: Hierarchical SRCU implementation.
[    0.003318] EFI services will not be available.
[    0.003517] smp: Bringing up secondary CPUs ...
[    0.003945] Detected VIPT I-cache on CPU1
[    0.003972] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[    0.004006] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.004486] Detected VIPT I-cache on CPU2
[    0.004508] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[    0.004527] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.004952] Detected VIPT I-cache on CPU3
[    0.004970] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[    0.004990] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.005051] smp: Brought up 1 node, 4 CPUs
[    0.005079] SMP: Total of 4 processors activated.
[    0.005087] CPU features: detected: 32-bit EL0 Support
[    0.005091] CPU features: detected: 32-bit EL1 Support
[    0.005099] CPU features: detected: CRC32 instructions
[    0.013007] CPU: All CPU(s) started at EL2
[    0.013041] alternatives: patching kernel code
[    0.014740] devtmpfs: initialized
[    0.023103] KASLR disabled due to lack of seed
[    0.023242] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.023258] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.051091] pinctrl core: initialized pinctrl subsystem
[    0.051584] DMI not present or invalid.
[    0.052185] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.057111] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.057588] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.058153] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.058245] audit: initializing netlink subsys (disabled)
[    0.058443] audit: type=2000 audit(0.056:1): state=initialized audit_enabled=0 res=1
[    0.059004] thermal_sys: Registered thermal governor 'step_wise'
[    0.059009] thermal_sys: Registered thermal governor 'power_allocator'
[    0.059287] cpuidle: using governor menu
[    0.059500] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.059583] ASID allocator initialised with 65536 entries
[    0.060670] Serial: AMBA PL011 UART driver
[    0.060728] imx mu driver is registered.
[    0.060748] imx rpmsg driver is registered.
[    0.071830] imx8mp-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver
[    0.081199] platform 32c00000.bus:ldb@32ec005c: Fixing up cyclic dependency with 32e90000.lcd-controller
[    0.087724] platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
[    0.110049] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.110066] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.110075] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.110084] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.111215] cryptd: max_cpu_qlen set to 1000
[    0.114238] ACPI: Interpreter disabled.
[    0.114999] iommu: Default domain type: Translated 
[    0.115008] iommu: DMA domain TLB invalidation policy: strict mode 
[    0.115141] vgaarb: loaded
[    0.115409] SCSI subsystem initialized
[    0.115707] usbcore: registered new interface driver usbfs
[    0.115744] usbcore: registered new interface driver hub
[    0.115774] usbcore: registered new device driver usb
[    0.116899] mc: Linux media interface: v0.10
[    0.116924] videodev: Linux video capture interface: v2.00
[    0.117002] pps_core: LinuxPPS API ver. 1 registered
[    0.117008] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.117024] PTP clock support registered
[    0.117201] EDAC MC: Ver: 3.0.0
[    0.118325] FPGA manager framework
[    0.118410] Advanced Linux Sound Architecture Driver Initialized.
[    0.118894] Bluetooth: Core ver 2.22
[    0.118919] NET: Registered PF_BLUETOOTH protocol family
[    0.118927] Bluetooth: HCI device and connection manager initialized
[    0.118936] Bluetooth: HCI socket layer initialized
[    0.118945] Bluetooth: L2CAP socket layer initialized
[    0.118959] Bluetooth: SCO socket layer initialized
[    0.119745] clocksource: Switched to clocksource arch_sys_counter
[    0.119882] VFS: Disk quotas dquot_6.6.0
[    0.119931] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.120075] pnp: PnP ACPI: disabled
[    0.125933] NET: Registered PF_INET protocol family
[    0.126175] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.129066] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.129174] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.129193] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.129602] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
[    0.130467] TCP: Hash tables configured (established 65536 bind 65536)
[    0.130570] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.130725] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.130987] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.131404] RPC: Registered named UNIX socket transport module.
[    0.131411] RPC: Registered udp transport module.
[    0.131415] RPC: Registered tcp transport module.
[    0.131422] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.132141] PCI: CLS 0 bytes, default 64
[    0.132783] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.133572] kvm [1]: IPA Size Limit: 40 bits
[    0.135214] kvm [1]: GICv3: no GICV resource entry
[    0.135221] kvm [1]: disabling GICv2 emulation
[    0.135235] kvm [1]: GIC system register CPU interface enabled
[    0.135324] kvm [1]: vgic interrupt IRQ9
[    0.135434] kvm [1]: Hyp mode initialized successfully
[    0.138714] Initialise system trusted keyrings
[    0.138862] workingset: timestamp_bits=42 max_order=21 bucket_order=0
[    0.144847] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.145412] NFS: Registering the id_resolver key type
[    0.145456] Key type id_resolver registered
[    0.145462] Key type id_legacy registered
[    0.145534] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.145541] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.145563] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.145881] 9p: Installing v9fs 9p2000 file system support
[    0.181913] Key type asymmetric registered
[    0.181922] Asymmetric key parser 'x509' registered
[    0.181970] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.181978] io scheduler mq-deadline registered
[    0.181986] io scheduler kyber registered
[    0.189113] EINJ: ACPI disabled.
[    0.199773] imx-sdma 30bd0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[    0.199794] imx-sdma 30bd0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin
[    0.201537] mxs-dma 33000000.dma-apbh: initialized
[    0.203215] SoC: i.MX8MP revision 1.1
[    0.203857] Bus freq driver module loaded
[    0.210209] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.212539] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 31, base_baud = 5000000) is a IMX
[    0.213022] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 32, base_baud = 5000000) is a IMX
[    0.213423] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 33, base_baud = 1500000) is a IMX
[    1.335825] printk: console [ttymxc1] enabled
[    1.355599] loop: module loaded
[    1.360173] megasas: 07.717.02.00-rc1
[    1.365502] imx ahci driver is registered.
[    1.371351] SPI driver spidev has no spi_device_id for spidev
[    1.377113] SPI driver spidev has no spi_device_id for dave,sbcx-exp
[    1.387662] tun: Universal TUN/TAP device driver, 1.6
[    1.392902] CAN device driver interface
[    1.398172] thunder_xcv, ver 1.0
[    1.401442] thunder_bgx, ver 1.0
[    1.404710] nicpf, ver 1.0
[    1.409904] hclge is initializing
[    1.413242] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    1.420471] hns3: Copyright (c) 2017 Huawei Corporation.
[    1.425836] e1000: Intel(R) PRO/1000 Network Driver
[    1.430721] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.436502] e1000e: Intel(R) PRO/1000 Network Driver
[    1.441471] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.447436] igb: Intel(R) Gigabit Ethernet Network Driver
[    1.452841] igb: Copyright (c) 2007-2014 Intel Corporation.
[    1.458445] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.464723] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.470843] sky2: driver version 1.30
[    1.475206] usbcore: registered new interface driver r8152
[    1.480945] VFIO - User Level meta-driver version: 0.3
[    1.491762] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.498360] ehci-pci: EHCI PCI platform driver
[    1.502853] ehci-platform: EHCI generic platform driver
[    1.508326] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.514537] ohci-pci: OHCI PCI platform driver
[    1.519026] ohci-platform: OHCI generic platform driver
[    1.525175] usbcore: registered new interface driver uas
[    1.530540] usbcore: registered new interface driver usb-storage
[    1.536619] usbcore: registered new interface driver usbserial_generic
[    1.543172] usbserial: USB Serial support registered for generic
[    1.549206] usbcore: registered new interface driver ftdi_sio
[    1.554976] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.562323] usbcore: registered new interface driver usb_serial_simple
[    1.568875] usbserial: USB Serial support registered for carelink
[    1.574988] usbserial: USB Serial support registered for zio
[    1.580671] usbserial: USB Serial support registered for funsoft
[    1.586693] usbserial: USB Serial support registered for flashloader
[    1.593068] usbserial: USB Serial support registered for google
[    1.599007] usbserial: USB Serial support registered for libtransistor
[    1.605556] usbserial: USB Serial support registered for vivopay
[    1.611583] usbserial: USB Serial support registered for moto_modem
[    1.617875] usbserial: USB Serial support registered for motorola_tetra
[    1.624516] usbserial: USB Serial support registered for nokia
[    1.630369] usbserial: USB Serial support registered for novatel_gps
[    1.636744] usbserial: USB Serial support registered for hp4x
[    1.642517] usbserial: USB Serial support registered for suunto
[    1.648455] usbserial: USB Serial support registered for siemens_mpi
[    1.654841] usbcore: registered new interface driver usb_ehset_test
[    1.665735] snvs_rtc 30370000.snvs:snvs-rtc-lp: registered as rtc0
[    1.671962] snvs_rtc 30370000.snvs:snvs-rtc-lp: setting system clock to 2023-07-26T09:52:50 UTC (1690365170)
[    1.681948] i2c_dev: i2c /dev entries driver
[    1.688387] Driver for 1-wire Dallas network protocol.
[    1.696911] Bluetooth: HCI UART driver ver 2.3
[    1.701383] Bluetooth: HCI UART protocol H4 registered
[    1.706529] Bluetooth: HCI UART protocol BCSP registered
[    1.711865] Bluetooth: HCI UART protocol LL registered
[    1.717011] Bluetooth: HCI UART protocol ATH3K registered
[    1.722439] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    1.728818] Bluetooth: HCI UART protocol Broadcom registered
[    1.734500] Bluetooth: HCI UART protocol QCA registered
[    1.739968] EDAC MC: ECC not enabled
[    1.745045] sdhci: Secure Digital Host Controller Interface driver
[    1.751246] sdhci: Copyright(c) Pierre Ossman
[    1.756455] Synopsys Designware Multimedia Card Interface Driver
[    1.763293] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.771334] ledtrig-cpu: registered to indicate activity on CPUs
[    1.778302] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.785251] usbcore: registered new interface driver usbhid
[    1.790837] usbhid: USB HID core driver
[    1.800286]  cs_system_cfg: CoreSight Configuration manager initialised
[    1.801888] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    1.808612] optee: probing for conduit method.
[    1.818449] optee: revision 3.19 (00919403)
[    1.819278] optee: dynamic shared memory is enabled
[    1.828702] optee: initialized driver
[    1.835068] Galcore version 6.4.3.p4.398061
[    1.897395] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[    1.905453] mmcblk2: mmc2:0001 DG4008 7.28 GiB 
[    1.912620]  mmcblk2: p1 p2
[    1.917199] mmcblk2boot0: mmc2:0001 DG4008 4.00 MiB 
[    1.923946] mmcblk2boot1: mmc2:0001 DG4008 4.00 MiB 
[    1.930831] mmcblk2rpmb: mmc2:0001 DG4008 4.00 MiB, chardev (234:0)
[    1.952496] [drm] Initialized vivante 1.0.0 20170808 for 40000000.mix_gpu_ml on minor 0
[    1.961940] hantrodec 0 : module inserted. Major = 510
[    1.967545] hantrodec 1 : module inserted. Major = 510
[    1.974110] hantroenc: HW at base <0000000038320000> with ID <0x80006200>
[    1.981044] hx280enc: module inserted. Major <509>
[    1.989485] NET: Registered PF_LLC protocol family
[    1.994787] NET: Registered PF_INET6 protocol family
[    2.002043] Segment Routing with IPv6
[    2.005755] In-situ OAM (IOAM) with IPv6
[    2.009725] NET: Registered PF_PACKET protocol family
[    2.014810] can: controller area network core
[    2.019207] NET: Registered PF_CAN protocol family
[    2.024019] can: raw protocol
[    2.026989] can: broadcast manager protocol
[    2.031190] can: netlink gateway - max_hops=1
[    2.036279] Bluetooth: RFCOMM TTY layer initialized
[    2.041192] Bluetooth: RFCOMM socket layer initialized
[    2.046362] Bluetooth: RFCOMM ver 1.11
[    2.050128] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.055446] Bluetooth: BNEP filters: protocol multicast
[    2.060681] Bluetooth: BNEP socket layer initialized
[    2.065651] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.071581] Bluetooth: HIDP socket layer initialized
[    2.077592] 8021q: 802.1Q VLAN Support v1.8
[    2.081806] lib80211: common routines for IEEE802.11 drivers
[    2.087923] 9pnet: Installing 9P2000 support
[    2.092224] tsn generic netlink module v1 init...
[    2.097031] Key type dns_resolver registered
[    2.102197] Loading compiled-in X.509 certificates
[    2.131413] regulator-se050-en GPIO handle specifies active low - ignored
[    2.140742] i2c i2c-0: IMX I2C adapter registered
[    2.146393] i2c 1-003c: Fixing up cyclic dependency with 32e40000.csi
[    2.153133] ov5640 1-003c: supply DOVDD not found, using dummy regulator
[    2.159926] ov5640 1-003c: supply AVDD not found, using dummy regulator
[    2.166603] ov5640 1-003c: supply DVDD not found, using dummy regulator
[    2.175534] i2c i2c-1: IMX I2C adapter registered
[    2.181406] i2c 2-003c: Fixing up cyclic dependency with 32e50000.csi
[    2.188157] ov5640 2-003c: supply DOVDD not found, using dummy regulator
[    2.194960] ov5640 2-003c: supply AVDD not found, using dummy regulator
[    2.201622] ov5640 2-003c: supply DVDD not found, using dummy regulator
[    2.214438] i2c i2c-2: IMX I2C adapter registered
[    2.220302] i2c 5-004c: Fixing up cyclic dependency with 32c00000.bus:ldb@32ec005c
[    2.313322] i2c i2c-5: IMX I2C adapter registered
[    2.318968] imx8mq-usb-phy 381f0040.usb-phy: supply vbus not found, using dummy regulator
[    2.327483] imx8mq-usb-phy 382f0040.usb-phy: supply vbus not found, using dummy regulator
[    2.338004] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    2.346340] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[    2.352545] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.
[    2.359804] pps pps0: new PPS source ptp0
[    2.371856] fec 30be0000.ethernet eth0: registered PHC device 0
[    2.378677] imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
[    2.385090] imx-dwmac 30bf0000.ethernet: User ID: 0x10, Synopsys ID: 0x51
[    2.388131] imx6q-pcie 33800000.pcie: PCIe PLL is locked.
[    2.391909] imx-dwmac 30bf0000.ethernet: 	DWMAC4/5
[    2.397342] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    2.402093] imx-dwmac 30bf0000.ethernet: DMA HW capability register supported
[    2.407579] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.414715] imx-dwmac 30bf0000.ethernet: RX Checksum Offload Engine supported
[    2.422292] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    2.429422] imx-dwmac 30bf0000.ethernet: TX Checksum insertion supported
[    2.436648] imx6q-pcie 33800000.pcie:   No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[    2.443346] imx-dwmac 30bf0000.ethernet: Wake-Up On Lan supported
[    2.452673] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    2.458796] imx-dwmac 30bf0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    2.466932] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    2.474585] imx-dwmac 30bf0000.ethernet: Enabled L3L4 Flow TC (entries=8)
[    2.482838] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    2.489554] imx-dwmac 30bf0000.ethernet: Enabled RFS Flow TC (entries=8)
[    2.495037] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.501779] imx-dwmac 30bf0000.ethernet: Enabling HW TC (entries=256, max_off=256)
[    2.516888] imx-dwmac 30bf0000.ethernet: Using 34 bits DMA width
[    2.526985] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    2.532522] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    2.540526] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe6d hci version 0x110 quirks 0x0000002001010010
[    2.549969] xhci-hcd xhci-hcd.1.auto: irq 77, io mem 0x38100000
[    2.556002] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    2.561505] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    2.569181] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    2.576661] hub 1-0:1.0: USB hub found
[    2.580453] hub 1-0:1.0: 1 port detected
[    2.584669] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.593789] hub 2-0:1.0: USB hub found
[    2.597573] hub 2-0:1.0: 1 port detected
[    2.602487] dwc3 38200000.usb: Configuration mismatch. dr_mode forced to gadget
[    2.609675] imx6q-pcie 33800000.pcie: Link up
[    2.611711] gpio-42 (onewire): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[    2.624836] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 7 mkt segment 2 supported-hw 0x80 0x4
[    2.637462] mxc-mipi-csi2-sam 32e40000.csi: supply mipi-phy not found, using dummy regulator
[    2.637622] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    2.646280] : mipi_csis_imx8mp_phy_reset, No remote pad found!
[    2.656888] mxc-mipi-csi2-sam 32e40000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 500000000
[    2.660539] w1_master_driver w1_bus_master1: Attaching one wire slave 2d.000035c49266 crc 4e
[    2.667797] mxc-mipi-csi2-sam 32e50000.csi: supply mipi-phy not found, using dummy regulator
[    2.683966] : mipi_csis_imx8mp_phy_reset, No remote pad found!
[    2.684709] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    2.689865] mxc-mipi-csi2-sam 32e50000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 266000000
[    2.708680] isi-capture 32e00000.isi:cap_device: deferring 32e00000.isi:cap_device device registration
[    2.712071] imx6q-pcie 33800000.pcie: Link up
[    2.718948] mxc-isi 32e00000.isi: mxc_isi.0 registered successfully
[    2.722386] imx6q-pcie 33800000.pcie: Link up, Gen2
[    2.730395] isi-capture 32e02000.isi:cap_device: deferring 32e02000.isi:cap_device device registration
[    2.742977] mxc-isi 32e02000.isi: mxc_isi.1 registered successfully
[    2.745487] mmc1: host does not support reading read-only switch, assuming write-enable
[    2.752485] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[    2.761488] mmc1: new high speed SDHC card at address e624
[    2.769385] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.773242] mmcblk1: mmc1:e624 SA32G 29.7 GiB 
[    2.782094] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[    2.787214]  mmcblk1: p1 p2
[    2.792118] imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops)
[    2.803054] imx-drm display-subsystem: bound 32c00000.bus:ldb@32ec005c (ops imx8mp_ldb_ops)
[    2.811456] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
[    2.819374] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 1
[    2.834708] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[    2.840066] imx6q-pcie 33800000.pcie: Link up
[    2.846229] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[    2.847760] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    2.852612] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.864635] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.870830] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff]
[    2.877734] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    2.881480] mmc0: queuing unknown CIS tuple 0x01 [d9 01 ff] (3 bytes)
[    2.883755] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    2.896478] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    2.903230] pci 0000:00:00.0: supports D1
[    2.904523] mmc0: queuing unknown CIS tuple 0x1a [01 01 00 02 07] (5 bytes)
[    2.907253] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    2.920758] mmc0: queuing unknown CIS tuple 0x1b [c1 41 30 30 ff ff 32 00] (8 bytes)
[    2.923524] pci 0000:01:00.0: [1912:0015] type 00 class 0x0c0330
[    2.930255] mmc0: queuing unknown CIS tuple 0x14 [] (0 bytes)
[    2.934603] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    2.947439] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.966965] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff]
[    2.973800] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff]
[    2.980704] mmc0: new high speed SDIO card at address 0001
[    2.983832] pci 0000:00:00.0: BAR 6: assigned [mem 0x18200000-0x1820ffff pref]
[    2.993743] pci 0000:01:00.0: BAR 0: assigned [mem 0x18100000-0x18101fff 64bit]
[    3.001109] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.006350] pci 0000:00:00.0:   bridge window [mem 0x18100000-0x181fffff]
[    3.013507] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
[    3.019498] pci 0000:01:00.0: enabling device (0000 -> 0002)
[    3.056014] hub 1-1:1.0: USB hub found
[    3.060012] hub 1-1:1.0: 4 ports detected
[    3.182267] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[    3.328595] hub 2-1:1.0: USB hub found
[    3.333068] hub 2-1:1.0: 4 ports detected
[    3.511287] Console: switching to colour frame buffer device 160x45
[    3.533422] imx-drm display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device
[    3.545381] isi-m2m 32e00000.isi:m2m_device: Register m2m success for ISI.0
[    3.558258] Generic PHY 30be0000.ethernet-1:08: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:08, irq=POLL)
[    3.712379] Hot alarm is canceled. GPU3D clock will return to 64/64
[    7.649184] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[    7.660396] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.680063] IP-Config: Complete:
[    7.683290]      device=eth0, hwaddr=da:2c:c3:a1:70:74, ipaddr=192.168.10.56, mask=255.255.255.0, gw=192.168.10.254
[    7.693741]      host=desk-mx, domain=, nis-domain=(none)
[    7.699148]      bootserver=192.168.10.100, rootserver=192.168.10.100, rootpath=
[    7.699275] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    7.717997] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    7.724630] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    7.733258] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    7.743582] ALSA device list:
[    7.746577]   No soundcards found.
[    7.779341] VFS: Mounted root (nfs filesystem) on device 0:21.
[    7.786366] devtmpfs: mounted
[    7.790046] Freeing unused kernel memory: 3008K
[    7.808130] Run /sbin/init as init process
[    8.162684] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    8.194573] systemd[1]: Detected architecture arm64.

Welcome to NXP i.MX Release Distro 5.15-kirkstone (kirkstone)!

[    8.292660] systemd[1]: Hostname set to <desk-mx8mp>.
[    8.315686] systemd[1]: Initializing machine ID from random generator.
[    8.454934] systemd-sysv-generator[192]: SysV service '/etc/init.d/single' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.484897] systemd-sysv-generator[192]: SysV service '/etc/init.d/halt' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.533352] systemd-sysv-generator[192]: SysV service '/etc/init.d/sendsigs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.560790] systemd-sysv-generator[192]: SysV service '/etc/init.d/umountfs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.606224] systemd-sysv-generator[192]: SysV service '/etc/init.d/rc.local' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.634155] systemd-sysv-generator[192]: SysV service '/etc/init.d/reboot' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.663799] systemd-sysv-generator[192]: SysV service '/etc/init.d/umountnfs.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.691554] systemd-sysv-generator[192]: SysV service '/etc/init.d/save-rtc.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    8.795127] systemd[183]: /lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1.
[   10.183524] systemd[1]: Queued start job for default target Graphical Interface.
[   10.246267] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[   10.270241] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[   10.294876] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[   10.318632] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[   10.340138] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[   10.364064] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[   10.388076] systemd[1]: Reached target Host and Network Name Lookups.
[  OK  ] Reached target Host and Network Name Lookups.
[   10.412177] systemd[1]: Reached target Path Units.
[  OK  ] Reached target Path Units.
[   10.432199] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[   10.456179] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[   10.476212] systemd[1]: Reached target Swaps.
[  OK  ] Reached target Swaps.
[   10.502253] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[   10.523940] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[   10.549035] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[   10.568473] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[   10.596272] systemd[1]: Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Audit Socket.
[   10.620579] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[   10.644652] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[   10.668443] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[   10.710423] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[   10.732582] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[   10.748577] systemd[1]: Listening on User Database Manager Socket.
[  OK  ] Listening on User Database Manager Socket.
[   10.776008] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[   10.799828] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[   10.828441] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[   10.852557] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[   10.876046] systemd[1]: Mounting Temporary Directory /tmp...
         Mounting Temporary Directory /tmp...
[   10.900026] systemd[1]: Create List of Static Device Nodes was skipped because of a failed condition check (ConditionFileNotEmpty=/lib/modules/5.15.71-desk-mx8m-l-4.0.0/modules.devname).
[   10.920739] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[   10.944608] systemd[1]: Starting Load Kernel Module drm...
         Starting Load Kernel Module drm...
[   10.967970] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[   10.998516] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[   11.017262] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[   11.030456] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[   11.043652] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[   11.058726] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[   11.088324] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
[   11.102853] systemd[1]: Starting Generate network units from Kernel command line...
         Starting Generate network …ts from Kernel command line...
[   11.133852] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[   11.160276] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[   11.184484] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[   11.209418] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[   11.228452] systemd[1]: Mounted Huge Pages File System.
[  OK  ] Mounted Huge Pages File System.
[   11.248400] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[   11.272469] systemd[1]: Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Debug File System.
[   11.292369] systemd[1]: Mounted Temporary Directory /tmp.
[  OK  ] Mounted Temporary Directory /tmp.
[   11.312863] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[   11.321142] systemd[1]: Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module configfs.
[   11.344551] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module fuse.
[  OK  ] Finished Generate network units from Kernel command line.
[  OK  ] Finished Remount Root and Kernel File Systems.
[  OK  ] Finished Apply Kernel Variables.
         Mounting Kernel Configuration File System...
         Starting Flush Journal to Persistent Storage...
         Starting Create System Users...
[   11.533452] systemd-journald[201]: Received client request to flush runtime journal.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Create System Users.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Coldplug All udev Devices.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /var/volatile...
         Starting Rule-based Manage…for Device Events and Files...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Rebuild Dynamic Linker Cache...
         Starting Create Volatile Files and Directories...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Finished Create Volatile Files and Directories.
         Starting Rebuild Journal Catalog...
         Starting Network Time Synchronization...
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Finished Record System Boot/Shutdown in UTMP.
[  OK  ] Finished Rebuild Journal Catalog.
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Set.
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
[  OK  ] Created slice Slice /system/systemd-fsck.
[  OK  ] Found device /dev/mmcblk2p2.
[  OK  ] Found device /dev/mmcblk2p1.
         Starting File System Check on /dev/mmcblk2p1...
         Starting File System Check on /dev/mmcblk2p2...
[  OK  ] Finished File System Check on /dev/mmcblk2p1.
[  OK  ] Finished File System Check on /dev/mmcblk2p2.
         Mounting /run/media/boot-mmcblk2p1...
         Mounting /run/media/rfs-mmcblk2p2...
[   15.217320] EXT4-fs (mmcblk2p1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[  OK  ] Found device /dev/mmcblk1p1.
[   15.231849] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[  OK  ] Mounted /run/media/boot-mmcblk2p1.
[  OK  ] Mounted /run/media/rfs-mmcblk2p2.
[  OK  ] Found device /dev/mmcblk1p2.
         Starting File System Check on /dev/mmcblk1p1...
         Starting File System Check on /dev/mmcblk1p2...
[  OK  ] Finished File System Check on /dev/mmcblk1p2.
         Mounting /run/media/root-mmcblk1p2...
[   15.948603] random: crng init done
[  OK  ] Finished Load/Save Random Seed.
[   16.205334] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[  OK  ] Mounted /run/media/root-mmcblk1p2.
[  OK  ] Finished File System Check on /dev/mmcblk1p1.
         Mounting /run/media/boot-mmcblk1p1...
[  OK  ] Mounted /run/media/boot-mmcblk1p1.
[*     ] A start job is running for Rebuild …namic Linker Cache (8s / no limit)
[**    ] A start job is running for Rebuild …namic Linker Cache (9s / no limit)
[***   ] A start job is running for Rebuild …namic Linker Cache (9s / no limit)
[  OK  ] Finished Rebuild Dynamic Linker Cache.
         Starting Update is Completed...
[  OK  ] Finished Update is Completed.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timer Units.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
         Starting Docker Socket for the API...
         Starting sshd.socket...
         Starting Weston socket...
[  OK  ] Listening on Docker Socket for the API.
[  OK  ] Listening on sshd.socket.
[  OK  ] Listening on Weston socket.
[  OK  ] Reached target Socket Units.
[  OK  ] Reached target Basic System.
[  OK  ] Started Job spooling tools.
[  OK  ] Started Periodic Command Scheduler.
         Starting D-Bus System Message Bus...
[  OK  ] Started Linux Firmware Loader Daemon.
[  OK  ] Started Configuration for i.MX GPU (Former rc_gpu.S).
[   20.808053] imx-sdma 30e10000.dma-controller: firmware found.
[   20.808118] imx-sdma 30bd0000.dma-controller: firmware found.
[  OK  ] Started    20.819894] imx-sdma 30bd0000.dma-controller: loaded firmware 4.6
;39mISP i.MX 8Mplus daemon.
         Starting IPv6 Packet Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
         Starting Network Time Service (one-shot ntpdate mode)...
         Starting Telephony service...
[  OK  ] Started System Logging Service.
         Starting User Login Management...
[  OK  ] Started TEE Supplicant.
         Starting OpenSSH Key Generation...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Finished IPv6 Packet Filtering Framework.
[  OK  ] Finished IPv4 Packet Filtering Framework.
[  OK  ] Finished Network Time Service (one-shot ntpdate mode).
[  OK  ] Reached target Preparation for Network.
         Starting Connection service...
         Starting Network Configuration...
[  OK  ] Started Telephony service.
[  OK  ] Started Connection service.
         Starting Avahi mDNS/DNS-SD Stack...
[  OK  ] Started User Login Management.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
         Starting WPA supplicant...
         Starting Hostname Service...
[  OK  ] Started Network Configuration.
[  OK  ] Started WPA supplicant.
[  OK  ] Reached target Network.
         Starting containerd container runtime...
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[  OK  ] Started Respond to IPv6 Node Information Queries.
         Starting /etc/rc.local Compatibility...
[  OK  ] Started Network Router Discovery Daemon.
         Starting Permit User Sessions...
[  OK  ] Started /etc/rc.local Compatibility.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttymxc1.
[  OK  ] Reached target Login Prompts.
         Starting Weston, a Wayland…ositor, as a system service...
[  OK  ] Started Hostname Service.
         Starting User Database Manager...
[  OK  ] Started User Database Manager.
[  OK  ] Created slice User Slice of UID 0.
         Starting User Runtime Directory /run/user/0...
[  OK  ] Finished User Runtime Directory /run/user/0.
         Starting User Manager for UID 0...
[   22.877331] audit: type=1006 audit(1690365191.700:2): pid=656 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
[   22.891620] audit: type=1300 audit(1690365191.700:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffdcf1acd0 a2=1 a3=ffffa0828020 items=0 ppid=1 pid=656 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="(systemd)" exe="/lib/systemd/systemd" key=(null)
[   22.918049] audit: type=1327 audit(1690365191.700:2): proctitle="(systemd)"
[  OK  ] Started User Manager for UID 0.
[  OK  ] Started Session c1 of User root.
[  OK  ] Started containerd container runtime.
[  OK  ] Reached target Multi-User System.
[   23.727673] audit: type=1006 audit(1690365192.548:3): pid=645 uid=0 old-auid=4294967295 auid=0 tty=tty7 old-ses=4294967295 ses=2 res=1
[   23.740728] audit: type=1300 audit(1690365192.548:3): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffdcf1acd0 a2=1 a3=ffffa0828020 items=0 ppid=1 pid=645 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty7 ses=2 comm="(weston)" exe="/lib/systemd/systemd" key=(null)
[   23.766854] audit: type=1327 audit(1690365192.548:3): proctitle="(weston)"
[   24.674026] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   24.680657] imx-dwmac 30bf0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[  OK  ] Started Weston, a Wayland …mpositor, as a system service.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.
[  OK  ] Stopped ISP i.MX 8Mplus daemon.
[  OK  ] Started ISP i.MX 8Mplus daemon.

NXP i.MX Release Distro 5.15-kirkstone desk-mx8mp ttymxc1

desk-mx8mp login: root
root@desk-mx8mp:~# 

The following message appears from the VM, when the rootfs is mounted:

dvdk@vagrant:~$ cat /var/log/syslog | tail -n 2
Jul 26 11:52:45 vagrant tftpd[13249]: tftpd: trying to get file: /tftpboot/desk-mx8m-l/imx8mp-mito8mplus-cb1008.dtb
Jul 26 11:52:56 vagrant rpc.mountd[808]: authenticated mount request from 192.168.10.56:1004 for /home/dvdk/desk-mx-l/rfs/desk-mx8m-l-4.0.0/mx8mp (/home)

Install Module[edit | edit source]

Host side, transfer ~/desk-mx-l/rfs/desk-mx8m-l-4.0.0_modules.tar.gz file on target.

Target side execute the follow command:

root@desk-mx6ul-axelulite:~# tar xvzf desk-mx8m-l-4.0.0_modules.tar.gz -C /                                                                                                                 

To check that everything went well, run the following command:

root@desk-mx8mp:~# ls -l /lib/modules/$(uname -r)
total 1152
lrwxrwxrwx  1 541 502     64 Jun 29 18:58 build -> /home/jenkins/workspace/workspace/DESK-MX8M-L-4.x.x_Linux-kernel
drwxr-xr-x 10 541 502   4096 Jun 29 18:58 kernel
-rw-r--r--  1 541 502 203921 Jun 29 18:58 modules.alias
-rw-r--r--  1 541 502 208115 Jun 29 18:58 modules.alias.bin
-rw-r--r--  1 541 502  36037 Jun 29 18:58 modules.builtin
-rw-r--r--  1 541 502  70747 Jun 29 18:58 modules.builtin.alias.bin
-rw-r--r--  1 541 502  39328 Jun 29 18:58 modules.builtin.bin
-rw-r--r--  1 541 502 229962 Jun 29 18:58 modules.builtin.modinfo
-rw-r--r--  1 541 502  46720 Jun 29 18:58 modules.dep
-rw-r--r--  1 541 502  82895 Jun 29 18:58 modules.dep.bin
-rw-r--r--  1 541 502    146 Jun 29 18:58 modules.devname
-rw-r--r--  1 541 502  31093 Jun 29 18:58 modules.order
-rw-r--r--  1 541 502    366 Jun 29 18:58 modules.softdep
-rw-r--r--  1 541 502  81992 Jun 29 18:58 modules.symbols
-rw-r--r--  1 541 502 105342 Jun 29 18:58 modules.symbols.bin
lrwxrwxrwx  1 541 502     64 Jun 29 18:58 source -> /home/jenkins/workspace/workspace/DESK-MX8M-L-4.x.x_Linux-kernel
root@desk-mx8mp:~#

Boot via NFS with default environment[edit | edit source]

In DESK-MX8M-L-4.0.0, U-Boot default envirounment has already all command, and variables, to perform boot via NFS, without apply any manual change to U-Boot environment, apart from IP address. All binaries are in DESK-MX8M-L-4.0.0 Virtual Machine. The rootfs installed on DESK-MX8M-L-4.0.0 Virtual Machine have already module installed.


U-Boot SPL 2022.04-desk-mx8m-l-4.0.0 (Jul 26 2023 - 15:37:11 +0200)
WARNING: SOM ConfigID on block 0 is UNLOCKED
SOM ConfigID#: 00000005
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, pagesize 0x200, ivt offset 0x0
WARNING: CB ConfigID on block 0 is UNLOCKED
Failed to find node!, err: -1!
Failed to find node!, err: -1!
NOTICE:  BL31: v2.6(release):desk-mx8m-l-4.0.0-0-gb55505767
NOTICE:  BL31: Built : 13:42:25, Jul 26 2023


U-Boot 2022.04-desk-mx8m-l-4.0.0 (Jul 26 2023 - 15:37:11 +0200)

CPU:   Freescale i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 55C
Reset cause: POR
Model: DAVE i.MX8MPlus on SBC ORCA Rev A
DRAM:  6 GiB
Relocating to fff05000, new gd at fdbffda0, sp at fdbf5350
WARNING: CB ConfigID on block 0 is UNLOCKED
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x50]
TCPC:  Vendor ID [0x0], Product ID [0x202], Addr [I2C2 0x3d]
Core:  175 devices, 20 uclasses, devicetree: fit
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment

Fail to setup video link
In:    serial
Out:   serial
Err:   serial

 BuildInfo:
  - ATF b555057

WARNING: SOM ConfigID on block 0 is UNLOCKED
SOM ConfigID#: 00000005
SOM UniqueID#: 1e261000:55aa2564:469660d3:d0c2b602
CB ConfigID#: 00001008
CB UniqueID#: b7000035:c48de62d
WARNING: SOM ConfigID on block 0 is UNLOCKED
SOM: MX8MP-Mito8MPlus on SBC-ORCA HDMI + LVDStoHDMI
switch to partitions #0, OK
mmc1 is current device (SD)
flash target is MMC:1
Net:
Warning: ethernet@30bf0000 (eth1) using random MAC address - 2a:2d:b6:16:9b:da

Warning: ethernet@30be0000 (eth0) using random MAC address - 0a:34:b4:63:39:ef
eth0: ethernet@30be0000, eth1: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  2  0
u-boot=> setenv serverip 192.168.0.90
u-boot=> setenv ipaddr 192.168.0.89
u-boot=> saveenv
Saving Environment to MMC... Writing to MMC(1)... OK
u-boot=> run net_nfs
Using ethernet@30bf0000 device
TFTP from server 192.168.0.90; our IP address is 192.168.0.89
Filename 'desk-mx8m-l/Image'.
Load address: 0x40480000
Loading: *#################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 #################################################################
	 ##############
	 564.5 KiB/s
done
Bytes transferred = 31351296 (1de6200 hex)
Using ethernet@30bf0000 device
TFTP from server 192.168.0.90; our IP address is 192.168.0.89
Filename 'desk-mx8m-l/imx8mp-mito8mplus-cb1008.dtb'.
Load address: 0x43000000
Loading: *############
	 852.5 KiB/s
done
Bytes transferred = 61121 (eec1 hex)
FDT: override 'som_uniqueid' with '1e261000:55aa2564:469660d3:d0c2b602'
FDT: override 'cb_uniqueid' with 'b7000035:c48de62d'
Moving Image from 0x40480000 to 0x40600000, end=42480000
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 0000000043000000, end 0000000043011fff

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.71-desk-mx8m-l-4.0.0 (jenkins@focalbakery) (aarch64-poky-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Thu Jul 20 15:30:07 CEST 2023
[    0.000000] Machine model: i.MX8MPlus Mito8MPlus on SBC Orca - adapter LVDS HDMI
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000c4000000, size 960 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x0000000094300000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@94300000, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x00000001bfffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x1bf43a800-0x1bf43cfff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000001bfffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000557fffff]
[    0.000000]   node   0: [mem 0x0000000055800000-0x0000000055ffffff]
[    0.000000]   node   0: [mem 0x0000000056000000-0x00000000923fffff]
[    0.000000]   node   0: [mem 0x0000000092400000-0x00000000a43fffff]
[    0.000000]   node   0: [mem 0x00000000a4400000-0x00000001bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000001bfffffff]
[    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 20 pages/cpu s41368 r8192 d32360 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1548288
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.90:/home/dvdk/desk-mx-l/rfs/desk-mx8m-l-mx8mp/,v3,tcp ip=192.168.0.89:192.168.0.90:192.168.0.254:255.255.255.0:desk-mx:eth0:off panic=1 console=ttymxc1,115200,115200 mtdparts=gpmi-nand:2M(nand-SPL),6M(nand-uboot),1M(nand-env1),1M(nand-env2),1M(nand-fdt),1M(nand-spare),8M(nand-kernel),4M(nand-splash),-(nand-ubi);
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000c0000000-0x00000000c4000000] (64MB)
[    0.000000] Memory: 4784748K/6291456K available (18688K kernel code, 1560K rwdata, 7244K rodata, 3008K init, 543K bss, 523668K reserved, 983040K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 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] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 160 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[    0.000000] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[    0.000454] Console: colour dummy device 80x25
[    0.000521] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)
[    0.000535] pid_max: default: 32768 minimum: 301
[    0.000591] LSM: Security Framework initializing
[    0.000691] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000719] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.002082] rcu: Hierarchical SRCU implementation.
[    0.003327] EFI services will not be available.
[    0.003526] smp: Bringing up secondary CPUs ...
[    0.003937] Detected VIPT I-cache on CPU1
[    0.003964] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[    0.003998] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.004465] Detected VIPT I-cache on CPU2
[    0.004484] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[    0.004504] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.004933] Detected VIPT I-cache on CPU3
[    0.004952] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[    0.004969] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.005027] smp: Brought up 1 node, 4 CPUs
[    0.005050] SMP: Total of 4 processors activated.
[    0.005056] CPU features: detected: 32-bit EL0 Support
[    0.005060] CPU features: detected: 32-bit EL1 Support
[    0.005068] CPU features: detected: CRC32 instructions
[    0.012521] CPU: All CPU(s) started at EL2
[    0.012556] alternatives: patching kernel code
[    0.014254] devtmpfs: initialized
[    0.022604] KASLR disabled due to lack of seed
[    0.022750] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.022767] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.049483] pinctrl core: initialized pinctrl subsystem
[    0.049966] DMI not present or invalid.
[    0.050544] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.055624] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.056097] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.056664] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.056757] audit: initializing netlink subsys (disabled)
[    0.056953] audit: type=2000 audit(0.056:1): state=initialized audit_enabled=0 res=1
[    0.057522] thermal_sys: Registered thermal governor 'step_wise'
[    0.057528] thermal_sys: Registered thermal governor 'power_allocator'
[    0.057802] cpuidle: using governor menu
[    0.058021] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.058104] ASID allocator initialised with 65536 entries
[    0.059221] Serial: AMBA PL011 UART driver
[    0.059280] imx mu driver is registered.
[    0.059302] imx rpmsg driver is registered.
[    0.070357] imx8mp-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver
[    0.079812] platform 32c00000.bus:ldb@32ec005c: Fixing up cyclic dependency with 32e90000.lcd-controller
[    0.086431] platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
[    0.108732] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.108748] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.108756] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.108764] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.109910] cryptd: max_cpu_qlen set to 1000
[    0.112959] ACPI: Interpreter disabled.
[    0.113727] iommu: Default domain type: Translated
[    0.113735] iommu: DMA domain TLB invalidation policy: strict mode
[    0.113874] vgaarb: loaded
[    0.114137] SCSI subsystem initialized
[    0.114438] usbcore: registered new interface driver usbfs
[    0.114476] usbcore: registered new interface driver hub
[    0.114507] usbcore: registered new device driver usb
[    0.115533] mc: Linux media interface: v0.10
[    0.115556] videodev: Linux video capture interface: v2.00
[    0.115633] pps_core: LinuxPPS API ver. 1 registered
[    0.115640] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.115656] PTP clock support registered
[    0.115827] EDAC MC: Ver: 3.0.0
[    0.116986] FPGA manager framework
[    0.117074] Advanced Linux Sound Architecture Driver Initialized.
[    0.117586] Bluetooth: Core ver 2.22
[    0.117612] NET: Registered PF_BLUETOOTH protocol family
[    0.117618] Bluetooth: HCI device and connection manager initialized
[    0.117629] Bluetooth: HCI socket layer initialized
[    0.117639] Bluetooth: L2CAP socket layer initialized
[    0.117653] Bluetooth: SCO socket layer initialized
[    0.118489] clocksource: Switched to clocksource arch_sys_counter
[    0.118620] VFS: Disk quotas dquot_6.6.0
[    0.118666] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.118804] pnp: PnP ACPI: disabled
[    0.124736] NET: Registered PF_INET protocol family
[    0.124983] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.128074] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.128182] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.128198] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.128607] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
[    0.129476] TCP: Hash tables configured (established 65536 bind 65536)
[    0.129583] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.129739] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.130004] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.130416] RPC: Registered named UNIX socket transport module.
[    0.130423] RPC: Registered udp transport module.
[    0.130427] RPC: Registered tcp transport module.
[    0.130437] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.131151] PCI: CLS 0 bytes, default 64
[    0.131785] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.132574] kvm [1]: IPA Size Limit: 40 bits
[    0.134207] kvm [1]: GICv3: no GICV resource entry
[    0.134214] kvm [1]: disabling GICv2 emulation
[    0.134229] kvm [1]: GIC system register CPU interface enabled
[    0.134306] kvm [1]: vgic interrupt IRQ9
[    0.134406] kvm [1]: Hyp mode initialized successfully
[    0.137660] Initialise system trusted keyrings
[    0.137802] workingset: timestamp_bits=42 max_order=21 bucket_order=0
[    0.143797] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.144358] NFS: Registering the id_resolver key type
[    0.144392] Key type id_resolver registered
[    0.144400] Key type id_legacy registered
[    0.144474] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.144481] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.144500] jffs2: version 2.2. (NAND) � 2001-2006 Red Hat, Inc.
[    0.144828] 9p: Installing v9fs 9p2000 file system support
[    0.181240] Key type asymmetric registered
[    0.181250] Asymmetric key parser 'x509' registered
[    0.181305] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.181313] io scheduler mq-deadline registered
[    0.181321] io scheduler kyber registered
[    0.188390] EINJ: ACPI disabled.
[    0.198982] imx-sdma 30bd0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[    0.199004] imx-sdma 30bd0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin
[    0.200743] mxs-dma 33000000.dma-apbh: initialized
[    0.202398] SoC: i.MX8MP revision 1.1
[    0.203027] Bus freq driver module loaded
[    0.209445] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.211771] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 31, base_baud = 5000000) is a IMX
[    0.212244] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 32, base_baud = 5000000) is a IMX
[    0.212660] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 33, base_baud = 1500000) is a IMX
[    1.327412] printk: console [ttymxc1] enabled
[    1.346826] loop: module loaded
[    1.351400] megasas: 07.717.02.00-rc1
[    1.356718] imx ahci driver is registered.
[    1.362513] SPI driver spidev has no spi_device_id for spidev
[    1.368275] SPI driver spidev has no spi_device_id for dave,sbcx-exp
[    1.378759] tun: Universal TUN/TAP device driver, 1.6
[    1.383981] CAN device driver interface
[    1.389227] thunder_xcv, ver 1.0
[    1.392495] thunder_bgx, ver 1.0
[    1.395768] nicpf, ver 1.0
[    1.400895] hclge is initializing
[    1.404236] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    1.411468] hns3: Copyright (c) 2017 Huawei Corporation.
[    1.416835] e1000: Intel(R) PRO/1000 Network Driver
[    1.421724] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.427512] e1000e: Intel(R) PRO/1000 Network Driver
[    1.432484] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.438442] igb: Intel(R) Gigabit Ethernet Network Driver
[    1.443846] igb: Copyright (c) 2007-2014 Intel Corporation.
[    1.449452] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.455724] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.461841] sky2: driver version 1.30
[    1.466179] usbcore: registered new interface driver r8152
[    1.471917] VFIO - User Level meta-driver version: 0.3
[    1.482772] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.489372] ehci-pci: EHCI PCI platform driver
[    1.493864] ehci-platform: EHCI generic platform driver
[    1.499347] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.505569] ohci-pci: OHCI PCI platform driver
[    1.510053] ohci-platform: OHCI generic platform driver
[    1.516168] usbcore: registered new interface driver uas
[    1.521533] usbcore: registered new interface driver usb-storage
[    1.527610] usbcore: registered new interface driver usbserial_generic
[    1.534161] usbserial: USB Serial support registered for generic
[    1.540198] usbcore: registered new interface driver ftdi_sio
[    1.545963] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.553304] usbcore: registered new interface driver usb_serial_simple
[    1.559854] usbserial: USB Serial support registered for carelink
[    1.565968] usbserial: USB Serial support registered for zio
[    1.571648] usbserial: USB Serial support registered for funsoft
[    1.577676] usbserial: USB Serial support registered for flashloader
[    1.584050] usbserial: USB Serial support registered for google
[    1.589990] usbserial: USB Serial support registered for libtransistor
[    1.596538] usbserial: USB Serial support registered for vivopay
[    1.602572] usbserial: USB Serial support registered for moto_modem
[    1.608865] usbserial: USB Serial support registered for motorola_tetra
[    1.615509] usbserial: USB Serial support registered for nokia
[    1.621359] usbserial: USB Serial support registered for novatel_gps
[    1.627734] usbserial: USB Serial support registered for hp4x
[    1.633501] usbserial: USB Serial support registered for suunto
[    1.639444] usbserial: USB Serial support registered for siemens_mpi
[    1.645830] usbcore: registered new interface driver usb_ehset_test
[    1.656456] snvs_rtc 30370000.snvs:snvs-rtc-lp: registered as rtc0
[    1.662676] snvs_rtc 30370000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:34:45 UTC (2085)
[    1.672145] i2c_dev: i2c /dev entries driver
[    1.678407] Driver for 1-wire Dallas network protocol.
[    1.686732] Bluetooth: HCI UART driver ver 2.3
[    1.691199] Bluetooth: HCI UART protocol H4 registered
[    1.696345] Bluetooth: HCI UART protocol BCSP registered
[    1.701679] Bluetooth: HCI UART protocol LL registered
[    1.706831] Bluetooth: HCI UART protocol ATH3K registered
[    1.712252] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    1.718624] Bluetooth: HCI UART protocol Broadcom registered
[    1.724314] Bluetooth: HCI UART protocol QCA registered
[    1.729779] EDAC MC: ECC not enabled
[    1.734839] sdhci: Secure Digital Host Controller Interface driver
[    1.741047] sdhci: Copyright(c) Pierre Ossman
[    1.746195] Synopsys Designware Multimedia Card Interface Driver
[    1.752979] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.760958] ledtrig-cpu: registered to indicate activity on CPUs
[    1.767952] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.774887] usbcore: registered new interface driver usbhid
[    1.780468] usbhid: USB HID core driver
[    1.789474]  cs_system_cfg: CoreSight Configuration manager initialised
[    1.792122] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    1.800177] Galcore version 6.4.3.p4.398061
[    1.912364] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[    1.919255] mmcblk2: mmc2:0001 DG4008 7.28 GiB
[    1.925128] [drm] Initialized vivante 1.0.0 20170808 for 40000000.mix_gpu_ml on minor 0
[    1.925763]  mmcblk2: p1 p2
[    1.934805] hantrodec 0 : module inserted. Major = 510
[    1.937342] mmcblk2boot0: mmc2:0001 DG4008 4.00 MiB
[    1.941611] hantrodec 1 : module inserted. Major = 510
[    1.947623] mmcblk2boot1: mmc2:0001 DG4008 4.00 MiB
[    1.952941] hantroenc: HW at base <0000000038320000> with ID <0x80006200>
[    1.958270] mmcblk2rpmb: mmc2:0001 DG4008 4.00 MiB, chardev (234:0)
[    1.963133] hx280enc: module inserted. Major <509>
[    1.977674] NET: Registered PF_LLC protocol family
[    1.982986] NET: Registered PF_INET6 protocol family
[    1.989602] Segment Routing with IPv6
[    1.993312] In-situ OAM (IOAM) with IPv6
[    1.997296] NET: Registered PF_PACKET protocol family
[    2.002398] can: controller area network core
[    2.006802] NET: Registered PF_CAN protocol family
[    2.011602] can: raw protocol
[    2.014582] can: broadcast manager protocol
[    2.018778] can: netlink gateway - max_hops=1
[    2.024215] Bluetooth: RFCOMM TTY layer initialized
[    2.029117] Bluetooth: RFCOMM socket layer initialized
[    2.034278] Bluetooth: RFCOMM ver 1.11
[    2.038041] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.043366] Bluetooth: BNEP filters: protocol multicast
[    2.048602] Bluetooth: BNEP socket layer initialized
[    2.053574] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.059503] Bluetooth: HIDP socket layer initialized
[    2.065504] 8021q: 802.1Q VLAN Support v1.8
[    2.069717] lib80211: common routines for IEEE802.11 drivers
[    2.075826] 9pnet: Installing 9P2000 support
[    2.080135] tsn generic netlink module v1 init...
[    2.084930] Key type dns_resolver registered
[    2.090095] Loading compiled-in X.509 certificates
[    2.119163] regulator-se050-en GPIO handle specifies active low - ignored
[    2.190134] nxp-pca9450 0-0025: pca9450bc probed.
[    2.194955] i2c i2c-0: IMX I2C adapter registered
[    2.201041] i2c 1-003c: Fixing up cyclic dependency with 32e40000.csi
[    2.207787] ov5640 1-003c: supply DOVDD not found, using dummy regulator
[    2.214603] ov5640 1-003c: supply AVDD not found, using dummy regulator
[    2.221263] ov5640 1-003c: supply DVDD not found, using dummy regulator
[    2.236233] i2c i2c-1: IMX I2C adapter registered
[    2.242353] i2c 2-003c: Fixing up cyclic dependency with 32e50000.csi
[    2.249107] ov5640 2-003c: supply DOVDD not found, using dummy regulator
[    2.255910] ov5640 2-003c: supply AVDD not found, using dummy regulator
[    2.262574] ov5640 2-003c: supply DVDD not found, using dummy regulator
[    2.286152] i2c i2c-2: IMX I2C adapter registered
[    2.292020] i2c 5-004c: Fixing up cyclic dependency with 32c00000.bus:ldb@32ec005c
[    2.430554] i2c i2c-5: IMX I2C adapter registered
[    2.436220] imx8mq-usb-phy 381f0040.usb-phy: supply vbus not found, using dummy regulator
[    2.444751] imx8mq-usb-phy 382f0040.usb-phy: supply vbus not found, using dummy regulator
[    2.455264] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    2.463536] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[    2.469743] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.
[    2.476375] pps pps0: new PPS source ptp0
[    2.489316] fec 30be0000.ethernet eth0: registered PHC device 0
[    2.496142] imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
[    2.502542] imx6q-pcie 33800000.pcie: PCIe PLL is locked.
[    2.503167] imx-dwmac 30bf0000.ethernet: User ID: 0x10, Synopsys ID: 0x51
[    2.508013] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    2.514765] imx-dwmac 30bf0000.ethernet: 	DWMAC4/5
[    2.520245] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.525039] imx-dwmac 30bf0000.ethernet: DMA HW capability register supported
[    2.532618] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    2.539746] imx-dwmac 30bf0000.ethernet: RX Checksum Offload Engine supported
[    2.546975] imx6q-pcie 33800000.pcie:   No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[    2.554103] imx-dwmac 30bf0000.ethernet: TX Checksum insertion supported
[    2.563435] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    2.570110] imx-dwmac 30bf0000.ethernet: Wake-Up On Lan supported
[    2.570170] imx-dwmac 30bf0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    2.578305] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    2.584387] imx-dwmac 30bf0000.ethernet: Enabled L3L4 Flow TC (entries=8)
[    2.592125] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    2.600221] imx-dwmac 30bf0000.ethernet: Enabled RFS Flow TC (entries=8)
[    2.607013] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.612506] imx-dwmac 30bf0000.ethernet: Enabling HW TC (entries=256, max_off=256)
[    2.634345] imx-dwmac 30bf0000.ethernet: Using 34 bits DMA width
[    2.644922] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    2.650450] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    2.658453] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe6d hci version 0x110 quirks 0x0000002001010010
[    2.667894] xhci-hcd xhci-hcd.1.auto: irq 77, io mem 0x38100000
[    2.673946] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    2.679448] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    2.687118] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    2.694154] hub 1-0:1.0: USB hub found
[    2.697936] hub 1-0:1.0: 1 port detected
[    2.702171] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.710799] hub 2-0:1.0: USB hub found
[    2.714578] hub 2-0:1.0: 1 port detected
[    2.719553] imx6q-pcie 33800000.pcie: Link up
[    2.721342] gpio-42 (onewire): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[    2.734012] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 7 mkt segment 2 supported-hw 0x80 0x4
[    2.743687] Hot alarm is canceled. GPU3D clock will return to 64/64
[    2.753849] mxc-mipi-csi2-sam 32e40000.csi: supply mipi-phy not found, using dummy regulator
[    2.753954] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    2.757114] w1_master_driver w1_bus_master1: Attaching one wire slave 2d.000035c48de6 crc b7
[    2.762599] : mipi_csis_imx8mp_phy_reset, No remote pad found!
[    2.781687] mxc-mipi-csi2-sam 32e40000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 500000000
[    2.792424] mxc-mipi-csi2-sam 32e50000.csi: supply mipi-phy not found, using dummy regulator
[    2.798545] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    2.801177] : mipi_csis_imx8mp_phy_reset, No remote pad found!
[    2.813793] mxc-mipi-csi2-sam 32e50000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 266000000
[    2.823637] imx6q-pcie 33800000.pcie: Link up
[    2.825220] isi-capture 32e00000.isi:cap_device: deferring 32e00000.isi:cap_device device registration
[    2.828047] imx6q-pcie 33800000.pcie: Link up, Gen2
[    2.838126] mxc-isi 32e00000.isi: mxc_isi.0 registered successfully
[    2.849901] isi-capture 32e02000.isi:cap_device: deferring 32e02000.isi:cap_device device registration
[    2.851947] mmc1: host does not support reading read-only switch, assuming write-enable
[    2.859327] mxc-isi 32e02000.isi: mxc_isi.1 registered successfully
[    2.871242] mmc1: new high speed SDHC card at address aaaa
[    2.876215] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[    2.879438] mmcblk1: mmc1:aaaa SA16G 14.8 GiB
[    2.889010] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.895250]  mmcblk1: p1 p2
[    2.901407] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[    2.911110] imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops)
[    2.919288] imx-drm display-subsystem: bound 32c00000.bus:ldb@32ec005c (ops imx8mp_ldb_ops)
[    2.927669] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
[    2.935308] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 1
[    2.941139] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[    2.950209] imx6q-pcie 33800000.pcie: Link up
[    2.954501] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    2.954656] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[    2.967449] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.972939] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.973658] mmc0: queuing unknown CIS tuple 0x01 [d9 01 ff] (3 bytes)
[    2.979124] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff]
[    2.979149] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    2.993338] mmc0: queuing unknown CIS tuple 0x1a [01 01 00 02 07] (5 bytes)
[    2.998456] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    3.008796] mmc0: queuing unknown CIS tuple 0x1b [c1 41 30 30 ff ff 32 00] (8 bytes)
[    3.011685] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    3.020103] mmc0: queuing unknown CIS tuple 0x14 [] (0 bytes)
[    3.026156] pci 0000:00:00.0: supports D1
[    3.034042] mmc0: new high speed SDIO card at address 0001
[    3.035878] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    3.038125] pci 0000:01:00.0: [1912:0015] type 00 class 0x0c0330
[    3.053808] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    3.060969] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    3.081055] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff]
[    3.087872] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff]
[    3.094785] pci 0000:00:00.0: BAR 6: assigned [mem 0x18200000-0x1820ffff pref]
[    3.102020] pci 0000:01:00.0: BAR 0: assigned [mem 0x18100000-0x18101fff 64bit]
[    3.109364] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.114597] pci 0000:00:00.0:   bridge window [mem 0x18100000-0x181fffff]
[    3.121671] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
[    3.127630] pci 0000:01:00.0: enabling device (0000 -> 0002)
[    3.174221] hub 1-1:1.0: USB hub found
[    3.178222] hub 1-1:1.0: 4 ports detected
[    3.282202] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[    3.431527] hub 2-1:1.0: USB hub found
[    3.433445] hub 2-1:1.0: 4 ports detected
[    3.531092] Console: switching to colour frame buffer device 160x45
[    3.559230] imx-drm display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device
[    3.571453] isi-m2m 32e00000.isi:m2m_device: Register m2m success for ISI.0
[    3.583831] Generic PHY 30be0000.ethernet-1:08: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:08, irq=POLL)
[    7.679930] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[    7.691154] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.710497] IP-Config: Complete:
[    7.713727]      device=eth0, hwaddr=0a:34:b4:63:39:ef, ipaddr=192.168.0.89, mask=255.255.255.0, gw=192.168.0.254
[    7.724125]      host=desk-mx, domain=, nis-domain=(none)
[    7.729552]      bootserver=192.168.0.90, rootserver=192.168.0.90, rootpath=
[    7.729707] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    7.747393] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    7.754015] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    7.762645] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    7.770238] ALSA device list:
[    7.773370]   No soundcards found.
[    7.827755] VFS: Mounted root (nfs filesystem) on device 0:21.
[    7.837615] devtmpfs: mounted
[    7.841145] Freeing unused kernel memory: 3008K
[    7.858873] Run /sbin/init as init process
[    8.660279] systemd[1]: System time before build time, advancing clock.
[    8.700319] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    8.732357] systemd[1]: Detected architecture arm64.

Welcome to NXP i.MX Release Distro 5.15-kirkstone (kirkstone)!

[    8.839156] systemd[1]: Hostname set to <desk-mx8mp>.
[    8.873618] systemd[1]: Initializing machine ID from random generator.
[    9.052162] systemd-sysv-generator[194]: SysV service '/etc/init.d/single' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.092830] systemd-sysv-generator[194]: SysV service '/etc/init.d/halt' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.140481] systemd-sysv-generator[194]: SysV service '/etc/init.d/sendsigs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.166646] systemd-sysv-generator[194]: SysV service '/etc/init.d/umountfs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.211402] systemd-sysv-generator[194]: SysV service '/etc/init.d/rc.local' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.239479] systemd-sysv-generator[194]: SysV service '/etc/init.d/reboot' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.268965] systemd-sysv-generator[194]: SysV service '/etc/init.d/umountnfs.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.296725] systemd-sysv-generator[194]: SysV service '/etc/init.d/save-rtc.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    9.400201] systemd[185]: /lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1.
[   10.805803] systemd[1]: Queued start job for default target Graphical Interface.
[   10.856615] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[   10.880999] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[   10.909636] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[   10.932716] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[   10.954928] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password �ts to Console Directory Watch.
[   10.978827] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R�uests to Wall Directory Watch.
[   11.002854] systemd[1]: Reached target Host and Network Name Lookups.
[  OK  ] Reached target Host and Network Name Lookups.
[   11.026954] systemd[1]: Reached target Path Units.
[  OK  ] Reached target Path Units.
[   11.046629] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[   11.070920] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[   11.090934] systemd[1]: Reached target Swaps.
[  OK  ] Reached target Swaps.
[   11.118902] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[   11.142776] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[   11.171968] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[   11.191213] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[   11.219370] systemd[1]: Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Audit Socket.
[   11.239251] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[   11.263292] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[   11.284795] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[   11.321711] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[   11.342999] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[   11.365550] systemd[1]: Listening on User Database Manager Socket.
[  OK  ] Listening on User Database Manager Socket.
[   11.390583] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[   11.414737] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[   11.442536] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[   11.463051] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[   11.487208] systemd[1]: Mounting Temporary Directory /tmp...
         Mounting Temporary Directory /tmp...
[   11.529145] systemd[1]: Starting Create List of Static Device Nodes...
         Starting Create List of Static Device Nodes...
[   11.554998] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[   11.578367] systemd[1]: Starting Load Kernel Module drm...
         Starting Load Kernel Module drm...
[   11.602354] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[   11.636297] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[   11.655835] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[   11.669019] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[   11.682039] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[   11.695952] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[   11.727524] fuse: init (API version 7.34)
[   11.729521] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
[   11.744609] systemd[1]: Starting Generate network units from Kernel command line...
         Starting Generate network �ts from Kernel command line...
[   11.774972] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[   11.803449] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[   11.826754] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[   11.851511] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[   11.872111] systemd[1]: Mounted Huge Pages File System.
[  OK  ] Mounted Huge Pages File System.
[   11.895020] systemd[1]: Mounted POSIX Message Queue File System.
[  OK  ] Mounted POSIX Message Queue File System.
[   11.919020] systemd[1]: Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Debug File System.
[   11.939025] systemd[1]: Mounted Temporary Directory /tmp.
[  OK  ] Mounted Temporary Directory /tmp.
[   11.959086] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Finished Create List of Static Device Nodes.
[  OK  ] Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module fuse.
[  OK  ] Finished Generate network units from Kernel command line.
[  OK  ] Finished Remount Root and Kernel File Systems.
[  OK  ] Finished Apply Kernel Variables.
         Mounting FUSE Control File System...
         Mounting Kernel Configuration File System...
         Starting Flush Journal to Persistent Storage...
         Starting Create System Users...
[  OK  ] Mounted FUSE Control File System.
[   12.232982] systemd-journald[204]: Received client request to flush runtime journal.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Create System Users.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Coldplug All udev Devices.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /var/volatile...
         Starting Rule-based Manage�for Device Events and Files...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Rebuild Dynamic Linker Cache...
         Starting Create Volatile Files and Directories...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Finished Create Volatile Files and Directories.
         Starting Rebuild Journal Catalog...
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Reached target System Time Set.
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Stopped Network Time Synchronization.
[   13.574513] random: crng init done
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Finished Rebuild Journal Catalog.
[  OK  ] Stopped Network Time Synchronization.
[   13.826243] remoteproc remoteproc0: imx-dsp-rproc is available
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[   13.882356] caam-snvs 30370000.caam-snvs: violation handlers armed - non-secure state
[  OK  ] Finished Record System Boot/Shutdow[   13.904345] caam 30900000.crypto: Entropy delay = 3200
n in UTMP.
[  OK  ] Stopped Network Time Synchronization.
[   13.988789] caam 30900000.crypto: failed to acquire DECO 0
[   13.994320] caam 30900000.crypto: failed to instantiate RNG
[   14.120839] imx8_media_dev: module is from the staging directory, the quality is unknown, you have been warned.
[   14.156048] mx8-img-md: Registered mxc_isi.0.capture as /dev/video1
[   14.185725] mx8-img-md: Registered mxc_isi.1.capture as /dev/video2
[   14.192257] mx8-img-md: Registered sensor subdevice: ov5640 2-003c (1)
[   14.198995] mx8-img-md: Registered sensor subdevice: ov5640 1-003c (2)
[   14.205603] mx8-img-md: created link [mxc_isi.0] => [mxc_isi.0.capture]
[FAILED] Failed to s[   14.212431] mx8-img-md: created link [mxc-mipi-csi2.0] => [mxc_isi.0]
tart Network Time Synchr[   14.221748] mx8-img-md: created link [mxc_isi.1] => [mxc_isi.1.capture]
onization.
[   14.231415] mx8-img-md: created link [mxc-mipi-csi2.1] => [mxc_isi.1]
[   14.239784] mx8-img-md: created link [ov5640 1-003c] => [mxc-mipi-csi2.0]
[   14.246899] mx8-img-md: created link [ov5640 2-003c] => [mxc-mipi-csi2.1]
See 'systemctl status systemd-tim[   14.255260] mxc-md 32c00000.bus:camera: mxc_md_create_links
esyncd.service' for details.
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Stopped Network Time Synchronization.
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Stopped Network Time Synchronization.
[FAILED] Failed to start Network Time Synchronization.
See 'systemctl status systemd-timesyncd.service' for details.
[  OK  ] Listening on Load/Save RF �itch Status /dev/rfkill Watch.
[  OK  ] Created slice Slice /system/systemd-fsck.
[  OK  ] Found device /dev/mmcblk2p2.
         Starting File System Check on /dev/mmcblk2p2...
[  OK  ] Found device /dev/mmcblk2p1.
         Starting File System Check on /dev/mmcblk2p1...
[  OK  ] Finished File System Check on /dev/mmcblk2p2.
         Mounting /run/media/rfs-mmcblk2p2...
[   15.969620] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[  OK  ] Mounted /run/media/rfs-mmcblk2p2.
[  OK  ] Found device /dev/mmcblk1p2.
[  OK  ] Finished File System Check on /dev/mmcblk2p1.
         Mounting /run/media/boot-mmcblk2p1...
         Starting File System Check on /dev/mmcblk1p2...
[  OK  ] Mounted /run/media/boot-mmcblk2p1.
[  OK  ] Found device /dev/mmcblk1p1.
         Starting File System Check on /dev/mmcblk1p1...
[  OK  ] Finished File System Check on /dev/mmcblk1p2.
         Mounting /run/media/ROOTFS-mmcblk1p2...
[   16.930964] EXT4-fs (mmcblk1p2): mounting ext3 file system using the ext4 subsystem
[   17.201139] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[  OK  ] Mounted /run/media/ROOTFS-mmcblk1p2.
[  OK  ] Finished File System Check on /dev/mmcblk1p1.
         Mounting /run/media/BOOT-mmcblk1p1...
[  OK  ] Mounted /run/media/BOOT-mmcblk1p1.
[*     ] A start job is running for Rebuild �namic Linker Cache (8s / no limit)
[**    ] A start job is running for Rebuild �namic Linker Cache (9s / no limit)
[***   ] A start job is running for Rebuild �namic Linker Cache (9s / no limit)
[  OK  ] Finished Rebuild Dynamic Linker Cache.
         Starting Update is Completed...
[  OK  ] Finished Update is Completed.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timer Units.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
         Starting Docker Socket for the API...
         Starting sshd.socket...
         Starting Weston socket...
[  OK  ] Listening on Docker Socket for the API.
[  OK  ] Listening on sshd.socket.
[  OK  ] Listening on Weston socket.
[  OK  ] Reached target Socket Units.
[  OK  ] Reached target Basic System.
[  OK  ] Started Job spooling tools.
[  OK  ] Started Periodic Command Scheduler.
         Starting D-Bus System Message Bus...
[  OK  ] Started Linux Firmware Loader Daemon.
[  OK  ] Started Configuration for i.MX GPU (Former rc_gpu.S).
[  OK  ] Started ISP i.MX 8Mplus daemon.
[   21.305962] imx-sdma 30e10000.dma-controller: firmware found.
[   21.306623] imx-sdma 30bd0000.dma-controller: firmware found.
[   21.308187] xhci_hcd 0000:01:00.0: failed to load firmware renesas_usb_fw.mem, fallback to ROM
[   21.308284] xhci_hcd 0000:01:00.0: xHCI Host Controller
[   21.308307] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 3
[   21.313639] xhci_hcd 0000:01:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x0000001100000090
[   21.318031] imx-sdma 30bd0000.dma-controller: loaded firmware 4.6
[   21.327515] xhci_hcd 0000:01:00.0: xHCI Host Controller
[   21.359770] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 4
[   21.367235] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
         Starting IPv6 P[   21.374648] hub 3-0:1.0: USB hub found
acket Filtering Framework...[   21.380221] hub 3-0:1.0: 2 ports detected

[   21.387477] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[   21.396959] hub 4-0:1.0: USB hub found
[   21.400815] hub 4-0:1.0: 2 ports detected
         Starting IPv4 Packet Filtering Framework...
         Starting Network Time Service (one-shot ntpdate mode)...
         Starting Telephony service...
[  OK  ] Started System Logging Service.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
syslogd[619]: Error opening log file: /var/log/auth.log: No such file or directory
[  OK  ] Started TEE Supplicant.
syslogd[619]: Error opening log file: /var/log/syslog: No such file or directory
         Starting OpenSSH Key Generation...
syslogd[619]: Error opening log file: /var/log/kern.log: No such file or directory
[  OK  ] Started D-Bus System Message Bus.
syslogd[619]: Error opening log file: /var/log/mail.log: No such file or directory
syslogd[619]: Error opening log file: /var/log/mail.err: No such file or directory
[  OK  ] Finished IPv6 Packet Filtering Framework.
syslogd[619]: Error opening log file: /var/log/messages: No such file or directory
[  OK  ] Finished IPv4 Packet Filtering Framework.
[  OK  ] Finished Network Time Service (one-shot ntpdate mode).
[  OK  ] Created slice Slice /system/sshd.
[  OK  ] Reached target Preparation for Network.
         Starting Connection service...
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
         Starting Network Configuration...
[  OK  ] Started Telephony service.
[  OK  ] Finished Load Kernel Module drm.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
[  OK  ] Started Connection service.
[  OK  ] Finished Load Kernel Module drm.
         Starting Avahi mDNS/DNS-SD Stack...
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Finished Load Kernel Module drm.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
         Starting WPA supplicant...
[  OK  ] Started Network Configuration.
[  OK  ] Finished Load Kernel Module drm.
[FAILED] Failed to start Hostname Service.
See 'systemctl status systemd-hostnamed.service' for details.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[  OK  ] Started WPA supplicant.
[  OK  ] Reached target Network.
         Starting containerd container runtime...
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[FAILED] Failed to start Respond to IPv6 Node Information Queries.
See 'systemctl status ninfod.service' for details.
         Starting /etc/rc.local Compatibility...
[FAILED] Failed to start Network Router Discovery Daemon.
See 'systemctl status rdisc.service' for details.
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
         Starting Permit User Sessions...
[  OK  ] Started /etc/rc.local Compatibility.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttymxc1.
[  OK  ] Reached target Login Prompts.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
         Starting Weston, a Wayland�ositor, as a system service...
         Starting User Database Manager...
[  OK  ] Started User Database Manager.
[   23.260843] audit: type=1006 audit(1651167759.600:2): pid=663 uid=0 old-auid=4294967295 auid=0 tty=tty7 old-ses=4294967295 ses=1 res=1
[   23.273829] audit: type=1300 audit(1651167759.600:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffe19f4e40 a2=1 a3=ffffab2a5020 items=0 ppid=1 pid=663 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty7 ses=1 comm="(weston)" exe="/lib/systemd/systemd" key=(null)
[   23.300697] audit: type=1327 audit(1651167759.600:2): proctitle="(weston)"
[FAILED] Failed to start Weston, a �mpositor, as a system service.
See 'systemctl status weston.service' for details.
[  OK  ] Started containerd container runtime.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.
[  OK  ] Finished OpenSSH Key Generation.
[  OK  ] Started OpenSSH Per-Connec�on Daemon (192.168.0.4:54253).

NXP i.MX Release Distro 5.15-kirkstone desk-mx8mp ttymxc1

desk-mx8mp login: [   26.336871] imx-dwmac 30bf0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[   26.345195] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

desk-mx8mp login: root
root@desk-mx8mp:~#
root@desk-mx8mp:~#
root@desk-mx8mp:~# uname -a
Linux desk-mx8mp 5.15.71-desk-mx8m-l-4.0.0 #1 SMP PREEMPT Thu Jul 20 15:30:07 CEST 2023 aarch64 aarch64 aarch64 GNU/Linux
root@desk-mx8mp:~# cat /etc/build
-----------------------
Build Configuration:  |
-----------------------
DISTRO = fsl-imx-wayland
DISTRO_VERSION = 5.15-kirkstone
MACHINE = desk-mx8mp
IMAGE_BASENAME = desk-image-qt6
-----------------------
Layer Revisions:      |
-----------------------
meta              = HEAD:24a3f7b3648185e33133f5d96b184a6cb6524f3d
meta-poky         = HEAD:24a3f7b3648185e33133f5d96b184a6cb6524f3d
meta-oe           = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-multimedia   = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-python       = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-freescale    = HEAD:c82d4634e7aba8bc0de73ce1dfc997b630051571
meta-freescale-3rdparty = HEAD:5977197340c7a7db17fe3e02a4e014ad997565ae
meta-freescale-distro = HEAD:d5bbb487b2816dfc74984a78b67f7361ce404253
meta-bsp          = HEAD:f3f6777cc016be11084e98c9986f09791c92a63f
meta-sdk          = HEAD:f3f6777cc016be11084e98c9986f09791c92a63f
meta-ml           = HEAD:f3f6777cc016be11084e98c9986f09791c92a63f
meta-clang        = HEAD:c728c3f9168c8a4ed05163a51dd48ca1ad8ac21d
meta-virtualization = HEAD:9482648daf0bb42ff3475e7892542cf99f3b8d48
meta-nxp-demo-experience = HEAD:52eaf8bf42f8eda2917a1c8c046003c8c2c8f629
meta-chromium     = HEAD:e232c2e21b96dc092d9af8bea4b3a528e7a46dd6
meta-firefox      = HEAD:e232c2e21b96dc092d9af8bea4b3a528e7a46dd6
meta-gnome        = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-networking   = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-filesystems  = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-webserver    = HEAD:744a4b6eda88b9a9ca1cf0df6e18be384d9054e3
meta-python2      = HEAD:f02882e2aa9279ca7becca8d0cedbffe88b5a253
meta-qt6          = HEAD:ed785a25d12e365d1054700d4fc94a053176eb14
meta-dave         = HEAD:4d30d6a017ace629fca7ab4f6466885781c48a54
meta-desk-mx      = HEAD:be03001c6015cd7b42444ddcf062e1058b677cae
root@desk-mx8mp:~# ls -la /lib/modules/$(uname -r)
total 1160
drwxr-xr-x  3 541 502   4096 Jul 20  2023 .
drwxr-xr-x  4 541 502   4096 Jul 20  2023 ..
lrwxrwxrwx  1 541 502     64 Jul 20  2023 build -> /home/jenkins/workspace/workspace/DESK-MX8M-L-4.x.x_Linux-kernel
drwxr-xr-x 10 541 502   4096 Jul 20  2023 kernel
-rw-r--r--  1 541 502 203921 Jul 20  2023 modules.alias
-rw-r--r--  1 541 502 208115 Jul 20  2023 modules.alias.bin
-rw-r--r--  1 541 502  36037 Jul 20  2023 modules.builtin
-rw-r--r--  1 541 502  70747 Jul 20  2023 modules.builtin.alias.bin
-rw-r--r--  1 541 502  39328 Jul 20  2023 modules.builtin.bin
-rw-r--r--  1 541 502 229962 Jul 20  2023 modules.builtin.modinfo
-rw-r--r--  1 541 502  46720 Jul 20  2023 modules.dep
-rw-r--r--  1 541 502  82895 Jul 20  2023 modules.dep.bin
-rw-r--r--  1 541 502    146 Jul 20  2023 modules.devname
-rw-r--r--  1 541 502  31093 Jul 20  2023 modules.order
-rw-r--r--  1 541 502    366 Jul 20  2023 modules.softdep
-rw-r--r--  1 541 502  81992 Jul 20  2023 modules.symbols
-rw-r--r--  1 541 502 105342 Jul 20  2023 modules.symbols.bin
lrwxrwxrwx  1 541 502     64 Jul 20  2023 source -> /home/jenkins/workspace/workspace/DESK-MX8M-L-4.x.x_Linux-kernel
root@desk-mx8mp:~# ls -la /lib/modules/$(uname -r)        
total 16
drwxr-xr-x  4  541  502 4096 Jul 20  2023 .
drwxr-xr-x 11  541  502 4096 Jul 20  2023 ..
drwxr-xr-x  3  541  502 4096 Jul 20  2023 5.15.71-desk-mx8m-l-4.0.0
drwxr-xr-x  4 root root 4096 Mar  9  2018 5.15.71-desk-mx8m-l-4.0.0+g50e18a0c8871
root@desk-mx8mp:~# shutdown -h now
[  OK  ] Removed slice Slice /system/modprobe.
[  OK  ] Removed slice Slice /system/sshd.
[  OK  ] Stopped target Graphical Interface.
[  OK  ] St         Stopping System Logging Service...
         Stopping Load/Save Random Seed...
[  OK  ] Stopped OpenSSH Key Generation.
[  OK  ] Stopped Job spooling tools.
[  OK  ] Stopped Periodic Command Scheduler.
[  OK  ] Stopped Linux Firmware Loader Daemon.
[  OK  ] Stopped Telephony service.
[  OK  ] Stopped System Logging Service.
[  OK  ] Stopped Avahi mDNS/DNS-SD Stack.
[  OK  ] Stopped NFS status monitor for NFSv2/3 locking..
[  OK  ] Stopped containerd container runtime.
[  OK  ] Stopped Getty on tty1.
[  OK  ] Stopped Serial Getty on ttymxc1.
[  OK  ] Stopped Load/Save Random Seed.
[  OK  ] Removed slice Slice /system/getty.
[  OK  ] Removed slice Slice /system/serial-getty.
[  OK  ] Stopped target Host and Network Name Lookups.
[  OK  ] Stopped /etc/rc.local Compatibility.
         Stopping Permit User Sessions...
[  OK  ] Stopped Permit User Sessions.
[  OK  ] Stopped target Network.
[  OK  ] Stopped target Remote File Systems.
         Stopping Connection service...
         Stopping Network Configuration...
         Stopping WPA supplicant...
[  OK  ] Stopped Network Configuration.
[   70.399144] imx-dwmac 30bf0000.ethernet eth1: Link is Down
[   70.405676] imx-dwmac 30bf0000.ethernet eth1: FPE workqueue stop
[   70.415928] imx-dwmac 30bf0000.ethernet eth1: PHY [stmmac-1:07] driver [Microchip KSZ9131 Gigabit PHY] (irq=POLL)
[   70.426333] imx-dwmac 30bf0000.ethernet eth1: configuring for phy/rgmii-id link mode
[  OK  ] Stopped WPA supplicant.
[  OK  ] Stopped Connection service.
[  OK  ] Stopped target Preparation for Network.
         Stopping D-Bus System Message Bus...
[  OK  ] Stopped IPv6 Packet Filtering Framework.
[  OK  ] Stopped IPv4 Packet Filtering Framework.
[  OK  ] Stopped D-Bus System Message Bus.
[  OK  ] Stopped target Basic System.
[  OK  ] Stopped target Path Units.
[  OK  ] Stopped Dispatch Password �ts to Console Directory Watch.
[  OK  ] Stopped Forward Password R�uests to Wall Directory Watch.
[  OK  ] Stopped target Slice Units.
[  OK  ] Removed slice User and Session Slice.
[  OK  ] Stopped target Socket Units.
[  OK  ] Closed Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Closed D-Bus System Message Bus Socket.
[  OK  ] Closed Docker Socket for the API.
[  OK  ] Closed sshd.socket.
[  OK  ] Closed Syslog Socket.
[  OK  ] Closed Network Service Netlink Socket.
[  OK  ] Closed Weston socket.
[  OK  ] Stopped target System Initialization.
[  OK  ] Stopped Apply Kernel Variables.
[  OK  ] Stopped Update is Completed.
[  OK  ] Stopped Rebuild Dynamic Linker Cache.
[  OK  ] Stopped Rebuild Journal Catalog.
         Stopping Record System Boot/Shutdown in UTMP...
[  OK  ] Stopped Record System Boot/Shutdown in UTMP.
[  OK  ] Stopped Create Volatile Files and Directories.
[  OK  ] Stopped target Local File Systems.
         Unmounting /run/credentials/systemd-sysusers.service...
         Unmounting /run/media/BOOT-mmcblk1p1...
         Unmounting /run/media/ROOTFS-mmcblk1p2...
         Unmounting /run/media/boot-mmcblk2p1...
         Unmounting /run/media/rfs-mmcblk2p2...
         Unmounting Temporary Directory /tmp...
         Unmounting /var/volatile...
[  OK  ] Unmounted /run/credentials/systemd-sysusers.service.
[  OK  ] Unmounted /run/media/BOOT-mmcblk1p1.
[  OK  ] Unmounted /run/media/ROOTFS-mmcblk1p2.
[  OK  ] Unmounted /run/media/boot-mmcblk2p1.
[  OK  ] Unmounted /run/media/rfs-mmcblk2p2.
[  OK  ] Unmounted Temporary Directory /tmp.
[  OK  ] Unmounted /var/volatile.
[  OK  ] Stopped target Swaps.
[  OK  ] Reached target Unmount All Filesystems.
[  OK  ] Stopped File System Check on /dev/mmcblk1p1.
[  OK  ] Stopped File System Check on /dev/mmcblk1p2.
[  OK  ] Stopped File System Check on /dev/mmcblk2p1.
[  OK  ] Stopped File System Check on /dev/mmcblk2p2.
[  OK  ] Removed slice Slice /system/systemd-fsck.
[  OK  ] Stopped target Preparation for Local File Systems.
[  OK  ] Stopped Create Static Device Nodes in /dev.
[  OK  ] Stopped Create System Users.
[  OK  ] Stopped Remount Root and Kernel File Systems.
[  OK  ] Reached target System Shutdown.
[  OK  ] Reached target Late Shutdown Services.
[  OK  ] Finished System Power Off.
[  OK  ] Reached target System Power Off.
[   71.611202] systemd-shutdown[1]: Syncing filesystems and block devices.
[   71.618037] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
[   71.638046] systemd-journald[204]: Received SIGTERM from PID 1 (systemd-shutdow).
[   71.646674] audit: type=1335 audit(1651167807.988:3): pid=204 uid=0 auid=4294967295 tty=(none) ses=4294967295 comm="systemd-journal" exe="/lib/systemd/systemd-journald" nl-mcgrp=1 op=disconnect res=1
[   71.669846] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
[   71.687907] systemd-shutdown[1]: Unmounting file systems.
[   71.694224] systemd-shutdown[1]: All filesystems unmounted.
[   71.699845] systemd-shutdown[1]: Deactivating swaps.
[   71.704888] systemd-shutdown[1]: All swaps deactivated.
[   71.710192] systemd-shutdown[1]: Detaching loop devices.
[   71.720619] systemd-shutdown[1]: All loop devices detached.
[   71.726493] systemd-shutdown[1]: Stopping MD devices.
[   71.737915] systemd-shutdown[1]: All MD devices stopped.
[   71.743376] systemd-shutdown[1]: Detaching DM devices.
[   71.751884] systemd-shutdown[1]: All DM devices detached.
[   71.757402] systemd-shutdown[1]: All filesystems, swaps, loop devices, MD devices and DM devices detached.
[   71.859992] systemd-shutdown[1]: Syncing filesystems and block devices.
[   71.866731] systemd-shutdown[1]: Powering off.
[   71.871211] kvm: exiting hardware virtualization
[   71.926560] reboot: Power down




Development[edit | edit source]

Synchronizing the repository[edit | edit source]

In DESK-MX8M-L, the following source trees are clones of the correspondent DAVE Embedded Systems git repositories:

Component GIT Remote
MX8 mkimage git@git.dave.eu:desk-mx-l/desk-mx8-mkimage/desk-mx8-mkimage.git
U-Boot git@git.dave.eu:desk-mx-l/u-boot-imx.git
Linux kernel git@git.dave.eu:desk-mx-l/linux-imx.git
Yocto BSP git@git.dave.eu:desk-mx-l/desk-mx-l-bsp.git

For more information about the access to these repositories, please refer to this link.

Access to DAVE Embedded Systems' git repositories is granted to the development kit's owners only. Please refer to this page for detailed instructions on how to get access.

Instructions[edit | edit source]

The components listed in the table above can be kept in sync and up to date with DAVE Embedded Systems' repositories.

Once the git account has been enabled, the developer can:

  • clone the repository with the git clone <git_remote_repository> -b desk-mx8m-l-4.0.0 command
  • synchronize a source tree entering the repository directory and launching the git fetch origin command.

Please note that git fetch doesn't merge the commits on the current branch. To do that, the developer should run the git merge command or replace the fetch-merge process with a single git pull command. Please note that the recommended method is the fetch-merge process. For further information on Git, please refer to the official Git Documentation



Building Boot Image[edit | edit source]

200px-Emblem-important.svg.png

The following procedure may be used just during the development stage (as an example, for modifying and testing just some part of the overall binary like u-boot).

The Yocto build should be used for creating the deployment or production binary artifacts.

Quick reference[edit | edit source]

Repository Information
URL git@git.dave.eu:desk-mx-l/desk-mx8-mkimage.git
stable branch desk-mx8m-l-4.x.x
stable tag desk-mx8m-l-4.0.0

i.MX8 Boot Image[edit | edit source]

The System Controller Unit (SCU) represents the evolution of centralized control for system-level resources on i.MX8. The heart of the system controller is a Cortex-M4 that executes System Controller Firmware. The SCF is an essential part of the i.MX8 architecture. Please find more information about SCF here.

TF-A binary bl31.bin, scfw_tcm.bin and u-boot.bin are combined together to generate a binary file called flash.bin; the imx-mkimage tool is used to generate flash.bin which will be flashed into the bootable storage device.

In the following paragraphs we will explain how to get or build those binaries to be combined in a single binary to be flashed in the bootable storage device.

Prepare environment[edit | edit source]

It is assumed that the development environment has been set up properly as described here.

  • start the Linux development VM and login into the system
  • open a terminal window and cd into desk-mx8-mkimage directory
dvdk@vagrant:~$ cd desk-mx-l/desk-mx8-mkimage
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$
  • in case of needs you can update your local repository with the following git command
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ git pull
  • configure the build environment
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ source ~/desk-mx-l/desk-mx8m-l-4.0.0_env.sh 

Build U-Boot[edit | edit source]

First step is to build U-Boot binaries: the same instructions can be found in the dedicated wiki page

dvdk@vagrant:~$ cd ~/desk-mx-l/desk-mx8-mkimage/u-boot-imx/
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$
  • select the proper defconfig and start the make compilation

For ORCA SOM:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ make imx8mp_mito8mplus_defconfig
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ make -j$(nproc)

For MITO 8M Mini SOM:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ make imx8mm_mito8mmini_defconfig
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ make -j$(nproc)

This steps produce the u-boot-spl.bin and u-boot.bin files used at the last step.

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ ls -la spl/u-boot-spl.bin
-rwxrwxr-x 1 dvdk dvdk 94328 Feb 17 14:56 spl/u-boot-spl.bin
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ ls -la u-boot.bin
-rw-rw-r-- 1 dvdk dvdk 861312 Feb 17 14:55 u-boot.bin
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/u-boot-imx$ 

Build ATF[edit | edit source]

This process builds the ARM Trusted Firmware: please find more information here

dvdk@vagrant:~$ cd ~/desk-mx-l/desk-mx8-mkimage/imx-atf/
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/imx-atf$
  • for building the ATF, the following var has to be unset
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/imx-atf$ unset LDFLAGS

Then, build the TF-A binary for the selected platform.

For ORCA SOM:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/imx-atf$ make PLAT=imx8mp bl31

For MITO 8M Mini SOM:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage/imx-atf$ make PLAT=imx8mm bl31

Get i.MX firmware[edit | edit source]

This will download the binary archive, accept EULA automatically (you must agree with that) and extract the archive itself

dvdk@vagrant:~$ cd ~/desk-mx-l/desk-mx8-mkimage/
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ ./fetch_firmware.sh 
--2023-07-24 15:25:21--  https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.18.bin
Resolving www.nxp.com (www.nxp.com)... 104.87.170.182
Connecting to www.nxp.com (www.nxp.com)|104.87.170.182|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1513050 (1.4M) [application/octet-stream]
Saving to: ‘firmware-imx-8.18.bin’

firmware-imx-8.18.bin                                       100%[=========================================================================================================================================>]   1.44M  --.-KB/s    in 0.05s   

2023-07-24 15:25:21 (31.1 MB/s) - ‘firmware-imx-8.18.bin’ saved [1513050/1513050]

Welcome to NXP firmware-imx-8.18.bin

WARNING: EULA has been auto-accepted; this implies that you agree with it.
Unpacking file ................................................................................ done
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$

Generate Boot image[edit | edit source]

After building all pieces of software, create the flash.bin boot Image running:

./${BOARD}_generate_flash.bin

where BOARD is: imx8mp-mito8mplus or imx8mm-mito8mmini

For ORCA SOM:

dvdk@vagrant:~$ cd ~/desk-mx-l/desk-mx8-mkimage/
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ ./imx8mp-mito8mplus_generate_flash.bin 
Compiling mkimage_imx8
PLAT=imx8mp HDMI=no
Compiling mkimage_imx8
gcc  -O2 -pipe -g -feliminate-unused-debug-types  mkimage_imx8.c -o mkimage_imx8 -lz
23582+0 records in
23582+0 records out
94328 bytes (94 kB, 92 KiB) copied, 0.0379032 s, 2.5 MB/s
./../scripts/dtb_check.sh imx8mp-evk.dtb evk.dtb
Use u-boot DTB: imx8mp-evk.dtb
./../scripts/pad_image.sh tee.bin
...
...
...
...
========= OFFSET dump =========
Loader IMAGE:
 header_image_off 	0x0
 dcd_off 		0x0
 image_off 		0x40
 csf_off 		0x2b800
 spl hab block: 	0x91ffc0 0x0 0x2b800

Second Loader IMAGE:
 sld_header_off 	0x58000
 sld_csf_off 		0x59020
 sld hab block: 	0x401fcdc0 0x58000 0x1020

******************************
******************************

flash.bin generated successfully
write it on a SD card with
dd if=flash.bin of=/dev/sdX bs=1k seek=32 conv=fsync

******************************
******************************
dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ 

For MITO M8M Mini SOM:

./imx8mm-mito8mmini_generate_flash.bin 

Binary files can be copied to the tftp root directory /tftpboot/desk-mx-l/ with the following command:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ cp flash.bin /tftpboot/desk-mx8m-l/desk-mx8m-l-4.0.0-rc2_imx8mp_flash.bin

For ORCA SOM:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ cp flash.bin /tftpboot/desk-mx8m-l/desk-mx8m-l-4.0.0_imx8mp_flash.bin

For MITO 8M Mini SOM:

dvdk@vagrant:~/desk-mx-l/desk-mx8-mkimage$ cp flash.bin /tftpboot/desk-mx8m-l/desk-mx8m-l-4.0.0_imx8mm_flash.bin

Please refer to this page for more information on how to update the bootloader on your board.



Building Linux[edit | edit source]

Quick reference[edit | edit source]

Repository Information
URL git@git.dave.eu:desk-mx-l/linux-imx.git
stable branch desk-mx8m-l-4.x.x
stable tag desk-mx8m-l-4.1.0

Build Information
defconfig imx_v8_defconfig
Kernel binary Image
Device trees Platform DTB
SBC AXEL imx8mm-mito8mmini-cb100a.dts
SBC ORCA imx8mp-mito8mplus-cb1008.dts

Instructions[edit | edit source]

It is assumed that the development environment has been set up properly as described here.

  • start the Linux development VM and login into the system
  • open a terminal window and cd into linux directory
dvdk@vagrant:~$ cd ~/desk-mx-l/linux
dvdk@vagrant:~/desk-mx-l/linux$
  • in case of needs you can update your local repository with the following git command
dvdk@vagrant:~/desk-mx-l/linux$ git pull
  • configure the build environment
dvdk@vagrant:~/desk-mx-l/linux$ source ~/desk-mx-l/desk-mx8m-l-4.0.0_env.sh 
  • enter the source tree directory and run the following commands:
dvdk@vagrant:~/desk-mx-l/linux$ make imx_v8_defconfig
dvdk@vagrant:~/desk-mx-l/linux$ make -j$(nproc) Image modules freescale/imx8mm-mito8mmini-cb100a.dtb freescale/imx8mp-mito8mplus-cb1008.dtb

NOTE: this is the default configuration suitable for the latest target.

The former command selects the default DESK-MX8M-L configuration, while the latter builds the kernel binary image with the required U-Boot header and the kernel device tree.

Default Linux kernel configuration can be changed by using the standard menuconfig, xconfig, or gconfig make target. Subsequent builds just require Image make target to update the binary image. Once the build process is complete, the kernel binary image is stored into the arch/arm64/boot/Image file. Both this file and the kernel device tree can be copied to the tftp root directory /tftpboot/desk-mx-l/ with the following commands:

dvdk@vagrant:~/desk-mx-l/linux$ cp arch/arm64/boot/Image /tftpboot/desk-mx8m-l/
dvdk@vagrant:~/desk-mx-l/linux$ cp arch/arm64/boot/dts/freescale/*.dtb /tftpboot/desk-mx8m-l/

Usually, kernel modules are installed with make modules_install command, but this method installs the modules into the /lib/modules directory of your MVM, which is not what you want.

A better way to deploy kernel modules while cross-compiling is

  • generate a .tar.gz archive
  • install this archive into the target root file system

User can create such an archive, for example, using the following commands:

dvdk@vagrant:~/desk-mx-l/linux$ mkdir modules-install
dvdk@vagrant:~/desk-mx-l/linux$ make INSTALL_MOD_PATH=modules-install modules_install
dvdk@vagrant:~/desk-mx-l/linux$ cd modules-install
dvdk@vagrant:~/desk-mx-l/linux/modules-install$ tar cvzf ../modules.tar.gz . && cd ..
dvdk@vagrant:~/desk-mx-l/linux$ 

Now copy modules.tar.gz into the target root file system and install them as root with the following command

root@desk-mx8mp:~# tar xvzf modules.tar.gz -C /


Building the Yocto BSP[edit | edit source]

Quick reference[edit | edit source]

Repository Information
Repository Yocto BSP Layer
URL git@git.dave.eu:desk-mx-l/meta-desk-mx.git
stable branch desk-mx8m-l-4.x.x
stable tag desk-mx8m-l-4.1.0
Build targets
Name Description
dave-image-devel This image include tools for development/debugging
desk-image-qt6 This image include a Qt6 graphic backend on framebuffer

Introduction[edit | edit source]

As known, in addition to a bootloader and the o.s. kernel, an embedded Linux system needs a root file system to operate. The root file system must contain everything needed to support the Linux system (applications, settings, data, etc.). The root file system is the file system that is contained on the same partition on which the root directory is located. The Linux kernel, at the end of its startup stage, mounts the root file system on the configured root device and finally launches the /sbin/init, the first user space process and "father" of all the other processes. For more information on the Linux filesystem, please refer to http://www.thegeekstuff.com/2010/09/linux-file-system-structure/.

DESK-MX8M-L provides one (or more) pre-built root file system, that can be used during the evaluation/development/deployment cycle. For instance, the root file system included in the desk-mx8m-l-4.x.x-image-devel image is suited for the development phase, since it provides a relatively rich set of packages including tools and libraries used to debug the application code. The pre-built root file systems are located here: /home/dvdk/<target_name>/rfs/<kit_name>/.

Besides the pre-built root file systems, DAVE also provides a rich repository containing pre-built applications and libraries. These packages can be easily installed on the target by using the apt-get tool. Please refer to this application note for more details.

To generate the supported root file systems, the build of the Yocto BSP has to be run. The output of this process is an image containing the U-Boot binary file, the Linux kernel image, and the selected root file system image. The following sections describe in detail how to execute this operation.

For more general information regarding the Yocto build system, please refer the dedicated category page.

How to build the Yocto BSP images including the U-Boot binary file, the Linux kernel image, and the target root file system image with KAS[edit | edit source]

200px-Emblem-important.svg.png

The following procedure requires the access to the DAVE Embedded Systems' git repositories. The access to such repositories is granted to development kit's owners only. Please refer to this page for detailed instructions on how to get it.


200px-Emblem-important.svg.png

This process requires a lot of hardware resources in terms of disk storage, RAM, and processing power. For this reason, it also is recommended to consider the use of a physical machine. For more details on this topic, please refer to the NXP documentation on this BSP, i.e. the i.MX Yocto Project User's Guide, which talks about the host setup for the Yocto build system.

Initialize the build environment[edit | edit source]

Check that the following packages are install:

dvdk@vagrant:~$ sudo apt-get update && sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool

Before running the build, the KAS environment must be initialized properly.

dvdk@vagrant:~$ virtualenv -p /usr/bin/python3 venv
created virtual environment CPython3.8.10.final.0-64 in 351ms
  creator CPython3Posix(dest=/home/dooraim/venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/dooraim/.local/share/virtualenv)
    added seed packages: pip==24.0, setuptools==69.1.1, wheel==0.42.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
dvdk@vagrant:~$ source venv/bin/activate
(venv) dvdk@vagrant:~$ pip3 install kas==4.2
Collecting kas==4.2
  Downloading kas-4.2.tar.gz (39 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting PyYAML<7,>=3.0 (from kas==4.2)
  Using cached PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting distro<2,>=1.0.0 (from kas==4.2)
  Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
Collecting jsonschema<5,>=2.5.0 (from kas==4.2)
  Using cached jsonschema-4.21.1-py3-none-any.whl.metadata (7.8 kB)
Collecting kconfiglib<15,>=14.1.0 (from kas==4.2)
  Downloading kconfiglib-14.1.0-py2.py3-none-any.whl.metadata (39 kB)
Collecting attrs>=22.2.0 (from jsonschema<5,>=2.5.0->kas==4.2)
  Using cached attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting importlib-resources>=1.4.0 (from jsonschema<5,>=2.5.0->kas==4.2)
  Downloading importlib_resources-6.4.0-py3-none-any.whl.metadata (3.9 kB)
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema<5,>=2.5.0->kas==4.2)
  Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl.metadata (3.0 kB)
Collecting pkgutil-resolve-name>=1.3.10 (from jsonschema<5,>=2.5.0->kas==4.2)
  Using cached pkgutil_resolve_name-1.3.10-py3-none-any.whl.metadata (624 bytes)
Collecting referencing>=0.28.4 (from jsonschema<5,>=2.5.0->kas==4.2)
  Downloading referencing-0.34.0-py3-none-any.whl.metadata (2.8 kB)
Collecting rpds-py>=0.7.1 (from jsonschema<5,>=2.5.0->kas==4.2)
  Using cached rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
Collecting zipp>=3.1.0 (from importlib-resources>=1.4.0->jsonschema<5,>=2.5.0->kas==4.2)
  Downloading zipp-3.18.1-py3-none-any.whl.metadata (3.5 kB)
Downloading distro-1.9.0-py3-none-any.whl (20 kB)
Using cached jsonschema-4.21.1-py3-none-any.whl (85 kB)
Downloading kconfiglib-14.1.0-py2.py3-none-any.whl (145 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 145.9/145.9 kB 12.2 MB/s eta 0:00:00
Using cached PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (736 kB)
Using cached attrs-23.2.0-py3-none-any.whl (60 kB)
Downloading importlib_resources-6.4.0-py3-none-any.whl (38 kB)
Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl (18 kB)
Using cached pkgutil_resolve_name-1.3.10-py3-none-any.whl (4.7 kB)
Downloading referencing-0.34.0-py3-none-any.whl (26 kB)
Using cached rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
Downloading zipp-3.18.1-py3-none-any.whl (8.2 kB)
Building wheels for collected packages: kas
  Building wheel for kas (pyproject.toml) ... done
  Created wheel for kas: filename=kas-4.2-py3-none-any.whl size=57786 sha256=919ab9cedc442039708d8846f9fb02e8b43d823cb54d8785737bf46361c594a6
  Stored in directory: /home/dooraim/.cache/pip/wheels/5f/47/a7/e9a292a85a88f96c6b3d834d5e9aceb6927ae2e2b89b123ecb
Successfully built kas
Installing collected packages: zipp, rpds-py, PyYAML, pkgutil-resolve-name, kconfiglib, distro, attrs, referencing, importlib-resources, jsonschema-specifications, jsonschema, kas
Successfully installed PyYAML-6.0.1 attrs-23.2.0 distro-1.9.0 importlib-resources-6.4.0 jsonschema-4.21.1 jsonschema-specifications-2023.12.1 kas-4.2 kconfiglib-14.1.0 pkgutil-resolve-name-1.3.10 referencing-0.34.0 rpds-py-0.18.0 zipp-3.18.1
(venv) dvdk@vagrant:~$

then, fetch the meta-desk-mx repositories with the proper branch:

(venv) dvdk@vagrant:~/desk-mx-l/yocto$ git clone git@git.dave.eu:desk-mx-l/meta-desk-mx.git -b refs/tags/desk-mx8m-l-4.1.0

Running the build[edit | edit source]

Please note that even the basic root file system requires a few hours to build on a mid/hi range desktop (4-6 cores, 8-12 GiB RAM) also depending on your Internet connection speed (all sources are fetched from the network). Nearly 20GiB of disk space is required for the build. The process may be slowed down significantly since the performances of a virtual machine are reduced if compared to the physical hardware. Thus, it's recommended to check the hardware capabilities of the host system and, when building with Yocto is required, to consider the following options:

  • Migrating the build system to a physical machine
  • Assuming that the host system has the required resources, extending the hardware capabilities of the default MVM (e.g. adding more cores and disk space).

Once completed the initialization phase, developers can launch the Yocto image build with KAS, with the following commands:

  • for build dave-image-devel image with DESK-MX8MM-L machine
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ kas build desk-mx8mm-l_devel.yml
  • for build dave-image-devel image with DESK-MX8MM-L machine with support of MULTILIB-LIB32
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ kas build desk-mx8mm-l_devel_multilib.yml
  • for build dave-image-devel image with DESK-MX8MP-L machine
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ kas build desk-mx8mp-l_devel.yml

Where dave-image-devel is one of the images listed in here.

Once the build process is completed, the resulting files (the U-Boot binaries, the Linux kernel image, the device tree blob, the .tar.gz compressed root file system image, etc.) will be available in build/tmp/deploy/images/<machine_name>.

Generating the SDKs[edit | edit source]

In way to get the corresponding SDK for QT6, perform the following command:

  • for DESK-MX8MM-L machine
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ KAS_TASK="populate_sdk" kas build desk-mx8mm-l_qt6.yml
  • for DESK-MX8MP-L machine
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ KAS_TASK="populate_sdk" kas build desk-mx8mp-l_qt6.yml

Generating the Toolchain[edit | edit source]

Toolchain can be created by the following command:

  • for DESK-MX8MM-L machine
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ KAS_TARGET="meta-toolchain" kas build desk-mx8mm-l_devel.yml
  • for DESK-MX8MM-L machine with support of MULTILIB-LIB32
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ KAS_TARGET="meta-toolchain" kas build desk-mx8mm-l_devel_multilib.yml
  • for DESK-MX8MP-L machine
(venv) dvdk@vagrant:~/desk-mx-l/yocto$ KAS_TARGET="meta-toolchain" kas build desk-mx8mp-l_devel.yml

Building additional packages[edit | edit source]

To build additional packages, for example memtester the user need to perform the following command

(venv) dvdk@vagrant:~/desk-mx-l/yocto$ KAS_TARGET="memtester" kas build desk-mx8mm-l_devel.yml

The resulting packages (the default format is deb) can be found inside build/tmp/deploy/deb.



How to create a bootable SD card[edit | edit source]

This article shows how to (re)create the bootable SD card, from the binary images produced by the DESK-MX-L Yocto build, using a standard SD image flasher like balenaEtcher

The process is relatively straightforward: it consists of writing the WIC file of interest generated by Yocto onto the SD card. The following instruction explains how to use balenaEtcher on a Windows host. The procedure is similar when working with a Linux host.

  • download the desired binary image to flash (*.wic or *.wic.bz2) from the mirror binary server selecting the proper DESK-MX8M-L release
    • among the binaries made available in the mirror there are several *.wic.bz2 files for the available releases. In particular, there is the dave-image-devel-desk-mx8mp.wic.bz2 (for ORCA) or dave-image-devel-desk-mx8mm.wic.bz2 (for MITO8M Mini) files. This image is the one used to program the microSD card delivered along with the evaluation kit.
  • connect the microSD card to the PC Host
  • open balenaEtcher tool
  • once the tool is open:
    • select the binary to flash by clicking on "Flash from file"
    • select the microSD to flash by clicking on "Select target"
    • flash the uSD by clicking o "Flash".
Unpacking
Flashing
Validating

SD card structure[edit | edit source]

The created SD card has the following structure:

  • raw sectors for the bootloader storage: tipically this is a 8MB raw part where storing the bootloader binaries (like imx8mp_flash.bin) for the bootrom startup
  • FAT32 first partition: this will be mapped to the /dev/mmcblk1p1 device in Linux
    • usually this partition contains the Linux kernel binary and the device tree blob
    • the splash screen image is stored in this partition too for a splash image showing during U-Boot startup
  • ext4 second partition: this will be mapped to the /dev/mmcblk1p2 device in Linux
    • this partition contains the Linux root file system

Creating the SD card from binary artifacts[edit | edit source]

Even if the overall binary artifacts have been created by the Yocto build, it is highly discouraged to manually create the SD card starting from them.

The Yocto build take care about the overall binary consistance (like kernel modules and so on) avoiding to mistmatch different version.

Moreover, the SD card is intended to be used during the development process and not for the production phase (where other deployment specifications and details have to be taken into account).




Hello World example[edit | edit source]

Here below an example on C code displaying the classic Hello World! message on the target serial console.

This example shows how to use the arm cross-compiler using the environment configured for this purpose

Setting the cross-compiler[edit | edit source]

  • start the Linux development VM and login into the system
  • open a terminal window and cd into your source code directory
dvdk@vagrant:~$ mkdir -p ~/myproject
dvdk@vagrant:~$ cd ~/myproject/
dvdk@vagrant:~/myproject$ vi hello.c
dvdk@vagrant:~/myproject$ cat hello.c 
#include <stdio.h>

int main(){
        printf("Hello, World!\n");
        return 0;
}
  • configure the build environment
dvdk@vagrant:~/myproject$ source /home/dvdk/desk-mx-l/desk-mx8m-l-4.0.0_env.sh
  • as you can see here below, the $CC environment variable has been properly configured for using the SDK sysroot parameter:
dvdk@vagrant:~/myproject$ echo $CC
aarch64-poky-linux-gcc -march=armv8-a+crc+crypto -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/yocto/sdk/desk-mx8m-l/desk-mx8m-l-4.0.0/sysroots/armv8a-poky-linux
dvdk@vagrant:~/myproject$ 
  • invoke the cross-compiler for compiling your source code example: the object file obtained, is a proper ELF 64-bit for the target microprocessor
dvdk@vagrant:~/myproject$ $CC hello.c -o hello
dvdk@vagrant:~/myproject$ file hello
hello: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=a7220d78ac1016774b614ce1d50adae71cd713a3, for GNU/Linux 3.14.0, with debug_info, not stripped
dvdk@vagrant:~/myproject$

Running the example on the target[edit | edit source]

Now it is enough to copy the object file in the /home/root rfs directory and boot from nfs...

dvdk@vagrant:~/myproject$ sudo cp hello /home/dvdk/desk-mx-l/rfs/desk-mx8m-l-4.0.0/mx8mp/home/root/
dvdk@vagrant:~/myproject$ sudo ls -la /home/dvdk/desk-mx-l/rfs/desk-mx8m-l-4.0.0/mx8mp/home/root/
total 32
drwx------ 3 root root  4096 Jul 25 12:52 .
drwxr-xr-x 4 root root  4096 Mar  9  2018 ..
-rwxr-xr-x 1 root root 13928 Jul 25 12:52 hello
drwxr-xr-x 7 root root  4096 Mar  9  2018 .nxp-demo-experience
-rw-r--r-- 1 root root  1011 Mar  9  2018 .profile
dvdk@vagrant:~/myproject$ 

on the target:

...
...
...
[  OK  ] Reached target Multi-User System.
[  OK  ] Started Weston, a Wayland .|mpositor, as a system service.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Started Hostname Service.
[  OK  ] Started WPA supplicant.
[  OK  ] Finished Record Runlevel Change in UTMP.

NXP i.MX Release Distro 5.15-kirkstone desk-mx8mp ttymxc1

desk-mx8mp login: root
root@desk-mx8mp:~#
root@desk-mx8mp:~# ls -la
total 44
drwx------ 3 root root  4096 Jul 25 10:56 .
drwxr-xr-x 4 root root  4096 Mar  9  2018 ..
-rw------- 1 root root  8362 Jul 25 10:53 .bash_history
drwxr-xr-x 7 root root  4096 Mar  9  2018 .nxp-demo-experience
-rw-r--r-- 1 root root  1011 Mar  9  2018 .profile
-rwxr-xr-x 1 root root 13928 Jul 25 10:55 hello
root@desk-mx8mp:~# ./hello 
Hello, World!
root@desk-mx8mp:~#




Package management with apt-get[edit | edit source]

Since NXP BSP 5.4.24 Yocto release, apt-get has been added as a package manager for installing packages in the DUT (target machine).

As reported by NXP official documentation:

The default package management with Yocto Project is rpm. The i.MX distro now enables debian as the package management. This can be easily turned off by add PACKAGE_CLASSES_* set to package_rpm to the local.conf (or creating a custom distro without the debian package feed PACKAGE_CLASSES = "package_rpm".
With the addition of the debian package feed, a sources.list can be added /etc/apt that links in Debian's package feed. This allows users to install packages not provided in the image without having to add them to a yocto image. Because this package feed is not generated by the i.MX Yocto build process, there is no guarantee each package will work with the right dependencies but it allows simpler tools to be provided. Software that is complex and has more dependencies on specific versions might have issues with an external package feed.

apt-get performs runtime package management of .deb packages. In order to use apt-get for runtime package management, you must perform an initial setup on the target machine for cases where the PACKAGE_FEED_* variables were not set as part of the image that is running on the target.

In principle, the adoption of the Debian package management should allow to use prebuilt package archives available for Debian distributions. However, close attention should be paid when mixing packages of different distributions. For instance, Debian packages installed on a Yocto file system could not work. Even worse, they could interfere with existing packages and make these unusable.

This Application Note (AN) describes a way to apply the approach illustrated here to a Yocto distribution that makes use of Debian packetization. In other words, a local archive of Yocto-generated, prebuilt .deb packages is used in combination with the well known apt-get utility.

apt-get[edit | edit source]

The following instructions detail how to use apt-get for installing packages with Yocto repositories created by DAVE's build system for DESK-MX8M-L.

Configuring apt for SBC-ORCA[edit | edit source]

Edit the file /etc/apt/apt.conf like this:

root@desk-mx8mp:~# cat /etc/apt/apt.conf
APT::Architecture "arm64";
APT::Get::AllowUnauthenticated "true";
Acquire::Languages "none";

Edit the file /etc/apt/sources.list.d/debian-10.list like this:

root@desk-mx8mp:~# cat /etc/apt/sources.list.d/debian-10.list
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ all/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ armv8a/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ armv8a-mx8mp/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ desk_mx8mp/

Execute the following commands in order to re-create the apt cache based on the new server's list:

rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
root@desk-mx8mp:~# rm -rf /var/lib/apt/lists/*
root@desk-mx8mp:~# apt-get clean
root@desk-mx8mp:~# apt-get update
Ign:1 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ InRelease
Ign:2 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mp/ InRelease
Ign:3 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mp/ InRelease
Get:4 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Release [1215 B]
Get:5 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mp/ Release [1224 B]
Get:6 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mp/ Release [1222 B]
Ign:7 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Release.gpg
Ign:8 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mp/ Release.gpg
Ign:9 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mp/ Release.gpg
Get:10 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Packages [174 kB]
Get:11 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mp/ Packages [308 kB]
Get:12 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mp/ Packages [263 kB]
Fetched 749 kB in 1s (866 kB/s)
Reading package lists... Done
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Release (expected all/ but got )
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mp/ Release (expected armv8a-mx8mp/ but got )
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mp/ Release (expected desk_mx8mp/ but got )

Then, modify the cached package list due to the proper DAVE's server configuration:

sed -i 's/\.\//all\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_all_Packages
sed -i 's/\.\//armv8a\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_armv8a_Packages
sed -i 's/\.\//armv8a-mx8mp\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_armv8a-mx8mp_Packages
sed -i 's/\.\//desk%5fmx8mp\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_desk%5fmx8mp_Packages

Configuring apt for SBCX-Mito8MMini[edit | edit source]

Edit the file /etc/apt/apt.conf like this:

root@desk-mx8mm:~# cat /etc/apt/apt.conf
APT::Architecture "arm64";
APT::Get::AllowUnauthenticated "true";
Acquire::Languages "none";

Edit the file /etc/apt/sources.list.d/debian-10.list like this:

root@desk-mx8mm:~# cat /etc/apt/sources.list.d/debian-10.list
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ all/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ armv8a/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ armv8a-mx8mm/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ desk_mx8mm/

Execute the following commands in order to re-create the apt cache based on the new server's list:

rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
root@desk-mx8mm:~# rm -rf /var/lib/apt/lists/*
root@desk-mx8mm:~# apt-get clean
root@desk-mx8mm:~# apt-get update
Ign:1 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ InRelease
Ign:2 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mm/ InRelease
Ign:3 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mm/ InRelease
Get:4 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Release [1215 B]
Get:5 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mm/ Release [1224 B]
Get:6 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mm/ Release [1222 B]
Ign:7 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Release.gpg
Ign:8 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mm/ Release.gpg
Ign:9 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mm/ Release.gpg
Get:10 http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Packages [174 kB]
Get:11 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mm/ Packages [304 kB]
Get:12 http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mm/ Packages [259 kB]
Fetched 740 kB in 1s (714 kB/s)
Reading package lists... Done
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 all/ Release (expected all/ but got )
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a/ Release (expected armv8a/ but got )
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mm/ Release (expected armv8a-mx8mm/ but got )
W: Conflicting distribution: http://yocto.dave.eu/desk-mx8m-l-4.0.0 desk_mx8mm/ Release (expected desk_mx8mm/ but got )

Then, modify the cached package list due to the proper DAVE's server configuration:

sed -i 's/\.\//all\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_all_Packages
sed -i 's/\.\//armv8a\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_armv8a_Packages
sed -i 's/\.\//armv8a-mx8mm\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_armv8a-mx8mm_Packages
sed -i 's/\.\//desk%5fmx8mm\//g' /var/lib/apt/lists/yocto.dave.eu_desk-mx8m-l-4.0.0_desk%5fmx8mm_Packages

Installing packages on target[edit | edit source]

We assume that network interface has been already configured for Internet access. In any case, a simple network configuration can be done according to the How to configure the network interfaces wiki page.


The target is finally ready to install new packages. The following example shows for instance the installation of graphviz:

root@desk-mx8mp:~# apt-get install graphviz
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  graphviz
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2094 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://yocto.dave.eu/desk-mx8m-l-4.0.0 armv8a-mx8mp/ graphviz 2.50.0-r0 [2094 kB]
Fetched 2094 kB in 1s (1913 kB/s)
Selecting previously unselected package graphviz.
(Reading database ... 81414 files and directories currently installed.)
Preparing to unpack .../graphviz_2.50.0-r0_arm64.deb ...
Unpacking graphviz (2.50.0-r0) ...
Setting up graphviz (2.50.0-r0) ...

Other useful apt commands[edit | edit source]

List of configured software repositories[edit | edit source]

As shown before, the target is configured for accessing the Yocto repositories as listed in the /etc/apt/sources.list.d apt configuration directory:

root@desk-mx8mp:~# cat /etc/apt/sources.list.d/debian-10.list
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ all/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ armv8a-mx8mp/
deb [trusted=yes] http://yocto.dave.eu/desk-mx8m-l-4.0.0/ desk_mx8mp/

Search for packages[edit | edit source]

To search for an available package into the current configured channels use apt-cache search

Please note that this will show all packages, it's usually more useful to grep for a pattern, e.g.:

root@desk-mx8mp:~# apt-cache search vim
vim - Vi IMproved - enhanced vi editor
vim-common - Vi IMproved - enhanced vi editor
vim-help - Vi IMproved - enhanced vi editor
vim-syntax - Vi IMproved - enhanced vi editor
vim-tutor - Vi IMproved - enhanced vi editor
vim-vimrc - Vi IMproved - enhanced vi editor

List of installed packages[edit | edit source]

User can see the list of installed packages with dpkg --get-selections | sed 's:install$::' (sed removes the install string from the output list)

acl
acl-dev
adwaita-icon-theme-symbolic
alsa-conf
alsa-state
alsa-states
alsa-tools
alsa-utils
alsa-utils-aconnect
alsa-utils-alsactl
alsa-utils-alsaloop
alsa-utils-alsamixer
alsa-utils-alsatplg
...
[snip]
...
volatile-binds-dev
wayland
wayland-dev
which
which-dev
wireless-regdb-static
wireless-tools
wpa-supplicant
wpa-supplicant-cli
wpa-supplicant-passphrase
xinetd
xz
xz-dev



Deployment[edit | edit source]

Boot from different storage devices[edit | edit source]

ORCA and MITO 8M Mini SOMs are designed to support different bootable storage devices.

The i.MX8M Plus and i.MX8M Mini/Nano SoCs support different boot modes. DAVE Embedded Systems SOM designs simplify and provide the following boot mode options:

The usage of NOR flash memories, NAND devices and eMMC devices can be chosen with regard to the reliability. This is especially true when the NAND flash is used as the boot device. Several techniques such as wear leveling and bad block management have to be implemented to achieve an acceptable reliability.

Please check the ORCA or MITO 8M Mini P/N composition page for the storage devices available on the SOMs or contact our technical support for more information.



Standalone boot[edit | edit source]

Introduction[edit | edit source]

This document was written and tested with the software/hardware combination described in the history table above. However, it contains general concepts that can be adapted on any DAVE Embedded Systems' Linux platform.


200px-Emblem-important.svg.png

The following programming examples are intended for laboratory usage or for preliminary deployment strategy.

A complete deployment strategy has to be carefully identified taking into account the overall arguments like boot speed, safe boot, recovery mechanisms, watchdog supervisor, etc.


Generally speaking, it is possible to configure a <SOM> to boot in standalone mode, without the need of a system microSD card or an NFS server, for example, with three options:

  • booting with NOR and NAND internal storage
    • in this configuration the primary boot images will be fetched from NOR flash storage, while the root file system will be fetched from NAND flash
  • booting with NAND only
    • in this configuration the whole system will boot without the need of a NOR flash storage, all images and the root file system will be fetched from NAND flash
  • booting with eMMC only
    • in this configuration the whole system will boot without the need of a NOR/NAND flashes storage, all images and the root file system will be fetched from the eMMC flash


200px-Emblem-important.svg.png

In the following paragraphs, we will take into account a real case using an embedded eMMC mounted in the ORCA or MITO 8M Mini SOMs

Program boot images into eMMC[edit | edit source]

The flash.bin Boot Image can be created following the instructions described in the Building Boot Image wiki page, fir example:

Boot binary[edit | edit source]

Load Boot binary form a tftp server:

load='tftpboot ${loadaddr} ${serverip}:${binfile}'
binfile='desk-mx8m-l/imx8mp_flash.bin'
u-boot=> run load
Using ethernet@30be0000 device
TFTP from server 192.168.0.13; our IP address is 192.168.0.90
Filename 'desk-mx8m-l/imx8mp_flash.bin'.
Load address: 0x40480000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ########
         1.8 MiB/s
done
Bytes transferred = 1304608 (13e820 hex)
u-boot=>

or load Boot binary form an SD card:

Hit ENTER within 1 seconds to stop autoboot
u-boot=> fatload mmc 1:1 ${loadaddr} imx8mp_flash.bin
1304608 bytes read in 63 ms (21.4 MiB/s)
u-boot=>

In case of MITO 8M Mini, the name of binary file to upload is imx8mm_flash.bin

ORCA SOM[edit | edit source]

Flash the Boot image[edit | edit source]

Update to the latest Boot image version allows usage of u-boot environment variables available.

mmc_update=mmc dev 2; setexpr blocks ${filesize} / 0x200; setexpr blocks ${blocks} + 1; mmc write ${loadaddr} 40 ${blocks}
u-boot=> run mmc_update 
switch to partitions #0, OK
mmc2(part 0) is current device (eMMC)

MMC write: dev # 2, block # 64, count 2809 ... 2809 blocks written: OK
u-boot=>

MITO 8M Mini[edit | edit source]

Flash the Boot image[edit | edit source]
mmc_update=mmc dev 0; setexpr blocks ${filesize} / 0x200; setexpr blocks ${blocks} + 1; mmc write ${loadaddr} 42 ${blocks}
u-boot=> run mmc_update 
switch to partitions #0, OK
mmc0(part 0) is current device (eMMC)

MMC write: dev # 0, block # 66, count 2748 ... 2748 blocks written: OK
u-boot=>

Configuring the u-boot environment manually[edit | edit source]

Once the Boot Image has been correctly programmed, start the system from eMMC in order to configure/program the u-boot environment variables for a correct boot sequence. U-Boot environment is already set.

kernel image and device tree[edit | edit source]

The following environment variables has to be set (or at least checked) in u-boot; depending on the formatted eMMC partition (FAT32 or ext4), the vars has to be properly modified:

FAT32[edit | edit source]

setenv mmc_loadk 'fatload mmc ${mmcdev}:1 ${loadaddr} ${image}'
setenv mmc_loadfdt 'fatload mmc ${mmcdev}:1 ${fdt_addr} ${fdt}'

ext4[edit | edit source]

setenv mmc_loadk 'ext4load mmc ${mmcdev}:1 ${loadaddr} ${image}'
setenv mmc_loadfdt 'ext4load mmc ${mmcdev}:1 ${fdt_addr} ${fdt}'

Then, u-boot uses the previously listed commands for reading the binary images and starting the Linux file system from the eMMC part 2 (which is reserved for the root-file system storage):

setenv mmcboot 'run mmcargs addcons addmisc; if run mmc_loadk; then if run mmc_loadfdt; then if run configid_fixupfdt; then booti ${loadaddr} - ${fdtaddr}; fi; fi; fi'
setenv mmcargs 'setenv bootargs root=${mmcroot}'
setenv normalboot mmcboot

boot vars[edit | edit source]

The following environment variables should be configured for u-boot properly identify the boot files, e.g.

setenv image Image

ORCA SOM[edit | edit source]

The platform dependent variable have to be properly configured:

  • the proper device tree binary
setenv fdt imx8mp-mito8mplus-cb1001.dtb
  • the eMMC mmcblk device
setenv mmcroot '/dev/mmcblk2p2 rootwait rw'

then save the environment and reboot the system to apply the new configuration:

u-boot=> saveenv
Saving Environment to MMC...
Writing to MMC(2)... done
u-boot=> reset

MITO 8M Mini[edit | edit source]

The platform dependent variable have to be properly configured:

  • the proper device tree binary
setenv fdt imx8mm-mito8mmini-cb100a.dtb
  • the eMMC mmcblk device
setenv mmcroot '/dev/mmcblk0p2 rootwait rw'

then save the environment and reboot the system to apply the new configuration:

u-boot=> saveenv
Saving Environment to MMC...
Writing to MMC(0)... done
u-boot=> reset

Program root file system into eMMC[edit | edit source]

  • boot the system via SD or NFS as described in the e Booting from NFS
  • eMMC device has to be partitioned and properly formatted choosing the file system for each partition
  • an example of SD partitioning script is the following one:


200px-Emblem-important.svg.png

In the following examples, mmcblk2 device is used, we will refer to ORCA SOM. If MITO 8M Mni is used the mmcblk0 block device has to be seleced

Partitioning[edit | edit source]

#!/bin/sh

node=$1

# partition size in MB
BOOTLOAD_RESERVE=8
BOOT_SIZE=2048
RFS_SIZE=4096

# create the SDCARD partition
part=""
echo ${node} | grep mmcblk > /dev/null
if [ "$?" -eq "0" ]; then
        part="p"
fi

# print the SD total capacity
total_size=`sfdisk -s ${node}`
total_size=`expr ${total_size} / 1024`
echo SD total size: ${total_size}KB

# calculate partition sizes
boot_start=`expr ${BOOTLOAD_RESERVE} \\* 1024 \\* 1024 / 512`
boot_size=`expr ${BOOT_SIZE} \\* 1024 \\* 1024 / 512`
rfs_start=`expr ${boot_size} + ${boot_start}`
rfs_size=`expr ${RFS_SIZE} \\* 1024 \\* 1024 / 512`

umount ${node}${part}1 > /dev/null 2>&1
umount ${node}${part}2 > /dev/null 2>&1

# call sfdisk to create partition table
 { echo ${boot_start},${boot_size},83,-; echo ${rfs_start},${rfs_size},83,-; } | sfdisk --force ${node}

# format the SDCARD partition
echo "formatting boot"
mkfs.vfat ${node}${part}1 -n boot
echo "formatting rfs"
mkfs.ext4 -F ${node}${part}2 -Lrfs

E.g.


root@desk-mx8mp:~# ./emmc_partition.sh /dev/mmcblk2
SD total size: 7457KB
[  238.978157]  mmcblk2: p1 p2 p3
Checking that no-one is using this disk right now ... OK

Disk /dev/mmcblk2: 7.29 GiB, 7820083200 bytes, 15273600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbe0f0cf6

Old situation:

Device         Boot    Start      End  Sectors  Size Id Type
/dev/mmcblk2p1         32768   524288   491521  240M  c W95 FAT32 (LBA)
/dev/mmcblk2p2        524289 12058623 11534335  5.5G 83 Linux
/dev/mmcblk2p3      12058624 15273599  3214976  1.5G 83 Linux

>>> Created a new DOS disklabel with disk identifier 0x7b310a69.
/dev/mmcblk2p1: Created a new partition 1 of type 'Linux' and of size 2 GiB.
/dev/mmcblk2p2: Created a new partition 2 of type 'Linux' and of size 4 GiB.
/dev/mmcblk2p3: Done.

New situation:
Disklabel type: dos
Disk identifier: 0x7b310a69

Device         Boot   Start      End Sectors Size Id Type
/dev/mmcblk2p1        16384  4210687 4194304   2G 83 Linux
/dev/mmcblk2p2      4210688 12599295 8388608   4G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
[  239.419641]  mmcblk2: p1 p2
Syncing disks.
formatting boot
mkfs.fat 4.2 (2021-01-31)
mkfs.fat: Warning: lowercase labels might not work properly on some systems
formatting rfs
mke2fs 1.45.3 (14-Jul-2019)
Discarding device blocks: done
Creating filesystem with 1048576 4k blocks and 262144 inodes
Filesystem UUID: aacf8195-ddbd-4fdc-a83e-99f57659367e
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
root@desk-mx8mp:~#
  • create a mount point and mount the first partition
mkdir -p /mnt/emmc
mount /dev/mmcblk2p1 /mnt/emmc
  • copy kernel and dtb files from SD card
root@desk-mx8mp:~# mount /dev/mmcblk2p1 /mnt/emmc
root@desk-mx8mp:~# mkdir -p /mnt/sd
root@desk-mx8mp:~# mount /dev/mmcblk1p1 /mnt/sd
root@desk-mx8mp:~# cp /mnt/sd/* /mnt/emmc/
root@desk-mx8mp:~# umount /mnt/emmc
  • now mount the EXT4 volume in the temporary directory

E.g.:

root@desk-mx8mp:~# mount /dev/mmcblk2p2 /mnt/emmc
root@desk-mx8mp:~# cd /mnt/emmc/
root@desk-mx8mp:/mnt/emmc#
  • you can now extract the root file system into that directory
tar xvjf dave-image-devel-desk-mx8mp.tar.bz2
  • finally, you need to cleanly umount and safely reboot or turn off the system.
root@desk-mx8mp:/mnt/emmc# cd
root@desk-mx8mp:~# umount /mnt/emmc
root@desk-mx8mp:~# reboot

Boot configuration[edit | edit source]

Once the system has been completely programmed, select the eMMC boot mode, reboot the system and configure U-Boot to apply for using the new configuration, i.e. to boot from internal storage:

u-boot=> setenv bootcmd run mmcboot
u-boot=> saveenv
u-boot=> reset

Automatically Boot[edit | edit source]

In DESK-MX8M-L-4.0.0, U-Boot default envirounment has already all command, and variables, to perform boot from eMMC, without apply any manual change to U-Boot environment. If we load binaries from boot partition of uSD to boot partition of eMMC, and if boot partition of eMMC is formatting in FAT32, well, we have the following boot.


U-Boot SPL 2022.04-desk-mx8m-l-4.0.0 (Jul 21 2023 - 14:01:51 +0200)
WARNING: SOM ConfigID on block 0 is UNLOCKED
SOM ConfigID#: 00000005
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, pagesize 0x200, ivt offset 0x0
WARNING: CB ConfigID on block 0 is UNLOCKED
Failed to find node!, err: -1!
Failed to find node!, err: -1!
NOTICE:  BL31: v2.6(release):desk-mx8m-l-4.0.0-rc2-0-g2b811b9b8
NOTICE:  BL31: Built : 19:00:25, Jun 29 2023


U-Boot 2022.04-desk-mx8m-l-4.0.0 (Jul 21 2023 - 14:01:51 +0200), Build: desk-mx8m-l-4.0.0

CPU:   Freescale i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 41C
Reset cause: POR
Model: DAVE i.MX8MPlus on SBC ORCA Rev A
DRAM:  6 GiB
Relocating to fff05000, new gd at fdbffda0, sp at fdbf5350
WARNING: CB ConfigID on block 0 is UNLOCKED
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x50]
SNK.Power1.5 on CC2
PDO 0: type 0, 5000 mV, 500 mA [RSHUDE]
PDO 1: type 0, 9000 mV, 2180 mA []
PDO 2: type 0, 12000 mV, 1880 mA []
PDO 3: type 0, 15000 mV, 1510 mA []
PDO 4: type 0, 20000 mV, 1130 mA []
PDO 5: type 3, undefined
Requesting PDO 2: 12000 mV, 1880 mA
Source accept request
PD source ready!
tcpc_pd_receive_message: Polling ALERT register, TCPC_ALERT_RX_STATUS bit failed, ret = -62
TCPC:  Vendor ID [0x0], Product ID [0x202], Addr [I2C2 0x3d]
Core:  175 devices, 20 uclasses, devicetree: fit
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
Fail to setup video link
In:    serial
Out:   serial
Err:   serial

 BuildInfo:
  - ATF 2b811b9

WARNING: SOM ConfigID on block 0 is UNLOCKED
SOM ConfigID#: 00000005
SOM UniqueID#: 1e261000:55aa2564:469660d3:d0c2b602
CB ConfigID#: 00001008
CB UniqueID#: b7000035:c48de62d
WARNING: SOM ConfigID on block 0 is UNLOCKED
SOM: MX8MP-Mito8MPlus on SBC-ORCA HDMI + LVDStoHDMI
switch to partitions #0, OK
mmc2(part 0) is current device (eMMC)
flash target is MMC:2
Net:   
Warning: ethernet@30bf0000 (eth1) using random MAC address - ea:ec:19:9a:0a:3e

Warning: ethernet@30be0000 (eth0) using random MAC address - ba:28:4b:b7:0d:e5
eth0: ethernet@30be0000, eth1: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  2 ��� 1 ��� 0 
switch to partitions #0, OK
mmc2(part 0) is current device (eMMC)
Failed to load 'boot.scr'
31351296 bytes read in 122 ms (245.1 MiB/s)
Booting from mmc ...
61121 bytes read in 18 ms (3.2 MiB/s)
FDT: override 'som_uniqueid' with '1e261000:55aa2564:469660d3:d0c2b602'
FDT: override 'cb_uniqueid' with 'b7000035:c48de62d'
Moving Image from 0x40480000 to 0x40600000, end=42480000
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 0000000043000000, end 0000000043011fff

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.71-desk-mx8m-l-4.0.0+g50e18a0c8871 (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Thu Jul 20 10:56:49 UTC 2023
[    0.000000] Machine model: i.MX8MPlus Mito8MPlus on SBC Orca - adapter LVDS HDMI
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000c4000000, size 960 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x0000000094300000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@94300000, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x00000001bfffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x1bf43a800-0x1bf43cfff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000001bfffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000557fffff]
[    0.000000]   node   0: [mem 0x0000000055800000-0x0000000055ffffff]
[    0.000000]   node   0: [mem 0x0000000056000000-0x00000000923fffff]
[    0.000000]   node   0: [mem 0x0000000092400000-0x00000000a43fffff]
[    0.000000]   node   0: [mem 0x00000000a4400000-0x00000001bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000001bfffffff]
[    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 20 pages/cpu s41368 r8192 d32360 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1548288
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: console=ttymxc1,115200 root=/dev/mmcblk2p2 rootwait rw
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000c0000000-0x00000000c4000000] (64MB)
[    0.000000] Memory: 4784748K/6291456K available (18688K kernel code, 1560K rwdata, 7244K rodata, 3008K init, 543K bss, 523668K reserved, 983040K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 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] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 160 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[    0.000000] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[    0.000455] Console: colour dummy device 80x25
[    0.000521] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)
[    0.000537] pid_max: default: 32768 minimum: 301
[    0.000595] LSM: Security Framework initializing
[    0.000691] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000720] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.002080] rcu: Hierarchical SRCU implementation.
[    0.003321] EFI services will not be available.
[    0.003519] smp: Bringing up secondary CPUs ...
[    0.003941] Detected VIPT I-cache on CPU1
[    0.003968] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[    0.004002] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.004467] Detected VIPT I-cache on CPU2
[    0.004486] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[    0.004506] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.004922] Detected VIPT I-cache on CPU3
[    0.004943] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[    0.004960] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.005027] smp: Brought up 1 node, 4 CPUs
[    0.005053] SMP: Total of 4 processors activated.
[    0.005061] CPU features: detected: 32-bit EL0 Support
[    0.005065] CPU features: detected: 32-bit EL1 Support
[    0.005075] CPU features: detected: CRC32 instructions
[    0.012530] CPU: All CPU(s) started at EL2
[    0.012565] alternatives: patching kernel code
[    0.014270] devtmpfs: initialized
[    0.022591] KASLR disabled due to lack of seed
[    0.022732] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.022749] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.048412] pinctrl core: initialized pinctrl subsystem
[    0.048904] DMI not present or invalid.
[    0.049473] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.054524] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.055000] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.055563] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.055655] audit: initializing netlink subsys (disabled)
[    0.055855] audit: type=2000 audit(0.052:1): state=initialized audit_enabled=0 res=1
[    0.056416] thermal_sys: Registered thermal governor 'step_wise'
[    0.056421] thermal_sys: Registered thermal governor 'power_allocator'
[    0.056702] cpuidle: using governor menu
[    0.056887] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.056968] ASID allocator initialised with 65536 entries
[    0.058077] Serial: AMBA PL011 UART driver
[    0.058136] imx mu driver is registered.
[    0.058158] imx rpmsg driver is registered.
[    0.069095] imx8mp-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver
[    0.078570] platform 32c00000.bus:ldb@32ec005c: Fixing up cyclic dependency with 32e90000.lcd-controller
[    0.085104] platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
[    0.107321] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.107338] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.107345] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.107353] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.108512] cryptd: max_cpu_qlen set to 1000
[    0.111530] ACPI: Interpreter disabled.
[    0.112295] iommu: Default domain type: Translated 
[    0.112303] iommu: DMA domain TLB invalidation policy: strict mode 
[    0.112463] vgaarb: loaded
[    0.112735] SCSI subsystem initialized
[    0.113036] usbcore: registered new interface driver usbfs
[    0.113072] usbcore: registered new interface driver hub
[    0.113103] usbcore: registered new device driver usb
[    0.114239] mc: Linux media interface: v0.10
[    0.114262] videodev: Linux video capture interface: v2.00
[    0.114335] pps_core: LinuxPPS API ver. 1 registered
[    0.114341] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.114359] PTP clock support registered
[    0.114530] EDAC MC: Ver: 3.0.0
[    0.115626] FPGA manager framework
[    0.115704] Advanced Linux Sound Architecture Driver Initialized.
[    0.116197] Bluetooth: Core ver 2.22
[    0.116223] NET: Registered PF_BLUETOOTH protocol family
[    0.116232] Bluetooth: HCI device and connection manager initialized
[    0.116241] Bluetooth: HCI socket layer initialized
[    0.116248] Bluetooth: L2CAP socket layer initialized
[    0.116263] Bluetooth: SCO socket layer initialized
[    0.117028] clocksource: Switched to clocksource arch_sys_counter
[    0.117165] VFS: Disk quotas dquot_6.6.0
[    0.117306] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.117453] pnp: PnP ACPI: disabled
[    0.123483] NET: Registered PF_INET protocol family
[    0.123725] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.126613] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.126723] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.126741] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.127150] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
[    0.128017] TCP: Hash tables configured (established 65536 bind 65536)
[    0.128120] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.128275] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.128539] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.128966] RPC: Registered named UNIX socket transport module.
[    0.128974] RPC: Registered udp transport module.
[    0.128978] RPC: Registered tcp transport module.
[    0.128985] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.129696] PCI: CLS 0 bytes, default 64
[    0.130342] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.131129] kvm [1]: IPA Size Limit: 40 bits
[    0.132769] kvm [1]: GICv3: no GICV resource entry
[    0.132776] kvm [1]: disabling GICv2 emulation
[    0.132790] kvm [1]: GIC system register CPU interface enabled
[    0.132872] kvm [1]: vgic interrupt IRQ9
[    0.132980] kvm [1]: Hyp mode initialized successfully
[    0.136270] Initialise system trusted keyrings
[    0.136444] workingset: timestamp_bits=42 max_order=21 bucket_order=0
[    0.142443] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.143021] NFS: Registering the id_resolver key type
[    0.143051] Key type id_resolver registered
[    0.143058] Key type id_legacy registered
[    0.143128] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.143135] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.143155] jffs2: version 2.2. (NAND) � 2001-2006 Red Hat, Inc.
[    0.143474] 9p: Installing v9fs 9p2000 file system support
[    0.179192] Key type asymmetric registered
[    0.179201] Asymmetric key parser 'x509' registered
[    0.179249] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.179256] io scheduler mq-deadline registered
[    0.179265] io scheduler kyber registered
[    0.186321] EINJ: ACPI disabled.
[    0.196940] imx-sdma 30bd0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[    0.196961] imx-sdma 30bd0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin
[    0.198702] mxs-dma 33000000.dma-apbh: initialized
[    0.200393] SoC: i.MX8MP revision 1.1
[    0.200971] Bus freq driver module loaded
[    0.207293] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.209656] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 31, base_baud = 5000000) is a IMX
[    0.210132] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 32, base_baud = 5000000) is a IMX
[    0.210528] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 33, base_baud = 1500000) is a IMX
[    1.300270] printk: console [ttymxc1] enabled
[    1.319984] loop: module loaded
[    1.324570] megasas: 07.717.02.00-rc1
[    1.329980] imx ahci driver is registered.
[    1.335857] SPI driver spidev has no spi_device_id for spidev
[    1.341618] SPI driver spidev has no spi_device_id for dave,sbcx-exp
[    1.352148] tun: Universal TUN/TAP device driver, 1.6
[    1.357386] CAN device driver interface
[    1.362621] thunder_xcv, ver 1.0
[    1.365889] thunder_bgx, ver 1.0
[    1.369150] nicpf, ver 1.0
[    1.374410] hclge is initializing
[    1.377750] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    1.384981] hns3: Copyright (c) 2017 Huawei Corporation.
[    1.390352] e1000: Intel(R) PRO/1000 Network Driver
[    1.395238] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.401033] e1000e: Intel(R) PRO/1000 Network Driver
[    1.406003] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.411973] igb: Intel(R) Gigabit Ethernet Network Driver
[    1.417378] igb: Copyright (c) 2007-2014 Intel Corporation.
[    1.422983] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.429261] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.435379] sky2: driver version 1.30
[    1.439749] usbcore: registered new interface driver r8152
[    1.445496] VFIO - User Level meta-driver version: 0.3
[    1.456312] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.462921] ehci-pci: EHCI PCI platform driver
[    1.467410] ehci-platform: EHCI generic platform driver
[    1.472880] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.479085] ohci-pci: OHCI PCI platform driver
[    1.483574] ohci-platform: OHCI generic platform driver
[    1.489742] usbcore: registered new interface driver uas
[    1.495111] usbcore: registered new interface driver usb-storage
[    1.501191] usbcore: registered new interface driver usbserial_generic
[    1.507744] usbserial: USB Serial support registered for generic
[    1.513781] usbcore: registered new interface driver ftdi_sio
[    1.519546] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.526892] usbcore: registered new interface driver usb_serial_simple
[    1.533437] usbserial: USB Serial support registered for carelink
[    1.539551] usbserial: USB Serial support registered for zio
[    1.545231] usbserial: USB Serial support registered for funsoft
[    1.551259] usbserial: USB Serial support registered for flashloader
[    1.557633] usbserial: USB Serial support registered for google
[    1.563575] usbserial: USB Serial support registered for libtransistor
[    1.570124] usbserial: USB Serial support registered for vivopay
[    1.576154] usbserial: USB Serial support registered for moto_modem
[    1.582442] usbserial: USB Serial support registered for motorola_tetra
[    1.589080] usbserial: USB Serial support registered for nokia
[    1.594935] usbserial: USB Serial support registered for novatel_gps
[    1.601311] usbserial: USB Serial support registered for hp4x
[    1.607083] usbserial: USB Serial support registered for suunto
[    1.613029] usbserial: USB Serial support registered for siemens_mpi
[    1.619419] usbcore: registered new interface driver usb_ehset_test
[    1.630449] snvs_rtc 30370000.snvs:snvs-rtc-lp: registered as rtc0
[    1.636668] snvs_rtc 30370000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:00:00 UTC (0)
[    1.645868] i2c_dev: i2c /dev entries driver
[    1.652315] Driver for 1-wire Dallas network protocol.
[    1.660853] Bluetooth: HCI UART driver ver 2.3
[    1.665327] Bluetooth: HCI UART protocol H4 registered
[    1.670479] Bluetooth: HCI UART protocol BCSP registered
[    1.675814] Bluetooth: HCI UART protocol LL registered
[    1.680960] Bluetooth: HCI UART protocol ATH3K registered
[    1.686382] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    1.692757] Bluetooth: HCI UART protocol Broadcom registered
[    1.698445] Bluetooth: HCI UART protocol QCA registered
[    1.703906] EDAC MC: ECC not enabled
[    1.708995] sdhci: Secure Digital Host Controller Interface driver
[    1.715197] sdhci: Copyright(c) Pierre Ossman
[    1.720424] Synopsys Designware Multimedia Card Interface Driver
[    1.727260] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.735386] ledtrig-cpu: registered to indicate activity on CPUs
[    1.742377] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.749315] usbcore: registered new interface driver usbhid
[    1.754895] usbhid: USB HID core driver
[    1.764404]  cs_system_cfg: CoreSight Configuration manager initialised
[    1.766495] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    1.775104] Galcore version 6.4.3.p4.398061
[    1.870047] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[    1.877250] mmcblk2: mmc2:0001 DG4008 7.28 GiB 
[    1.882961]  mmcblk2: p1 p2
[    1.886234] mmcblk2boot0: mmc2:0001 DG4008 4.00 MiB 
[    1.892847] mmcblk2boot1: mmc2:0001 DG4008 4.00 MiB 
[    1.894333] [drm] Initialized vivante 1.0.0 20170808 for 40000000.mix_gpu_ml on minor 0
[    1.899316] mmcblk2rpmb: mmc2:0001 DG4008 4.00 MiB, chardev (234:0)
[    1.907266] hantrodec 0 : module inserted. Major = 510
[    1.917734] hantrodec 1 : module inserted. Major = 510
[    1.924313] hantroenc: HW at base <0000000038320000> with ID <0x80006200>
[    1.931242] hx280enc: module inserted. Major <509>
[    1.939660] NET: Registered PF_LLC protocol family
[    1.944964] NET: Registered PF_INET6 protocol family
[    1.952488] Segment Routing with IPv6
[    1.956201] In-situ OAM (IOAM) with IPv6
[    1.960171] NET: Registered PF_PACKET protocol family
[    1.965257] can: controller area network core
[    1.969654] NET: Registered PF_CAN protocol family
[    1.974469] can: raw protocol
[    1.977450] can: broadcast manager protocol
[    1.981649] can: netlink gateway - max_hops=1
[    1.987084] Bluetooth: RFCOMM TTY layer initialized
[    1.992013] Bluetooth: RFCOMM socket layer initialized
[    1.997195] Bluetooth: RFCOMM ver 1.11
[    2.000951] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.006270] Bluetooth: BNEP filters: protocol multicast
[    2.011507] Bluetooth: BNEP socket layer initialized
[    2.016479] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.022411] Bluetooth: HIDP socket layer initialized
[    2.028396] 8021q: 802.1Q VLAN Support v1.8
[    2.032616] lib80211: common routines for IEEE802.11 drivers
[    2.038736] 9pnet: Installing 9P2000 support
[    2.043039] tsn generic netlink module v1 init...
[    2.047848] Key type dns_resolver registered
[    2.052989] Loading compiled-in X.509 certificates
[    2.082252] regulator-se050-en GPIO handle specifies active low - ignored
[    2.156940] nxp-pca9450 0-0025: pca9450bc probed.
[    2.161765] i2c i2c-0: IMX I2C adapter registered
[    2.167865] i2c 1-003c: Fixing up cyclic dependency with 32e40000.csi
[    2.174632] ov5640 1-003c: supply DOVDD not found, using dummy regulator
[    2.181433] ov5640 1-003c: supply AVDD not found, using dummy regulator
[    2.188103] ov5640 1-003c: supply DVDD not found, using dummy regulator
[    2.197081] i2c i2c-1: IMX I2C adapter registered
[    2.202907] i2c 2-003c: Fixing up cyclic dependency with 32e50000.csi
[    2.209662] ov5640 2-003c: supply DOVDD not found, using dummy regulator
[    2.216460] ov5640 2-003c: supply AVDD not found, using dummy regulator
[    2.223129] ov5640 2-003c: supply DVDD not found, using dummy regulator
[    2.235890] i2c i2c-2: IMX I2C adapter registered
[    2.241755] i2c 5-004c: Fixing up cyclic dependency with 32c00000.bus:ldb@32ec005c
[    2.332690] i2c i2c-5: IMX I2C adapter registered
[    2.338356] imx8mq-usb-phy 381f0040.usb-phy: supply vbus not found, using dummy regulator
[    2.346880] imx8mq-usb-phy 382f0040.usb-phy: supply vbus not found, using dummy regulator
[    2.357420] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    2.365705] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[    2.371906] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.
[    2.378876] pps pps0: new PPS source ptp0
[    2.391630] fec 30be0000.ethernet eth0: registered PHC device 0
[    2.398472] imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
[    2.405484] imx-dwmac 30bf0000.ethernet: User ID: 0x10, Synopsys ID: 0x51
[    2.409393] imx6q-pcie 33800000.pcie: PCIe PLL is locked.
[    2.412292] imx-dwmac 30bf0000.ethernet: 	DWMAC4/5
[    2.417733] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    2.422479] imx-dwmac 30bf0000.ethernet: DMA HW capability register supported
[    2.427961] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.435097] imx-dwmac 30bf0000.ethernet: RX Checksum Offload Engine supported
[    2.442672] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    2.449803] imx-dwmac 30bf0000.ethernet: TX Checksum insertion supported
[    2.457039] imx6q-pcie 33800000.pcie:   No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[    2.463725] imx-dwmac 30bf0000.ethernet: Wake-Up On Lan supported
[    2.473059] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    2.479174] imx-dwmac 30bf0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    2.487316] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    2.494963] imx-dwmac 30bf0000.ethernet: Enabled L3L4 Flow TC (entries=8)
[    2.503218] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    2.509928] imx-dwmac 30bf0000.ethernet: Enabled RFS Flow TC (entries=8)
[    2.515416] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.522157] imx-dwmac 30bf0000.ethernet: Enabling HW TC (entries=256, max_off=256)
[    2.537277] imx-dwmac 30bf0000.ethernet: Using 34 bits DMA width
[    2.547844] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    2.553374] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    2.561377] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe6d hci version 0x110 quirks 0x0000002001010010
[    2.570813] xhci-hcd xhci-hcd.1.auto: irq 77, io mem 0x38100000
[    2.576863] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    2.582368] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    2.590040] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    2.597389] hub 1-0:1.0: USB hub found
[    2.601173] hub 1-0:1.0: 1 port detected
[    2.605413] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.614567] hub 2-0:1.0: USB hub found
[    2.618351] hub 2-0:1.0: 1 port detected
[    2.621648] imx6q-pcie 33800000.pcie: Link up
[    2.625148] gpio-42 (onewire): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[    2.637329] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 7 mkt segment 2 supported-hw 0x80 0x4
[    2.647021] Hot alarm is canceled. GPU3D clock will return to 64/64
[    2.657065] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    2.657604] mxc-mipi-csi2-sam 32e40000.csi: supply mipi-phy not found, using dummy regulator
[    2.663612] w1_master_driver w1_bus_master1: Attaching one wire slave 2d.000035c48de6 crc b7
[    2.670851] : mipi_csis_imx8mp_phy_reset, No remote pad found!
[    2.684918] mxc-mipi-csi2-sam 32e40000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 500000000
[    2.693135] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    2.695652] mxc-mipi-csi2-sam 32e50000.csi: supply mipi-phy not found, using dummy regulator
[    2.710529] : mipi_csis_imx8mp_phy_reset, No remote pad found!
[    2.716428] mxc-mipi-csi2-sam 32e50000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 266000000
[    2.725040] imx6q-pcie 33800000.pcie: Link up
[    2.727861] isi-capture 32e00000.isi:cap_device: deferring 32e00000.isi:cap_device device registration
[    2.730627] imx6q-pcie 33800000.pcie: Link up, Gen2
[    2.745627] mxc-isi 32e00000.isi: mxc_isi.0 registered successfully
[    2.753251] isi-capture 32e02000.isi:cap_device: deferring 32e02000.isi:cap_device device registration
[    2.762684] mxc-isi 32e02000.isi: mxc_isi.1 registered successfully
[    2.771602] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[    2.781679] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.790000] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[    2.797970] imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops)
[    2.806149] imx-drm display-subsystem: bound 32c00000.bus:ldb@32ec005c (ops imx8mp_ldb_ops)
[    2.814531] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
[    2.822196] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 1
[    2.837044] imx6q-pcie 33800000.pcie: Link up
[    2.841520] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[    2.841635] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[    2.847906] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.860427] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.861035] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    2.866612] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff]
[    2.878184] mmc0: queuing unknown CIS tuple 0x01 [d9 01 ff] (3 bytes)
[    2.880040] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    2.892461] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    2.894218] mmc0: queuing unknown CIS tuple 0x1a [01 01 00 02 07] (5 bytes)
[    2.898735] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    2.909061] mmc0: queuing unknown CIS tuple 0x1b [c1 41 30 30 ff ff 32 00] (8 bytes)
[    2.912454] pci 0000:00:00.0: supports D1
[    2.920816] mmc0: queuing unknown CIS tuple 0x14 [] (0 bytes)
[    2.924149] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    2.932050] mmc0: new high speed SDIO card at address 0001
[    2.938644] pci 0000:01:00.0: [1912:0015] type 00 class 0x0c0330
[    2.947817] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    2.954972] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.974971] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff]
[    2.981787] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff]
[    2.988672] pci 0000:00:00.0: BAR 6: assigned [mem 0x18200000-0x1820ffff pref]
[    2.995906] pci 0000:01:00.0: BAR 0: assigned [mem 0x18100000-0x18101fff 64bit]
[    3.003255] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.008489] pci 0000:00:00.0:   bridge window [mem 0x18100000-0x181fffff]
[    3.015611] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
[    3.021566] pci 0000:01:00.0: enabling device (0000 -> 0002)
[    3.078007] hub 1-1:1.0: USB hub found
[    3.082426] hub 1-1:1.0: 4 ports detected
[    3.195831] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[    3.351589] hub 2-1:1.0: USB hub found
[    3.353662] hub 2-1:1.0: 4 ports detected
[    3.471897] Console: switching to colour frame buffer device 160x45
[    3.501810] imx-drm display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device
[    3.513556] isi-m2m 32e00000.isi:m2m_device: Register m2m success for ISI.0
[    3.520680] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.532577] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.541091] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.549713] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    3.558642] ALSA device list:
[    3.561625]   No soundcards found.
[    3.572590] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    3.582433] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.590422] devtmpfs: mounted
[    3.593979] Freeing unused kernel memory: 3008K
[    3.605677] Run /sbin/init as init process
[    3.695221] systemd[1]: System time before build time, advancing clock.
[    3.710195] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    3.741876] systemd[1]: Detected architecture arm64.

Welcome to NXP i.MX Release Distro 5.15-kirkstone (kirkstone)!

[    3.818113] systemd[1]: Hostname set to <desk-mx8mp>.
[    3.873108] systemd-sysv-generator[195]: SysV service '/etc/init.d/single' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    3.897675] systemd-sysv-generator[195]: SysV service '/etc/init.d/sendsigs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    3.922244] systemd-sysv-generator[195]: SysV service '/etc/init.d/umountfs' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    3.946500] systemd-sysv-generator[195]: SysV service '/etc/init.d/halt' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    3.970078] systemd-sysv-generator[195]: SysV service '/etc/init.d/umountnfs.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    3.994614] systemd-sysv-generator[195]: SysV service '/etc/init.d/reboot' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    4.018363] systemd-sysv-generator[195]: SysV service '/etc/init.d/save-rtc.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    4.257376] systemd[1]: Queued start job for default target Multi-User System.
[    4.299980] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[    4.322835] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[    4.346835] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[    4.370622] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    4.393404] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[    4.417341] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R�uests to Wall Directory Watch.
[    4.441785] systemd[1]: Reached target Path Units.
[  OK  ] Reached target Path Units.
[    4.461180] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    4.481152] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[    4.501500] systemd[1]: Reached target Swaps.
[  OK  ] Reached target Swaps.
[    4.521642] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[    4.545290] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[    4.565521] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    4.585400] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[    4.610005] systemd[1]: Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Audit Socket.
[    4.633746] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    4.657809] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    4.677810] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    4.703573] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    4.725674] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    4.750077] systemd[1]: Listening on User Database Manager Socket.
[  OK  ] Listening on User Database Manager Socket.
[    4.776540] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[    4.800197] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    4.824282] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    4.841812] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[    4.858313] systemd[1]: Mounting Temporary Directory /tmp...
         Mounting Temporary Directory /tmp...
[    4.881557] systemd[1]: Starting Create List of Static Device Nodes...
         Starting Create List of Static Device Nodes...
[    4.908977] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[    4.932975] systemd[1]: Starting Load Kernel Module drm...
         Starting Load Kernel Module drm...
[    4.961320] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[    4.973568] fuse: init (API version 7.34)
[    4.984699] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[    5.001892] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[    5.014886] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[    5.027788] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[    5.039822] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    5.063356] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
[    5.075669] systemd[1]: Starting Generate network units from Kernel command line...
         Starting Generate network �ts from Kernel command line...
[    5.104001] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    5.118020] EXT4-fs (mmcblk2p2): re-mounted. Opts: (null). Quota mode: none.
[    5.128392] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[    5.148228] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[    5.174853] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[    5.197849] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted Temporary Directory /tmp.
[  OK  ] Finished Create List of Static Device Nodes.
[  OK  ] Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module fuse.
[  OK  ] Finished Generate network units from Kernel command line.
[  OK  ] Finished Remount Root and Kernel File Systems.
[  OK  ] Finished Apply Kernel Variables.
         Mounting FUSE Control File System...
         Mounting Kernel Configuration File System...
         Starting Flush Journal to Persistent Storage...
[    5.457700] systemd-journald[207]: Received client request to flush runtime journal.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /var/volatile...
         Starting Rule-based Manage�for Device Events and Files...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Finished Coldplug All udev Devices.
[  OK  ] Finished Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Finished Record System Boot/Shutdown in UTMP.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Initialization.
[    6.025059] remoteproc remoteproc0: imx-dsp-rproc is available
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target System Time Set.
[    6.055034] caam-snvs 30370000.caam-snvs: violation handlers armed - init state
[  OK  ] Started Daily rotation of log files.
[    6.081366] caam 30900000.crypto: Entropy delay = 3200
[  OK  ] Reached target Timer Units.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Reached targe[    6.159066] caam 30900000.crypto: failed to acquire DECO 0
t Socket Units.
[    6.166378] caam 30900000.crypto: failed to instantiate RNG
[  OK  ] Reached target Basic System.
[    6.199084] wlan: loading out-of-tree module taints kernel.
[  OK  ] Started Job spooling tools.
[  OK  ] Started Periodic Command Scheduler.
[    6.306983] imx8_media_dev: module is from the staging directory, the quality is unknown, you have been warned.
         Starting D-Bus System Message Bus...
[    6.331177] random: dbus-daemon: uninitialized urandom read (12 bytes read)
[    6.342232] mx8-img-md: Registered mxc_isi.0.capture as /dev/video1
[    6.349045] mx8-img-md: Registered mxc_isi.1.capture as /dev/video2
[    6.352316] wlan: loading driver v4.5.25.46
[    6.355582] mx8-img-md: Registered sensor subdevice: ov5640 2-003c (1)
[    6.358178] random: dbus-daemon: uninitialized urandom read (12 bytes read)
[    6.373153] mx8-img-md: Registered sensor subdevice: ov5640 1-003c (2)
[    6.376648] hifDeviceInserted: Dumping clocks (50000000,200000000)
[    6.379831] mx8-img-md: created link [mxc_isi.0] => [mxc_isi.0.capture]
[    6.392632] mx8-img-md: created link [mxc-mipi-csi2.0] => [mxc_isi.0]
[    6.392646] mx8-img-md: created link [mxc_isi.1] => [mxc_isi.1.capture]
[    6.392651] mx8-img-md: created link [mxc-mipi-csi2.1] => [mxc_isi.1]
[    6.392656] mx8-img-md: created link [ov5640 1-003c] => [mxc-mipi-csi2.0]
[    6.392666] mx8-img-md: created link [ov5640 2-003c] => [mxc-mipi-csi2.1]
         Starting IPv6 P[    6.425941] mxc-md 32c00000.bus:camera: mxc_md_create_links
acket Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
         Starting Lighttpd Daemon...
         Starting Telephony service...
[  OK  ] Started System Logging Service.
         Starting User Login Management...
[  OK  ] Started TEE Supplicant.
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Finished IPv6 Packet Filtering Framework.
[  OK  ] Finished IPv4 Packet Filtering Framework.
[  OK  ] Started Lighttpd Daemon.
[  OK  ] Started Telephony service.
[  OK  ] Started User Login Management.
[  OK  ] Reached target Preparation for Network.
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Listening on Load/Save RF �itch Status /dev/rfkill Watch.
         Starting Network Configuration...
         Starting Load/Save RF Kill Switch Status...
[  OK  ] Started Network Configuration.
         Starting Network Name Resolution...
[  OK  ] Started Load/Save RF Kill Switch Status.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
         Starting Avahi mDNS/DNS-SD Stack...
         Starting DNS forwarder and DHCP server...
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[  OK  ] Started Respond to IPv6 Node Information Queries.
         Starting Network Time Service...
         Starting Postfix Mail Transport Agent...
[  OK  ] Started Network Router Discovery Daemon.
         Starting Permit User Sessions...
[  OK  ] Started Vsftpd ftp daemon.
[  OK  ] Started Xinetd A Powerful Replacement For Inetd.
[  OK  ] Started Network Time Service.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started DNS forwarder and DHCP server.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttymxc1.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Postfix Mail Transport Agent.
[  OK  ] Reached target Multi-User System.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.
[  OK  ] Finished Load/Save Random Seed.

NXP i.MX Release Distro 5.15-kirkstone desk-mx8mp ttymxc1

desk-mx8mp login: root
root@desk-mx8mp:~# uname -a
Linux desk-mx8mp 5.15.71-desk-mx8m-l-4.0.0+g50e18a0c8871 #1 SMP PREEMPT Thu Jul 20 10:56:49 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
root@desk-mx8mp:~# shutdown -h now
         Stopping Session c1 of User root...
[  OK  ] Removed slice Slice /system/modprobe.
[  OK  ] Stopped target Multi-User System.
[  OK  ] Stopped target Login Prompts.
[  OK  ] Stopped target RPC Port Mapper.
[  OK  ] Stopped target Timer Units.
[  OK  ] Stopped Daily rotation of log files.
[  OK  ] Stopped Daily Cleanup of Temporary Directories.
[  OK  ] Stopped target System Time Set.
[  OK  ] Stopped target Hardware activated USB gadget.
[  OK  ] Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
         Stopping Job spooling tools...
         Stopping Avahi mDNS/DNS-SD Stack...
         Stopping Periodic Command Scheduler...
         Stopping DNS forwarder and DHCP server...
         Stopping Getty on tty1...
         Stopping Lighttpd Daemon...
         Stopping NFS status monitor for NFSv2/3 locking....
         Stopping Respond to IPv6 Node Information Queries...
         Stopping Network Time Service...
         Stopping Telephony service...
         Stopping Postfix Mail Transport Agent...
         Stopping Network Router Discovery Daemon...
         Stopping Serial Getty on ttymxc1...
         Stopping System Logging Service...
         Stopping Load/Save Random Seed...
         Stopping Vsftpd ftp daemon...
         Stopping Xinetd A Powerful Replacement For Inetd...
[  OK  ] Stopped Job spooling tools.
[  OK  ] Stopped Periodic Command Scheduler.
[  OK  ] Stopped Telephony service.
[  OK  ] Stopped System Logging Service.
[  OK  ] Stopped Lighttpd Daemon.
[  OK  ] Stopped Avahi mDNS/DNS-SD Stack.
[  OK  ] Stopped NFS status monitor for NFSv2/3 locking..
[  OK  ] Stopped Respond to IPv6 Node Information Queries.
[  OK  ] Stopped Network Router Discovery Daemon.
[  OK  ] Stopped Network Time Service.
[  OK  ] Stopped Vsftpd ftp daemon.
[  OK  ] Stopped Xinetd A Powerful Replacement For Inetd.
[  OK  ] Stopped Getty on tty1.
[  OK  ] Stopped Serial Getty on ttymxc1.
[  OK  ] Stopped DNS forwarder and DHCP server.
[  OK  ] Stopped Postfix Mail Transport Agent.
[  OK  ] Stopped Load/Save Random Seed.
[  OK  ] Stopped Session c1 of User root.
[  OK  ] Removed slice Slice /system/getty.
[  OK  ] Removed slice Slice /system/serial-getty.
[  OK  ] Stopped target Host and Network Name Lookups.
         Stopping User Login Management...
         Stopping User Manager for UID 0...
[  OK  ] Stopped User Manager for UID 0.
         Stopping User Runtime Directory /run/user/0...
[  OK  ] Unmounted /run/user/0.
[  OK  ] Stopped User Runtime Directory /run/user/0.
[  OK  ] Removed slice User Slice of UID 0.
         Stopping D-Bus System Message Bus...
         Stopping Permit User Sessions...
[  OK  ] Stopped User Login Management.
[  OK  ] Stopped D-Bus System Message Bus.
[  OK  ] Stopped Permit User Sessions.
[  OK  ] Stopped target Network.
[  OK  ] Stopped target Remote File Systems.
         Stopping Network Name Resolution...
[  OK  ] Stopped Network Name Resolution.
         Stopping Network Configuration...
[  OK  ] Stopped Network Configuration.
[  OK  ] Stopped target Preparation for Network.
[  OK  ] Stopped IPv6 Packet Filtering Framework.
[  OK  ] Stopped IPv4 Packet Filtering Framework.
[  OK  ] Stopped target Basic System.
[  OK  ] Stopped target Path Units.
[  OK  ] Stopped Dispatch Password �ts to Console Directory Watch.
[  OK  ] Stopped Forward Password R�uests to Wall Directory Watch.
[  OK  ] Stopped target Slice Units.
[  OK  ] Removed slice User and Session Slice.
[  OK  ] Stopped target Socket Units.
[  OK  ] Closed Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Closed D-Bus System Message Bus Socket.
[  OK  ] Closed dropbear.socket.
[  OK  ] Stopped target System Initialization.
[  OK  ] Closed Syslog Socket.
[  OK  ] Closed Network Service Netlink Socket.
[  OK  ] Stopped Apply Kernel Variables.
         Stopping Network Time Synchronization...
[  OK  ] Stopped Network Time Synchronization.
[  OK  ] Stopped Create Volatile Files and Directories.
[  OK  ] Stopped target Local File Systems.
         Unmounting Temporary Directory /tmp...
         Unmounting /var/volatile...
[  OK  ] Unmounted Temporary Directory /tmp.
[  OK  ] Unmounted /var/volatile.
[  OK  ] Stopped target Preparation for Local File Systems.
[  OK  ] Stopped target Swaps.
[  OK  ] Reached target Unmount All Filesystems.
[  OK  ] Stopped Remount Root and Kernel File Systems.
[  OK  ] Stopped Create Static Device Nodes in /dev.
[  OK  ] Reached target System Shutdown.
[  OK  ] Reached target Late Shutdown Services.
[  OK  ] Finished System Power Off.
[  OK  ] Reached target System Power Off.
[   52.155590] systemd-shutdown[1]: Syncing filesystems and block devices.
[   52.175955] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
[   52.201827] systemd-journald[207]: Received SIGTERM from PID 1 (systemd-shutdow).
[   52.213839] audit: type=1335 audit(1651167793.516:3): pid=207 uid=0 auid=4294967295 tty=(none) ses=4294967295 comm="systemd-journal" exe="/lib/systemd/systemd-journald" nl-mcgrp=1 op=disconnect res=1
[   60.411143] imx-sdma 30e10000.dma-controller: firmware found.
[   60.411433] imx-sdma 30bd0000.dma-controller: firmware found.
[   60.422840] imx-sdma 30bd0000.dma-controller: loaded firmware 4.6
[   62.203259] systemd-shutdown[1]: Waiting for process: 224 (systemd-udevd), 243 (systemd-udevd)
[   64.477453] cfg80211: failed to load regulatory.db
[   66.525432] xhci_hcd 0000:01:00.0: failed to load firmware renesas_usb_fw.mem, fallback to ROM
[   66.534140] xhci_hcd 0000:01:00.0: xHCI Host Controller
[   66.539406] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 3
[   66.552111] xhci_hcd 0000:01:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x0000001100000090
[   66.561888] xhci_hcd 0000:01:00.0: xHCI Host Controller
[   66.567127] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 4
[   66.574547] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[   66.581837] hub 3-0:1.0: USB hub found
[   66.585614] hub 3-0:1.0: 2 ports detected
[   66.589887] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[   66.598583] hub 4-0:1.0: USB hub found
[   66.602356] hub 4-0:1.0: 2 ports detected
[   66.629359] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
[   66.646040] systemd-shutdown[1]: Unmounting file systems.
[   66.653423] [443]: Remounting '/' read-only with options 'n/a'.
[   66.669965] EXT4-fs (mmcblk2p2): re-mounted. Opts: (null). Quota mode: none.
[   66.680878] systemd-shutdown[1]: All filesystems unmounted.
[   66.686583] systemd-shutdown[1]: Deactivating swaps.
[   66.691853] systemd-shutdown[1]: All swaps deactivated.
[   66.697213] systemd-shutdown[1]: Detaching loop devices.
[   66.704975] systemd-shutdown[1]: All loop devices detached.
[   66.710574] systemd-shutdown[1]: Stopping MD devices.
[   66.715875] systemd-shutdown[1]: All MD devices stopped.
[   66.721199] systemd-shutdown[1]: Detaching DM devices.
[   66.726563] systemd-shutdown[1]: All DM devices detached.
[   66.731975] systemd-shutdown[1]: All filesystems, swaps, loop devices, MD devices and DM devices detached.
[   66.748076] systemd-shutdown[1]: Syncing filesystems and block devices.
[   66.755091] systemd-shutdown[1]: Powering off.
[   66.759580] kvm: exiting hardware virtualization
[   66.849341] usb 3-2: new full-speed USB device number 2 using xhci_hcd
[   67.037260] reboot: Power down




How to configure the network interfaces[edit | edit source]

For deploying an Embedded System, one of the most important configuration is the Network Interface configuration.

Once the Embedded Device is finally configured for stand-alone bootstrap, the network interface should be configured for reaching the device remotely via network connections like ssh, telnet, ftp, http, etc.

This Application Note briefly describes how it is possible to simply configure the network interfaces on systemd

Resources[edit | edit source]

For further details on network configuration, please refer - for example - to:

Examples[edit | edit source]

The following configuration assumptions are used in the paragraphs shown below:

  • IP address range of the LAN network 192.168.1.0 - 192.168.1.255
  • IP address of the gateway 192.168.1.254
  • IP address of the device 192.168.1.100

systemd[edit | edit source]

The network configuration for systemd are basically found in the /etc/systemd/network/ directory.

The most simply way for configuring the network interface is to create/edit the file /etc/systemd/network/20-eth0.network as per the following paragraphs. In the event that there are another network interface, then this must be create/edit as /etc/systemd/network/20-eth1.network. For more example and usage hints on systemd, please refer to our wiki page.

Static IP address[edit | edit source]

SBC ORCA has two network interfaces, below is shown how to configure them both through a static IP. In the case of SBCX MINI there is only one ethernet interface, consequently going to configure only eth0 interface.

Example for ethernet interface 0.

[Match]
Name=eth0

# Prevent the interface loading if the kernel boots from nfs
KernelCommandLine=!nfsroot

[Network]
Address=192.168.1.100
Gateway=192.168.1.254
DNS=192.168.1.1

Example for ethernet interface 1.

[Match]
Name=eth1

# Prevent the interface loading if the kernel boots from nfs
KernelCommandLine=!nfsroot

[Network]
Address=192.168.1.101
Gateway=192.168.1.254
DNS=192.168.1.1

Once modified, the networkd service should be resarted:

systemctl restart systemd-networkd

Dynamic IP addres (DHCP)[edit | edit source]

SBC ORCA has two network interfaces, below is shown how to configure them both through DHCP. In the case of SBCX MINI there is only one ethernet interface, consequently going to configure only eth0 interface.

The network interface is configured - using a proper DHCP server on the network - by using the DHCP key in the configuration file as the following:

[Match]
Name=eth0

# Prevent the interface loading if the kernel boots from nfs
KernelCommandLine=!nfsroot

[Network]
DHCP=yes

In the event that there are another network interface, the configuration file as the following:

[Match]
Name=eth1

# Prevent the interface loading if the kernel boots from nfs
KernelCommandLine=!nfsroot

[Network]
DHCP=yes

When systemd network starts, it tries to use a DHCP server present in the network to configure the interface.

DNS[edit | edit source]

The DNS key (in the configuration file) is used only if the systemd-resolved service is enabled and the /etc/resolv.conf has a symbolic link to /run/systemd/resolve/stub-resolv.conf

ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Once modified, the resolved service should be resarted:

systemctl restart systemd-resolved

loopback network interface[edit | edit source]

systemd contains native implementations of various tasks that need to be executed as part of the boot process.

For example, it sets the hostname or configures the loopback network device.

Apply configuration changes[edit | edit source]

After editing the above files, changes are applied after reboot or by restarting systemd-networkd.service:

root@desk-mx8mp:~# systemctl restart systemd-networkd.service



MAC Address programming[edit | edit source]

Every network adapter has a Media Access Control address (usually shortened to MAC address). A MAC address is a six-byte identifying number permanently embedded in the firmware of the adapter, and is readable by the network and the operating system of the device on which the adapter is installed.

The address must follow the standards set by the Institute of Electrical and Electronics Engineers (IEEE), which sets computer networking standards.

The MAC address is a six-pair set of hexadecimal numbers, for example a1-c2-e3-44-5f-6d. Specifically, in Ethernet, the MAC address is known as the Ethernet Address, which is the unique ID serial number of the Ethernet device in one's computer. MAC Addresses are used in a Local Area Network (LAN) by computers to communicate with each other. Every adapter has a unique MAC address.

Platform supported[edit | edit source]

In this Application Note, we will describe how to use the i.MX8M eFuse for programming and using the MAC address(es) and it applies to the following DAVE i.MX8M family products:


200px-Emblem-important.svg.png

This Application Note has been validated in the ORCA SOM. The commands used have been not validated in the other platform yet.

Obtaining a MAC address[edit | edit source]

To obtain a MAC address for your organization, please refer to our Setting the MAC address wiki page with the overall information about this topic.

Permanent storage areas[edit | edit source]

Some SOCs provide programmable OTPs for security, MAC address, boot modes, etc. Usually, some of these are general-purpose registers and can be managed by the user.

In other cases, an external permanent storage device can be used for storing permanent settings like the MAC address: for the i.MX8M product family, DAVE proposes to use the General Purposes eFuses (OTP blocks) on SoC itself for storing permanently the MAC address(es).

MAC address programming on i.MX8M family[edit | edit source]

MAC address configuration in u-boot[edit | edit source]

If the MAC address is not already programmed in the OTPs and the ethaddr u-boot variable is not set, u-boot assignes a random value (different at every power on cycle):

Net:
Warning: ethernet@30be0000 (eth0) using random MAC address - 6e:e5:6d:a2:ea:e5
eth0: ethernet@30be0000

If the ethaddr is set and saved in the u-boot environment, its value is used as the MAC Address:

u-boot=> setenv ethaddr 00:50:c2:1e:af:a8
u-boot=> saveenv
Saving Environment to MMC... Writing to MMC(1)... OK
u-boot=>

eFuse bank registers[edit | edit source]

i.MX8M family uses the Bank9 Word0, Word1 and Word2 (if the SoC has two ethernet interfaces) for storing the MAC addresses. The MAC values should be properly divided into the three registers for correct programming.

The related HW_OCOTP_MAC_ADDR0, HW_OCOTP_MAC_ADDR1, HW_OCOTP_MAC_ADDR2 OTP registers will be used for the purposes illustrated in this AN.


200px-Emblem-important.svg.png

Warning!! eFuse programming is a permanent and non reversible action. Pay attention to the values and commands used during MAC programming.

eth0 eFuse programming[edit | edit source]

U-Boot uses the fuse prog command for writing the MAC address into the eFuse. The MAC address should be divided in high 16 bit and low 32 bits, for example MAC address AB:CD:12:34:56:78 for eth0 is then divided into :

fuse prog -y 9 0 0x12345678
fuse prog -y 9 1 0xABCD

In the following example the MAC address 00:50:c2:1e:af:a8 is stored in the SOC:

  • (in case of presence) clear the ethaddr u-boot variable
u-boot=> setenv ethaddr
u-boot=> saveenv
Saving Environment to MMC... Writing to MMC(1)... OK
  • program the MAC address in the OPTs with the following commands:
u-boot=> fuse prog 9 0 c21eafa8
Programming bank 9 word 0x00000000 to 0xc21eafa8...
Warning: Programming fuses is an irreversible operation!
         This may brick your system.
         Use this command only if you are sure of what you are doing!

Really perform this fuse programming? <y/N>
y
u-boot=> fuse prog 9 1 0050
Programming bank 9 word 0x00000001 to 0x00000050...
Warning: Programming fuses is an irreversible operation!
         This may brick your system.
         Use this command only if you are sure of what you are doing!

Really perform this fuse programming? <y/N>
y
u-boot=>

If you want to write the eFuse value directly without confirmation, uses the -y parameter with the fuse prog command, as per the previous example:

u-boot=> fuse prog -y 9 0 c21eafa8
u-boot=> fuse prog -y 9 1 0050

At the next boot, the ethaddr value wil be read from the OPTs:

Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0
u-boot=> print ethaddr
ethaddr=00:50:c2:1e:af:a8
u-boot=>

The warning message informs that the ethaddr is not present in the u-boot environment and it has been set using the value read from the OTPs. For clearing the warning, it is enough to save the environment with saveenv.

u-boot=> saveenv

eth1 eFuse programming[edit | edit source]

For the second ethernet interface, the above procedure should be repeated in a similar way, except of the correct eFuse register should be used:

The MAC address should be divided in low 16 bit and high 32 bits, for example MAC address 00:50:c2:1e:af:a9 is stored in the SOC using:

fuse prog -y 9 1 afa90000
fuse prog -y 9 2 0050c21e


200px-Emblem-important.svg.png

Be Careful!! Register bank:9 word:1 is shared between first and second interface, so the lowest 16-bits in the register should be set to 0000 avoiding to change the eth0 MAC settings

The eth1addr U-Boot variable is then used for the second ethernet interface MAC address management.

eFuse locking[edit | edit source]

The OTP eFuse registers should be locked in order to avoid unwanted registers (and then MAC addresses) modifications. OTP lock grants the MAC values cannot be modified anymore.


200px-Emblem-important.svg.png

If not locked yet, OTP bits can be set to '1' but not reversed to '0' value, so some modifications can be applied if the eFuse registers are not locked.

For more information see, for example, the i.MX6 Dual Lite Reference Manual chap. 47.3.1.3

The two MAC addresses - even if sharing register bank:9 word:1 - can be programmed at different times.

At the opposite, eFuse lock should be performed for both simultaneously. The registers lock can be forced using the following command:

fuse prog -y 0 0 c000

eFuse reading[edit | edit source]

The eFuse registers can be read - after programming - for checking the written values:

u-boot=> fuse read 9 0
Reading bank 9:

Word 0x00000000: c21eafa8
u-boot=> fuse read 9 1
Reading bank 9:

Word 0x00000001: afa90050
u-boot=> fuse read 9 2
Reading bank 9:

Word 0x00000002: 0050c21e
u-boot=>

Linux kernel MAC address[edit | edit source]

The MAC Address configured in u-boot is passed to the kernel which configures the eth0 and eth1 peripherals with the correct values:

root@desk-mx8mp:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:c2:1e:af:a8
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr 00:50:c2:1e:af:a9
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:43

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:82 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6220 (6.0 KiB)  TX bytes:6220 (6.0 KiB)

root@desk-mx8mp:~#

Peripherals[edit | edit source]

Peripheral Audio[edit | edit source]

Access to the audio interface is provided by ALSA (Advanced Linux Sound Architecture), which consists in a kernel driver and a users space library for application developers. A set of standard tools (alsa-utils) can be used for simple management of the audio codec.

Device tree configuration[edit | edit source]

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for MITO 8M Mini:

From imx8mm-mito8mmini-sbcx.dts it is possible to find the codec SSI interface configuration:

...
...
	sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,name = "SBCX_TLV320";
		simple-audio-card,bitclock-master = <&codec_dai>;
		simple-audio-card,frame-master = <&codec_dai>;
		simple-audio-card,widgets =
			"Headphone", "Headphone Jack",
			"Line", "Line In",
			"Microphone", "Mic Jack";
		simple-audio-card,routing =
						"Speaker", "SPK",
						"Headphone Jack", "HPL",
						"Headphone Jack", "HPR",
						"MIC1LP", "Line In",
						"MIC1LM", "Line In",
						"MIC1RP", "Mic Jack",
						"Mic Jack", "MICBIAS";

		simple-audio-card,cpu {
			sound-dai = <&sai2>;
		};

		codec_dai: simple-audio-card,codec {
			sound-dai = <&codec>;
			system-clock-frequency = <24000000>;
		};
	};
...
&sai2 {
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai2>;
	pinctrl-1 = <&pinctrl_codec_en>;
	assigned-clocks = <&clk IMX8MM_CLK_SAI2>;
	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
	assigned-clock-rates = <24576000>;
	status = "okay";
};
...
&iomuxc {
...
	pinctrl_codec_en: codecen {
		fsl,pins = <
			MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28			 0x19
		>;
	};
...
...

From imx8mm-mito8mmini.dtsi:

...
...
&iomuxc {
...
	pinctrl_sai2: sai2grp {
		fsl,pins = <
			MX8MM_IOMUXC_SAI2_MCLK_SAI2_MCLK		0xd6
			MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC		0xd6
			MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK		0xd6
			MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0	0xd6
			MX8MM_IOMUXC_SAI2_RXFS_SAI2_RX_SYNC		0xd6
			MX8MM_IOMUXC_SAI2_RXC_SAI2_RX_BCLK		0xd6
			MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0	0xd6
		>;
	};
...
	pinctrl_codec_en: codecen {
		fsl,pins = <
			MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28			 0x19
		>;
	};
...
...

Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    3.038735] ALSA device list:
[    3.038739]   #0: SBCX_TLV320
...
...

To list the audio sound cards just use the aplay utility:

root@desk-mx8mm:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SBCXTLV320 [SBCX_TLV320], device 0: 30020000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0 [30020000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@desk-mx8mm:~#

Usage alsa-utils[edit | edit source]

In order to unmute the speaker the amixer utility can be used.

root@desk-mx8mm:~# amixer sset "Speaker" on
Simple mixer control 'Speaker',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
root@desk-mx8mm:~# amixer sset "Speaker Analog" 100
Simple mixer control 'Speaker Analog',0
  Capabilities: pvolume pvolume-joined
  Playback channels: Mono
  Limits: Playback 0 - 127
  Mono: Playback 100 [79%] [-13.50dB]
root@desk-mx8mm:~# amixer sset "Speaker Driver" on 2
Simple mixer control 'Speaker Driver',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 3
  Mono: Playback 2 [67%] [18.00dB] [on]
root@desk-mx8mm:~# amixer sset "DAC" 100
Simple mixer control 'DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 175
  Mono:
  Front Left: Playback 100 [57%] [-13.50dB]
  Front Right: Playback 100 [57%] [-13.50dB]
root@desk-mx8mm:~# amixer sset "Output Left From Left DAC" on
Simple mixer control 'Output Left From Left DAC',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
root@desk-mx8mm:~#

To perform a sound, execute the command:

root@desk-mx8mm:~# speaker-test sim

speaker-test 1.2.6

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 3840 to 5760
Period size range from 1920 to 1920
Using max buffer size 5760
Periods = 4
was set period_size = 1920
was set buffer_size = 5760
 0 - Front Left

Additional information[edit | edit source]

Information about alsa-utils can be found on ALSA project wiki pages


Peripheral Ethernet[edit | edit source]

The ethernet interface is made available through the i.MX8M fec interface which should be initialized on the device tree.

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts :

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec>;
	phy-mode = "rgmii-id";
	phy-handle = <&ethphy1>;
	fsl,magic-packet;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy1: ethernet-phy@8 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <8>;
			eee-broken-1000t;
			eee-broken-100tx;
		};
	};
};


From imx8mp-mito8mplus.dtsi :

&eqos {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_eqos>;
	phy-mode = "rgmii-id";
	phy-handle = <&ethphy0>;
	status = "okay";

	mdio {
		compatible = "snps,dwmac-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@7 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <7>;
			eee-broken-1000t;
			eee-broken-100tx;
		};
	};
};
...
...

&iomuxc {
...
...
	pinctrl_eqos: eqosgrp {
		fsl,pins = <
			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC		0x3
			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO		0x3
			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0	0x91
			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1	0x91
			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2	0x91
			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3	0x91
			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x91
			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL	0x91
			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0	0x1f
			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1	0x1f
			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2	0x1f
			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3	0x1f
			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL	0x1f
			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x1f
			MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10		0x19
		>;
	};

	pinctrl_fec: fecgrp {
		fsl,pins = <
			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02		0x19
		>;
	};
...
...
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini SOM:

From imx8mm-mito8mmini.dts :

...
...
&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec1>, <&pinctrl_enet_reset>, <&pinctrl_enet_irq>;
	phy-mode = "rgmii-id";
	phy-handle = <&ethphy0>;
	fsl,magic-packet;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@7 {
			compatible = "ethernet-phy-ieee802.3-c22";
			txc-skew-ps = <1860>;
			txen-skew-ps = <0>;
			txd0-skew-ps = <0>;
			txd1-skew-ps = <0>;
			txd2-skew-ps = <0>;
			txd3-skew-ps = <0>;
			rxc-skew-ps = <1740>;
			reg = <7>;
		};
	};
};
...
...
&iomuxc {
...
...
	pinctrl_enet_irq: enet_irqgrp {
		fsl,pins = <
			MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10				0x41   /* ETH0_INTn */
		>;
	};

	pinctrl_enet_reset: enet_resetgrp {
		fsl,pins = <
			MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1			0x19	/* ETH0_RESETn */
		>;
	};

	pinctrl_fec1: fec1grp {
		fsl,pins = <
			MX8MM_IOMUXC_ENET_MDC_ENET1_MDC			0x3
			MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
			MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
			MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
			MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
			MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
			MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
			MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
			MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
			MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
			MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
			MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
			MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
			MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
		>;
	};
...
...
};

Accessing the peripheral in ORCA SOM[edit | edit source]

ORCA SOM provides the network interface mapped as eth0 and eth1.

Linux messages at boot time[edit | edit source]

  • eth0
...
...
[    2.063873] fec 30be0000.ethernet eth0: registered PHC device 0
...
[   14.263053] Generic PHY 30be0000.ethernet-1:08: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:08, irq=POLL)
  • eth1
[   14.249319] imx-dwmac 30bf0000.ethernet eth1: PHY [stmmac-1:07] driver [Microchip KSZ9131 Gigabit PHY] (irq=POLL)
[   14.250685] imx-dwmac 30bf0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0
[   14.251110] imx-dwmac 30bf0000.ethernet eth1: No Safety Features support found
[   14.251133] imx-dwmac 30bf0000.ethernet eth1: IEEE 1588-2008 Advanced Timestamp supported
[   14.252851] imx-dwmac 30bf0000.ethernet eth1: registered PTP clock
[   14.255249] imx-dwmac 30bf0000.ethernet eth1: FPE workqueue start
[   14.255267] imx-dwmac 30bf0000.ethernet eth1: configuring for phy/rgmii-id link mode

Cable connection:

...
...
[   18.346266] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   18.353884] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Check the interface with ifconfig[edit | edit source]

root@desk-mx8mp:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.118  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::8449:5cff:fe4a:2840  prefixlen 64  scopeid 0x20<link>
        ether 86:49:5c:4a:28:40  txqueuelen 1000  (Ethernet)
        RX packets 56295  bytes 9105391 (8.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 225  bytes 23810 (23.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@desk-mx8mp:~# ifconfig eth1 
eth1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b2:79:b4:e1:19:40  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 48

root@desk-mx8mp:~#

Test with iperf3[edit | edit source]

root@desk-mx8mp:~# iperf3 -t 5 -c 192.168.4.100
Connecting to host 192.168.4.100, port 5201
[  5] local 192.168.10.118 port 51394 connected to 192.168.4.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   114 MBytes   956 Mbits/sec    0    680 KBytes       
[  5]   1.00-2.00   sec   111 MBytes   933 Mbits/sec    0    771 KBytes       
[  5]   2.00-3.00   sec   112 MBytes   944 Mbits/sec    0    786 KBytes       
[  5]   3.00-4.00   sec   111 MBytes   933 Mbits/sec    0    829 KBytes       
[  5]   4.00-5.00   sec   111 MBytes   933 Mbits/sec    0    829 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.00   sec   560 MBytes   940 Mbits/sec    0             sender
[  5]   0.00-5.00   sec   558 MBytes   936 Mbits/sec                  receiver

iperf Done.
root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

MIN SOM provides the network interface mapped as eth0.

Linux messages at boot time[edit | edit source]

...
[    2.909811] fec 30be0000.ethernet eth0: registered PHC device 0
...
[   16.285429] Micrel KSZ9031 Gigabit PHY 30be0000.ethernet-1:07: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:07, irq=POLL)
...

Cable connection:

...
[   20.386519] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   20.394322] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
...

Check the interface with ifconfig[edit | edit source]

root@desk-mx8mm:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.4.153  netmask 255.255.255.0  broadcast 192.168.4.255
        inet6 fe80::80c9:10ff:fe49:b0ee  prefixlen 64  scopeid 0x20<link>
        ether 82:c9:10:49:b0:ee  txqueuelen 1000  (Ethernet)
        RX packets 65495  bytes 4562086 (4.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 558  bytes 134716 (131.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@desk-mx8mm:~# 

Test with iperf3[edit | edit source]

root@desk-mx8mm:~# iperf3 -t 5 -c 192.168.4.100
Connecting to host 192.168.4.100, port 5201
[  5] local 192.168.4.153 port 50938 connected to 192.168.4.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   951 Mbits/sec    0    457 KBytes       
[  5]   1.00-2.00   sec   112 MBytes   941 Mbits/sec    0    499 KBytes       
[  5]   2.00-3.00   sec   113 MBytes   948 Mbits/sec    0    525 KBytes       
[  5]   3.00-4.00   sec   112 MBytes   941 Mbits/sec    0    525 KBytes       
[  5]   4.00-5.00   sec   112 MBytes   939 Mbits/sec    0    525 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-5.00   sec   563 MBytes   944 Mbits/sec    0             sender
[  5]   0.00-5.00   sec   560 MBytes   939 Mbits/sec                  receiver

iperf Done.
root@desk-mx8mm:~# 


MAC Address[edit | edit source]

For the MAC Address programming, refers to the following wiki page



Peripheral HDMI[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

...
...
	sound-hdmi {
		compatible = "fsl,imx-audio-cdnhdmi";
		model = "audio-hdmi";
		audio-cpu = <&aud2htx>;
		hdmi-out;
		constraint-rate = <44100>,
				<88200>,
				<176400>,
				<32000>,
				<48000>,
				<96000>,
				<192000>;
		status = "okay";
	};
...
...
&irqsteer_hdmi {
	status = "okay";
};

&hdmi_blk_ctrl {
	status = "okay";
};

&hdmi_pavi {
	status = "okay";
};

&hdmi {
	status = "okay";
};

&hdmiphy {
	status = "okay";
};

From imx8mp-mito8mplus.dtsi:


&iomuxc {
...
...
	pinctrl_hog: hoggrp {
		fsl,pins = <
			MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL	0x400001c3
			MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA	0x400001c3
			MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD		0x40000019
			MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC		0x40000019
		>;
	};
...
...
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini SOM:

From imx8mm-mito8mmini.dtsi:

...
...
&i2c1 {
...
	mipi_to_lvds: sn65dsi83@2c {
		compatible = "ti,sn65dsi83";
		reg = <0x2c>;
		enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
		interrupts-extended = <&gpio1 5 GPIO_ACTIVE_HIGH>;
		clocks = <&mipi_dsi 0>, <&clk IMX8MM_CLK_LCDIF_PIXEL>;
		clock-names = "mipi_clk", "pixel_clock";
		display = <&display_subsystem>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c1_sn65dsi83>;
		sync-delay = <512>;
		dsi-lanes = <4>;
		status = "okay";

		lvds_ports: ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				lvds_in: endpoint {
					remote-endpoint = <&mipi_out>;
					data-lanes = <1 2 3 4>;
				};
			};
		};
	};
...
};

&lcdif {
	status = "okay";
};

&mipi_dsi {
	#clock-cells = <1>;
	status = "okay";

	port@1 {
		mipi_out: endpoint {
			remote-endpoint = <&lvds_in>;
			attach-bridge;
		};
	};
};

&vpu_g1 {
	status = "okay";
};

&vpu_g2 {
	status = "okay";
};

&vpu_h1 {
	status = "okay";
};

&gpu {
	status = "okay";
};
...
...

From imx8mm-mito8mmini-cb100a.dts :

...
&regulators {
	reg_lvds_pwr: lvds_pwr {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		regulator-name = "lvds_pwr_en";
		pinctrl-0 = <&pinctrl_lcd_3v3_enable>;
		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
		regulator-always-on;
	};

	reg_5v_bl: 5v_bl {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		regulator-name = "5v_bl_en";
		pinctrl-0 = <&pinctrl_lcd_5v_enable>;
		gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
		regulator-always-on;
	};
};

&i2c3 {
	lvds-to-hdmi-bridge@4c {
		compatible = "ite,it6263";
		reg = <0x4c>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_it6263_en>;
		reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
		status = "okay";

		port {
			it6263_in: endpoint {
				remote-endpoint = <&lvds_out>;
			};
		};
	};
};

&display_subsystem {
	status = "okay";
};

&lvds_ports {
	port@2 {
		reg = <2>;
		lvds_out: endpoint {
			remote-endpoint = <&it6263_in>;
			attach-bridge;
		};
	};
};

&iomuxc {
	pinctrl_lcd_3v3_enable: lcd_3v3_en {
		fsl,pins = <
			MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29 0x19
		>;
	};
	pinctrl_lcd_5v_enable: lcd_5v_en {
		fsl,pins = <
			MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x19
		>;
	};
	pinctrl_it6263_en: it6263_en {
		fsl,pins = <
			MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2	0x19
		>;
	};
};

Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    0.336013] platform 32fd8000.hdmi: Fixing up cyclic dependency with 32fc6000.lcd-controller
[    2.352266] dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
[    2.352931] dwhdmi-imx 32fd8000.hdmi: registered DesignWare HDMI I2C bus driver
[    2.414060] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
...
...

Additional information[edit | edit source]

HDMI framebuffer can be accessed through the modetest utility accessing the imx-drm DRM device for NXP i.MX SoCs.

Here below an example of SBC ORCA configured for HDMI and LVDS outputs:

root@desk-mx8mp:~# modetest -M imx-drm
Encoders:
id	crtc	type	possible crtcs	possible clones	
37	33	LVDS	0x00000001	0x00000001
39	0	TMDS	0x00000002	0x00000002

Connectors:
id	encoder	status		name		size (mm)	modes	encoders
38	37	connected	HDMI-A-1       	340x190		2	37
  modes:
	index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  #1 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
			00ffffffffffff002074560100000000
			141f010380221378fe6435a5544f9e27
			125054bfea0061400101010101010101
			010101010101021900a050d015203020
			780059c21000001e000000fc00543038
			30410a20202020202020000000ff0030
			303030303030300a20202020000000fd
			00304b545413010a20202020202001c9
			020334f1461202030401132309070783
			01000067030c001000384467d85dc401
			448001681a00000109283ce6e50f0000
			0600e200ff0000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			000000000000000000000000000000ca
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:
40	0	disconnected	HDMI-A-2       	0x0		0	39
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:
	41 max bpc:
		flags: range
		values: 8 16
		value: 0

CRTCs:
id	fb	pos	size
33	46	(0,0)	(1280x720)
  #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  props:
	24 VRR_ENABLED:
		flags: range
		values: 0 1
		value: 0
36	0	(0,0)	(0x0)
  #0  nan 0 0 0 0 0 0 0 0 0 flags: ; type: 
  props:
	24 VRR_ENABLED:
		flags: range
		values: 0 1
		value: 0

Planes:
id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs
31	33	46	0,0		0,0	0       	0x00000001
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	32 zpos:
		flags: immutable range
		values: 0 0
		value: 0
34	0	0	0,0		0,0	0       	0x00000002
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	35 zpos:
		flags: immutable range
		values: 0 0
		value: 0

Frame buffers:
id	size	pitch
root@desk-mx8mp:~#

The connectors DRM names are: HDMI-A-1 and LVDS-1. The releated device card is:

root@desk-mx8mp:~# ls -la /dev/dri/card*
crw-rw---- 1 root video 226, 0 Jul 26 05:52 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Jul 26 05:52 /dev/dri/card1
root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    3.466020] imx-drm 32c00000.bus:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[    3.759770] imx-drm 32c00000.bus:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[    3.775867] imx-drm 32c00000.bus:display-subsystem: bound 32e10000.mipi_dsi (ops imx_sec_dsim_ops)
[    3.785440] [drm] Initialized imx-drm 1.0.0 20120507 for 32c00000.bus:display-subsystem on minor 1
...
[    6.341483] imx-drm 32c00000.bus:display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device
...
...

Additional information[edit | edit source]

HDMI framebuffer can be accessed through the modetest utility accessing the imx-drm DRM device for NXP i.MX SoCs.

Here below an example of MITO 8M Mini configured for HDMI and LVDS outputs:

root@desk-mx8mm:~# modetest -M imx-drm
Encoders:
id      crtc    type    possible crtcs  possible clones
34      33      DSI     0x00000001      0x00000001

Connectors:
id      encoder status          name            size (mm)       modes   encoders
35      34      connected       HDMI-A-1        340x190         2       34
  modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  #1 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
                        00ffffffffffff002074560100000000
                        141f010380221378fe6435a5544f9e27
                        125054bfea0061400101010101010101
                        010101010101021900a050d015203020
                        780059c21000001e000000fc00543038
                        30410a20202020202020000000ff0030
                        303030303030300a20202020000000fd
                        00304b545413010a20202020202001c9
                        020334f1461202030401132309070783
                        01000067030c001000384467d85dc401
                        448001681a00000109283ce6e50f0000
                        0600e200ff0000000000000000000000
                        00000000000000000000000000000000
                        00000000000000000000000000000000
                        00000000000000000000000000000000
                        000000000000000000000000000000ca
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0
        5 link-status:
                flags: enum
                enums: Good=0 Bad=1
                value: 0
        6 non-desktop:
                flags: immutable range
                values: 0 1
                value: 0
        4 TILE:
                flags: immutable blob
                blobs:

                value:

CRTCs:
id      fb      pos     size
33      39      (0,0)   (1280x720)
  #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  props:
        24 VRR_ENABLED:
                flags: range
                values: 0 1
                value: 0

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
31      33      39      0,0             0,0     0               0x00000001
  formats: XR24 AR24 RG16 XB24 AB24 RX24 RA24 AR15 XR15 AB15 XB15 BG16
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 1
        32 zpos:
                flags: immutable range
                values: 0 0
                value: 0

Frame buffers:
id      size    pitch

The connectors DRM names are: HDMI-A-1 and LVDS-1. The releated device card is:

root@desk-mx8mm:~# ls -la /dev/dri/card*
crw-rw---- 1 root video 226, 0 Apr 29 00:39 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Apr 29 00:39 /dev/dri/card1




Peripheral LVDS[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree modification on standard DAVE's kit for the ORCA SOM:

Example of definition aboud LVDS to HDMI convert from imx8mp-mito8mplus-cb1008.dts

...
...
	reg_lvds_en: regulator_lcd_3V3_en {
		compatible = "regulator-fixed";
		regulator-name = "lvds_enable";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lcd_3v3_enable>;
		gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
		regulator-always-on;
	};

	reg_vccbkl_en: regulator_lcd_5V_en {
		compatible = "regulator-fixed";
		regulator-name = "vddbkl_enable";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lcd_5v_enable>;
		gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
		regulator-always-on;
	};
...
...
&i2c6 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c6>;
	status = "okay";

	lvds_bridge: lvds-to-hdmi-bridge@4c {
		compatible = "ite,it6263";
		reg = <0x4c>;
		reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
		status = "okay";

		port {
			it6263_in: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};
};
...
...

&lcdif2 {
	status = "okay";
};
...
...
&ldb {
	status = "okay";

	lvds-channel@0 {
		fsl,data-mapping = "jeida";
		fsl,data-width = <24>;
		status = "okay";

		port@1 {
			reg = <1>;

			lvds0_out: endpoint {
				remote-endpoint = <&it6263_in>;
			};
		};
	};
};
...
...
&ldb_phy {
	status = "okay";
};
...
...
&iomuxc {
	pinctrl_lcd_3v3_enable: lcd_3v3_en {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06		0x19
		>;
	};


	pinctrl_lcd_5v_enable: lcd_5v_en {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08		0x19
		>;
	};
};

Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    1.487645] [drm] Initialized vivante 1.0.0 20170808 for 40000000.mix_gpu_ml on minor 0
[    2.443613] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[    2.453352] imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops)
[    2.461529] imx-drm display-subsystem: bound 32c00000.bus:ldb@32ec005c (ops imx8mp_ldb_ops)
[    2.469910] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
[    2.477563] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 1
[    3.377095] imx-drm display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device

...
...

DRM access[edit | edit source]

DRM framework can be accessed using the modetest DRM utility.

root@desk-mx8mp:~# modetest -M imx-drm
Encoders:
id	crtc	type	possible crtcs	possible clones	
37	33	LVDS	0x00000001	0x00000001
39	0	TMDS	0x00000002	0x00000002

Connectors:
id	encoder	status		name		size (mm)	modes	encoders
38	37	connected	HDMI-A-1       	340x190		2	37
  modes:
	index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  #1 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
			00ffffffffffff002074560100000000
			141f010380221378fe6435a5544f9e27
			125054bfea0061400101010101010101
			010101010101021900a050d015203020
			780059c21000001e000000fc00543038
			30410a20202020202020000000ff0030
			303030303030300a20202020000000fd
			00304b545413010a20202020202001c9
			020334f1461202030401132309070783
			01000067030c001000384467d85dc401
			448001681a00000109283ce6e50f0000
			0600e200ff0000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			00000000000000000000000000000000
			000000000000000000000000000000ca
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:
40	0	disconnected	HDMI-A-2       	0x0		0	39
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:
	41 max bpc:
		flags: range
		values: 8 16
		value: 0

CRTCs:
id	fb	pos	size
33	46	(0,0)	(1280x720)
  #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  props:
	24 VRR_ENABLED:
		flags: range
		values: 0 1
		value: 0
36	0	(0,0)	(0x0)
  #0  nan 0 0 0 0 0 0 0 0 0 flags: ; type: 
  props:
	24 VRR_ENABLED:
		flags: range
		values: 0 1
		value: 0

Planes:
id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs
31	33	46	0,0		0,0	0       	0x00000001
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	32 zpos:
		flags: immutable range
		values: 0 0
		value: 0
34	0	0	0,0		0,0	0       	0x00000002
  formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	35 zpos:
		flags: immutable range
		values: 0 0
		value: 0

Frame buffers:
id	size	pitch

root@desk-mx8mp:~#

Additional information[edit | edit source]

For some information on DRM/KMS framework, see the DRM-KMS kernel documentation.



Peripheral MIPI[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

&mipi_csi_0 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	port@0 {
		reg = <0>;
		mipi_csi0_ep: endpoint {
			remote-endpoint = <&ov5640_mipi_0_ep>;
			data-lanes = <2>;
			csis-hs-settle = <13>;
			csis-clk-settle = <2>;
			csis-wclk;
		};
	};
};

&mipi_csi_1 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	port@1 {
		reg = <1>;
		mipi_csi1_ep: endpoint {
			remote-endpoint = <&ov5640_mipi_1_ep>;
			data-lanes = <2>;
			csis-hs-settle = <13>;
			csis-clk-settle = <2>;
			csis-wclk;
		};
	};
};

From imx8mp-mito8mplus.dtsi:


&iomuxc {
...
...
	pinctrl_mipi_dsi_en: mipi_dsi_en {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08	0x16
		>;
	};
...
...
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MINI SOM:

From imx8mm-mito8mmini-sbcx.dts:

...
...
	regulators {
...
...
		reg_csi_en: regulator-csi-en {
			compatible = "regulator-fixed";
			regulator-name = "csi_enable";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_csi_pwn>;
			gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
			enable-active-high;
			regulator-always-on;
		};
...
...
&csi1_bridge {
	fsl,mipi-mode;
	status = "okay";
	port {
		csi1_ep: endpoint {
			remote-endpoint = <&csi1_mipi_ep>;
		};
	};
};
...
...
&i2c3 {
...
...
	/* Digilent Pcam 5C */
	ov5640_mipi: ov5640_mipi@3c {
		compatible = "ovti,ov5640_mipi";
		reg = <0x3c>;
		status = "okay";
		pinctrl-names = "default";
		clocks = <&clk IMX8MM_CLK_CLKO1>;
		clock-names = "csi_mclk";
		assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
		assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
		assigned-clock-rates = <24000000>;
		csi_id = <0>;
		mclk = <24000000>;
		mclk_source = <0>;
		port {
			ov5640_mipi1_ep: endpoint {
				remote-endpoint = <&mipi1_sensor_ep>;
			};
		};
...
...
&mipi_csi_1 {
...
...
	port {
		mipi1_sensor_ep: endpoint@1 {
			remote-endpoint = <&ov5640_mipi1_ep>;
			data-lanes = <2>;
			csis-hs-settle = <13>;
			csis-clk-settle = <2>;
			csis-wclk;
		};

		csi1_mipi_ep: endpoint@2 {
			remote-endpoint = <&csi1_ep>;
		};
	};
...
...
&iomuxc {
...
...
	pinctrl_csi_pwn: csi_pwn_grp {
		fsl,pins = <
			MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9		0x19
		>;
	};
...
...

Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

MIPI CSI-2 driver initialized:

...
...
[    2.296546] mxc-mipi-csi2-sam 32e40000.csi: supply mipi-phy not found, using dummy regulator
[    2.324079] mxc-mipi-csi2-sam 32e40000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 500000000
[    2.334821] mxc-mipi-csi2-sam 32e50000.csi: supply mipi-phy not found, using dummy regulator
[    2.355562] mxc-mipi-csi2-sam 32e50000.csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 266000000
...
...

and if a MIPI camera is inserted, it has been recognized and its video driver loaded:

...
...
[    1.750387] ov5640 1-003c: supply DOVDD not found, using dummy regulator
[    1.757190] ov5640 1-003c: supply AVDD not found, using dummy regulator
[    1.763868] ov5640 1-003c: supply DVDD not found, using dummy regulator
[    1.788593] ov5640 2-003c: supply DOVDD not found, using dummy regulator
[    1.795388] ov5640 2-003c: supply AVDD not found, using dummy regulator
[    1.802044] ov5640 2-003c: supply DVDD not found, using dummy regulator
[    7.018212] mx8-img-md: Registered sensor subdevice: ov5640 2-003c (1)
[    7.025152] mx8-img-md: Registered sensor subdevice: ov5640 1-003c (2)
[    7.059219] mx8-img-md: created link [ov5640 1-003c] => [mxc-mipi-csi2.0]
[    7.068913] mx8-img-md: created link [ov5640 2-003c] => [mxc-mipi-csi2.1]
...
...

Then check that the camera are correctly recognized.

root@desk-mx8mp:~# ls -la /dev/video[1-2]
crw-rw---- 1 root video 81, 1 Jul 26 05:52 /dev/video1
crw-rw---- 1 root video 81, 2 Jul 26 05:52 /dev/video2
root@desk-mx8mp:~#

Usage with gstreamer[edit | edit source]

Video capture and display using Pcam 5C OV5640 MIPI camera:

root@desk-mx8mp:~# gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw,width=1280,height=720" ! queue ! videorate ! vpuenc_h264 ! avimux ! filesink location=camera_test.avi
Setting pipeline to PAUSED ...
====== VPUENC: 4.7.2 build on Sep  1 2022 09:49:28. ======
        wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Aug 31 2022 01:28:14)
        vpulib: 1.1.1
        firmware: 1.1.1.43690
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[ 1130.711257] bypass csc
[ 1130.713690] input fmt YUV4
[ 1130.716433] output fmt YUYV
Redistribute latency...
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:01:17.622451702
Setting pipeline to NULL ...
Freeing pipeline ...
root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Linux messages at boot time[edit | edit source]

MIPI CSI-2 driver initialized:

...
...  
[    3.002816] mxc_mipi-csi 32e30000.mipi_csi: supply mipi-phy not found, using dummy regulator
[    3.016644] mxc_mipi-csi 32e30000.mipi_csi: mipi csi v4l2 device registered
[    3.023627] CSI: Registered sensor subdevice: mxc_mipi-csi.0
[    3.037706] mxc_mipi-csi 32e30000.mipi_csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 333000000
...
...

and if a MIPI camera is inserted, it has been recognized and its video driver loaded:

...
...
[    1.789827] ov5640_mipi 2-003c: No pin available
[    1.794462] ov5640_mipi 2-003c: No sensor pwdn pin available
[    1.800135] ov5640_mipi 2-003c: No sensor reset pin available
[    1.805926] ov5640_mipi 2-003c: supply DOVDD not found, using dummy regulator
[    1.813173] ov5640_mipi 2-003c: supply DVDD not found, using dummy regulator
[    1.820266] ov5640_mipi 2-003c: supply AVDD not found, using dummy regulator
[    2.859688] ov5640_mipi 2-003c: Camera is found
[    3.029304] mxc_mipi-csi 32e30000.mipi_csi: Registered sensor subdevice: ov5640_mipi 2-003c
...
...

Subsequently check that the driver has made the bind.

root@desk-mx8mm:~# ls -la /sys/bus/i2c/drivers/ov5640_mipi/2-003c
lrwxrwxrwx 1 root root 0 Jul 26 06:14 /sys/bus/i2c/drivers/ov5640_mipi/2-003c -> ../../../../devices/platform/soc@0/30800000.bus/30a40000.i2c/i2c-2/2-003c

Additional information[edit | edit source]

More information about gstreamer on its web site.

More information about i.MX gstreamer plugin on the gstreamer-imx web site



Peripheral SD[edit | edit source]

Device tree configuration[edit | edit source]

N.B. The USDHC interface is re-configured on carrier device tree because of the Card Detect pin (which is related to the real board hardware implementation).

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
	bus-width = <4>;
	status = "okay";
};

From imx8mp-mito8mplus.dtsi:

&iomuxc {
...
...
	pinctrl_usdhc2_gpio: usdhc2grp-gpio {
		fsl,pins = <
			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 	0x1c4
		>;
	};

	pinctrl_usdhc2: usdhc2grp {
		fsl,pins = <
			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
		>;
	};
...
...
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini SOM:

From imx8mm-mito8mmini-sbcx.dts :

...
...
&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
	no-1-8-v;
	bus-width = <4>;
	status = "okay";
};
...
...
&iomuxc {
...
...
	pinctrl_usdhc2_gpio: usdhc2grpgpio {
		fsl,pins = <
			MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12		0x159
			MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
		>;
	};
...
...

From imx8mm-mito8mmini.dtsi:

...
...
&iomuxc {
...
...
	pinctrl_usdhc2: usdhc2grp {
		fsl,pins = <
			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
		>;
	};
...
...
};

Accessing the peripheral in ORCA SOM[edit | edit source]

Once initialized, the SD device is mapped to the standard /dev/mmcblk1pX block device, depending on how many partition are created on the SD card.

Linux messages at boot time[edit | edit source]

If the microSd card is inserted at boot time, the kernel - once the USDHC interface has been initialized - prints the device information and the partition detected like p1, p2, etc.:

...
...
[    1.282690] sdhci: Secure Digital Host Controller Interface driver
[    1.288886] sdhci: Copyright(c) Pierre Ossman
[    1.300778] sdhci-pltfm: SDHCI platform and OF driver helper
...
...
[    1.339697] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    1.443523] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[    1.451490] mmcblk2: mmc2:0001 DG4008 7.28 GiB 
[    1.458874]  mmcblk2: p1 p2
[    1.463171] mmcblk2boot0: mmc2:0001 DG4008 4.00 MiB 
[    1.469396] mmcblk2boot1: mmc2:0001 DG4008 4.00 MiB 
[    1.475225] mmcblk2rpmb: mmc2:0001 DG4008 4.00 MiB, chardev (234:0)
[    2.295899] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    2.332175] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    2.392913] mmc1: host does not support reading read-only switch, assuming write-enable
[    2.413335] mmc1: new high speed SDHC card at address e624
[    2.421697] mmcblk1: mmc1:e624 SA32G 29.7 GiB 
[    2.437619]  mmcblk1: p1 p2
[    2.482754] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[    2.581058] mmc0: queuing unknown CIS tuple 0x01 [d9 01 ff] (3 bytes)
[    2.646670] mmc0: queuing unknown CIS tuple 0x1a [01 01 00 02 07] (5 bytes)
[    2.661025] mmc0: queuing unknown CIS tuple 0x1b [c1 41 30 30 ff ff 32 00] (8 bytes)
[    2.670231] mmc0: queuing unknown CIS tuple 0x14 [] (0 bytes)
[    2.698070] mmc0: new high speed SDIO card at address 0001
...
...
[    3.459672] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    5.948716] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null). Quota mode: none.
[    8.732777] EXT4-fs (mmcblk2p1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    8.888051] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
...
...

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Once initialized, the SD device is mapped to the standard /dev/mmcblk1pX block device, depending on how many partition are created on the SD card.

Linux messages at boot time[edit | edit source]

If the microSd card is inserted at boot time, the kernel - once the USDHC interface has been initialized - prints the device information and the partition detected like p1, p2, etc.:

...
...
[    1.379522] sdhci: Secure Digital Host Controller Interface driver
[    1.385730] sdhci: Copyright(c) Pierre Ossman
[    1.397234] sdhci-pltfm: SDHCI platform and OF driver helper
...
...
[    1.435202] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[    1.539279] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[    1.547131] mmcblk0: mmc0:0001 DG4008 7.28 GiB 
[    1.553521] mmcblk0boot0: mmc0:0001 DG4008 4.00 MiB 
[    1.559975] mmcblk0boot1: mmc0:0001 DG4008 4.00 MiB 
[    1.569632] mmcblk0rpmb: mmc0:0001 DG4008 4.00 MiB, chardev (234:0)
[    3.066839] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    3.105414] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    3.146851] mmc1: host does not support reading read-only switch, assuming write-enable
[    3.165466] mmc1: new high speed SDHC card at address 1234
[    3.171447] mmcblk1: mmc1:1234 SA32G 28.9 GiB 
[    3.178028]  mmcblk1: p1 p2
[    3.261067] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    3.304829] mmc2: queuing unknown CIS tuple 0x01 [d9 01 ff] (3 bytes)
[    3.331827] mmc2: queuing unknown CIS tuple 0x1a [01 01 00 02 07] (5 bytes)
[    3.347607] mmc2: queuing unknown CIS tuple 0x1b [c1 41 30 30 ff ff 32 00] (8 bytes)
[    3.361278] mmc2: queuing unknown CIS tuple 0x14 [] (0 bytes)
[    3.394876] mmc2: new high speed SDIO card at address 0001
...
...
[    3.450627] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    6.088500] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null). Quota mode: none.
...
...

Additional information[edit | edit source]

If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:

root@desk-mx8mp:~# mkdir -p /mnt/boot
root@desk-mx8mp:~# mkdir -p /mnt/rfs
root@desk-mx8mp:~# mount /dev/mmcblk1p1 /mnt/boot/
root@desk-mx8mp:~# mount /dev/mmcblk1p2 /mnt/rfs/
root@desk-mx8mp:~# ls /mnt/boot/
Image  boot.scr  imx8mp-mito8mplus-cb1001.dtb  imx8mp-mito8mplus-cb1004.dtb  imx8mp-mito8mplus-cb1005.dtb  imx8mp-mito8mplus-cb1008.dtb  splash_image.bmp  stress_m7.bin  tee.bin
root@desk-mx8mp:~# ls /mnt/rfs/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  run  sbin  srv  sys  tmp  unit_tests  usr  var
root@desk-mx8mp:~#

and then the mounted partition are available on the /mnt/boot and /mnt/rfs root file system directories.

This instruction can be performed both on ORCA and MITO 8M MINI.



Peripheral UART[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree modifications to standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus.dtsi:

...
...
&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart4_j8>;
	assigned-clocks = <&clk IMX8MP_CLK_UART4>;
	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
	/*fsl,uart-has-rtscts;*/
	status = "disabled";
};
...
...
&iomuxc {
...
...
	pinctrl_uart4: uart4grp {
		fsl,pins = <
			MX8MP_IOMUXC_ECSPI2_SCLK__UART4_DCE_RX		0x140
			MX8MP_IOMUXC_ECSPI2_MOSI__UART4_DCE_TX		0x140
			MX8MP_IOMUXC_ECSPI2_MISO__UART4_DCE_CTS		0x140
			MX8MP_IOMUXC_ECSPI2_SS0__UART4_DCE_RTS		0x140
		>;
	};

	pinctrl_uart4_j8: uart4grp {
		fsl,pins = <
			MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX	0x140
			MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX	0x140
		>;
	};
...

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini SOM:

From imx8mm-mito8mmini.dtsi:

...
...
&uart1 {
	assigned-clocks = <&clk IMX8MM_CLK_UART1>;
	assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
	status = "disabled";
};
...
...
&iomuxc {
...
...
	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140
			MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140
			MX8MM_IOMUXC_UART3_RXD_UART1_DCE_CTS_B	0x140
			MX8MM_IOMUXC_UART3_TXD_UART1_DCE_RTS_B	0x140
		>;
	};
...
...


From imx8mm-mito8mmini-sbcx.dts:

...
...

/ {
	regulators: regulators {
...
...
		/* enable ISL3330IAZ on SBCX at boot */
		reg_uart1_en: uart1_en {
			compatible = "regulator-fixed";
			regulator-name = "uart1_en";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_uart1_en>;
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
		};
...
...
	};
};
...
...
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	fsl,uart-has-rtscts;
	status = "okay";
};
...
...
&iomuxc {
...
...
	pinctrl_uart1_en: uart1_en {
		fsl,pins = <
			MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24			 0x19
		>;
	};

...
...


Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    0.836042] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 31, base_baud = 5000000) is a IMX
[    0.843116] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 32, base_baud = 5000000) is a IMX
[    0.851863] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 33, base_baud = 1500000) is a IMX
[    0.860354] printk: console [ttymxc1] enabled
...
...

Usage with stty[edit | edit source]

N.B. UART mapping respect to ttymxcX is the following one:

UART1 (RS232) <-> ttymxc0
UART2 (Serial Port) <-> ttymxc1
UART3 (UART) <-> ttymxc2
UART4 (RS485) <-> ttymxc3
...
root@desk-mx8mp:~# stty -F /dev/ttymxc0 115200 -echo -raw
root@desk-mx8mp:~# cat /dev/ttymxc0 > test_ttymxc0.log &
[1] 1868
root@desk-mx8mp:~# echo "Test loopback" > /dev/ttymxc0
root@desk-mx8mp:~# cat test_ttymxc0.log
Test loopback

root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Linux messages at boot time[edit | edit source]

...
...
[    0.812632] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 40, base_baud = 5000000) is a IMX                                                                                                                                           
[    0.860368] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 42, base_baud = 1500000) is a IMX                                                                                                                                           
[    0.869035] printk: console [ttymxc1] enabled
...
...

Usage with stty[edit | edit source]

N.B. UART mapping respect to ttymxcX is the following one:

UART1 (RS232/RS485/RS422 port DB9) <-> ttymxc0
UART2 (Serial Port) <-> ttymxc1
UART3 (PMOD) <-> ttymxc2
UART4 (UART for Cortex-M4) <-> ttymxc3
...
root@desk-mx8mm:~# dmesg | grep tty^C
root@desk-mx8mm:~# stty -F /dev/ttymxc0 115200 -echo -raw
root@desk-mx8mm:~# cat /dev/ttymxc0 > test_ttymxc0.log &
[1] 1313
root@desk-mx8mm:~# echo "Test loopback" > /dev/ttymxc0
root@desk-mx8mm:~# cat test_ttymxc0.log 
Test loopback

root@desk-mx8mm:~#

Additional information[edit | edit source]

Serial ports can be used through the standard serial programming API.

For detailed information, please refer to the Serial Programming HOWTO at Serial-Programming-HOWTO



Peripheral USB-C[edit | edit source]

SBC ORCA[edit | edit source]

In SBC Orca two USB-C ports were mounted, that is:

  • USB-C 1
  • USB-C 2

USB-C 1[edit | edit source]

The USB-C 1 port is used to power-supply the board and for the transfer of data by Downstream-Facing Port (DFP) mode. The connector that is inserted in this port works in both side.

In U-Boot you can use this port only to power-supply the board and not for data transfer. In Linux you can use this port for data transfer.

For more information, refer to the example in USB1 OTG.

USB-C 2[edit | edit source]

The USB-C 2 port is used for data transfer. The connector that is inserted in this port works in both side.

In U-Boot you can use this port to transmit data with an external device, Downstream-Facing Port (DFP) mode, and to use the UUU functionality of NXP. In Linux you can use the Dual-Role Data mode (DRD).

For more information, refer to the example in USB2 OTG.

Device tree configuration in ORCA SOM[edit | edit source]

From imx8mp-mito8mplus-cb1001.dts:

&iomuxc {
	pinctrl_ptn5150: ptn5150grp {
		fsl,pins = <
			MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00	0x156
			MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14 0x16
		>;
	};
...
...
	extcon_usbotg2: typec@3d {
		compatible = "nxp,ptn5150";
		reg = <0x3d>;
		int-gpios = <&gpio1 00 GPIO_ACTIVE_LOW>;
		vbus-gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ptn5150>;
		status = "okay";
	};
...
...



Peripheral USB1 OTG[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

...
...
&usb3_phy0 {
	vbus-power-supply = <&ptn5110>;
	fsl,phy-tx-vref-tune = <6>;
	fsl,phy-tx-rise-tune = <0>;
	fsl,phy-tx-preemp-amp-tune = <3>;
	fsl,phy-comp-dis-tune = <7>;
	fsl,pcs-tx-deemph-3p5db = <0x21>;
	fsl,phy-pcs-tx-swing-full = <0x7f>;
	status = "okay";
};

&usb3_0 {
	status = "okay";
};

&usb_dwc3_0 {
	dr_mode = "host";
	status = "okay";

	port {
		usb3_drd_sw: endpoint {
			remote-endpoint = <&typec_dr_sw>;
		};
	};
};
...
...

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini:

From imx8mm-mito8mmini.dtsi:

...
...
&usbotg1 {
	dr_mode = "otg";
	picophy,pre-emp-curr-control = <3>;
	picophy,dc-vol-level-adjust = <7>;
	disable-over-current;
	srp-disable;
	hnp-disable;
	adp-disable;
	status = "disabled";
};
...
...

From imx8mm-mito8mmini-sbcx.dts:

...
...
&usbotg1 {
	status = "okay";
};
...
...

Accessing the peripheral SBC ORCA[edit | edit source]

Linux messages in host mode[edit | edit source]

When a USB2.0 peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. class, vendor id, product id, etc.)

root@desk-mx8mp:~# [ 2778.596667] usb 1-1.2: new high-speed USB device number 4 using xhci-hcd
[ 2778.733583] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[ 2778.741662] scsi host0: usb-storage 1-1.2:1.0       
[ 2780.854831] scsi 0:0:0:0: Direct-Access     Fanxiang F206             1100 PQ: 0 ANSI: 4
[ 2780.864795] sd 0:0:0:0: [sda] 61440000 512-byte logical blocks: (31.5 GB/29.3 GiB)                                                                                                                                                         
[ 2780.875879] sd 0:0:0:0: [sda] Write Protect is off
[ 2780.882883] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[ 2780.883777] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2780.902324]  sda: sda1
[ 2780.908573] sd 0:0:0:0: [sda] Attached SCSI removable disk

When a USB3.0 peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. class, vendor id, product id, etc.)

root@desk-mx8mp:~# [ 2786.628638] usb 2-1.2: new SuperSpeed USB device number 4 using xhci-hcd
[ 2786.663569] usb-storage 2-1.2:1.0: USB Mass Storage device detected
[ 2786.670261] scsi host0: usb-storage 2-1.2:1.0
[ 2787.695351] scsi 0:0:0:0: Direct-Access     Wilk     USB DISK 3.0     PMAP PQ: 0 ANSI: 6
[ 2787.719089] sd 0:0:0:0: [sda] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
[ 2787.727267] sd 0:0:0:0: [sda] Write Protect is off
[ 2787.732132] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
[ 2787.733341] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2787.818114]  sda:
[ 2787.822985] sd 0:0:0:0: [sda] Attached SCSI removable disk

Additional information[edit | edit source]

If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:

root@desk-mx8mp:~# mkdir -p /mnt/usb
root@desk-mx8mp:~# mount /dev/sda1 /mnt/usb
root@desk-mx8mp:~# ls -la /mnt/usb
total 104
drwxr-xr-x 5 root root  4096 Jul 26 06:58 .
drwxr-xr-x 3 root root  4096 Jul 26 06:45 ..
drwxr-xr-x 2 root root  4096 Jul 26 06:57 boot
-rw-r--r-- 1 root root 33432 Jul 26 06:57 boot.scr
-rw-r--r-- 1 root root     0 Jul 26 06:57 config.txt
drwx------ 2 root root 16384 Jul 26 06:54 lost+found
drwxr-xr-x 2 root root  4096 Jul 26 06:58 rfs
-rw-r--r-- 1 root root 33432 Jul 26 06:58 settings.txt

Accessing the peripheral MITO 8M Mini[edit | edit source]

Usage with mass-storage[edit | edit source]

root@desk-mx8mm:~# dd if=/dev/zero of=mass_storage count=256 bs=1M
256+0 records in
256+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 0.844688 s, 318 MB/s
root@desk-mx8mp:~# mkfs.msdos mass_storage
mkfs.fat 4.1 (2017-01-24)
root@desk-mx8mm:~# mkdir loop
root@desk-mx8mm:~# mount -o loop mass_storage loop
root@desk-mx8mm:~# echo "Test USB OTG with mass storage device" > loop/usb.txt
root@desk-mx8mm:~# umount loop
root@desk-mx8mm:~#

then insert the g_mass_storage kernel module driver enabling an Windows PC to see it as a removable device

root@desk-mx8mm:~# modprobe g_mass_storage removable=y file=mass_storage
[  128.240835] Mass Storage Function, version: 2009/09/11
[  128.246113] LUN: removable file: (no medium)
[  128.250510] LUN: removable file: /home/root/mass_storage
[  128.255874] Number of LUNs=1
[  128.259140] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11
[  128.266151] g_mass_storage gadget: userspace failed to provide iSerialNumber
[  128.273216] g_mass_storage gadget: g_mass_storage ready
root@desk-mx8mm:~#

Once the USB cable is connected to the PC, the kernel prints the following messages:

root@desk-mx8mm:~# [  892.036840] g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage

and the Windows PC activate the driver and the disk is available as a Drive Unit (with the usb.txt file available).




Peripheral USB2 OTG[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

...
...
&usb3_phy1 {
	fsl,phy-tx-preemp-amp-tune = <2>;
	status = "okay";
};

&usb3_1 {
	status = "okay";
};

&usb_dwc3_1 {
	dr_mode = "otg";
	extcon = <&extcon_usbotg2>;
	hnp-disable;
	srp-disable;
	adp-disable;
	rsp-disable;
	disable-over-current;
	status = "okay";
};
...
...

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini:

From imx8mm-mito8mmini.dtsi:

...
...
&usbotg2 {
	dr_mode = "host";
	picophy,pre-emp-curr-control = <3>;
	picophy,dc-vol-level-adjust = <7>;
	status = "disabled";
};
...
...

From imx8mm-mito8mmini-sbcx.dts:

...
...
/ {

	regulators: regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		reg_usb_pwr: usb_pwr {
			compatible = "regulator-fixed";
			regulator-name = "usb_pwr_en";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};
...
...
	};
};
...
...
&usbotg2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb_pwr>;
	vbus-supply = <&reg_usb_pwr>;
	status = "okay";
};
...
...
&iomuxc {
...
...
	pinctrl_usb_pwr: usbpwrgrp {
		fsl,pins = <
			MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12			  0x19
		>;
	};
...
...
};

... ...

Accessing the peripheral SBC ORCA[edit | edit source]

Linux messages in host mode[edit | edit source]

When a USB 2.0 peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. class, vendor id, product id, etc.)

root@desk-mx8mp:~# [  949.406404] [ 6491.481175] usb 3-1: new high-speed USB device number 3 using xhci-hcd
[ 6491.639810] usb-storage 3-1:1.0: USB Mass Storage device detected                     
[ 6491.646905] scsi host0: usb-storage 3-1:1.0                                                                         
[ 6493.775259] scsi 0:0:0:0: Direct-Access     Fanxiang F206             1100 PQ: 0 ANSI: 4
[ 6493.786654] sd 0:0:0:0: [sda] 61440000 512-byte logical blocks: (31.5 GB/29.3 GiB)                       
[ 6493.795475] sd 0:0:0:0: [sda] Write Protect is off                                                                  
[ 6493.801799] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 6493.818546]  sda: sda1                                                                                              
[ 6493.824653] sd 0:0:0:0: [sda] Attached SCSI removable disk
root@desk-mx8mp:~#

When a USB 3.0 peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. class, vendor id, product id, etc.)

root@desk-mx8mp:~# [ 6798.669673] usb 4-1: new SuperSpeed USB device number 3 using xhci-hcd
[ 6798.703673] usb-storage 4-1:1.0: USB Mass Storage device detected
[ 6798.710479] scsi host1: usb-storage 4-1:1.0
[ 6799.719808] scsi 1:0:0:0: Direct-Access     Wilk     USB DISK 3.0     PMAP PQ: 0 ANSI: 6
[ 6799.732902] sd 1:0:0:0: [sdb] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
[ 6799.741747] sd 1:0:0:0: [sdb] Write Protect is off
[ 6799.747177] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 6799.934800]  sdb:
[ 6799.940848] sd 1:0:0:0: [sdb] Attached SCSI removable disk

Usage in device mode with mass-storage[edit | edit source]

root@desk-mx8mp:~#  dd if=/dev/zero of=mass_storage count=256 bs=1M
256+0 records in                                                                                                       
256+0 records out   
268435456 bytes (268 MB, 256 MiB) copied, 0.987911 s, 272 MB/s
root@desk-mx8mp:~# mkfs.msdos mass_storage                                                                                                                                                                                                    
mkfs.fat 4.2 (2021-01-31)
root@desk-mx8mp:~# mkdir loop
root@desk-mx8mp:~# mount -o loop mass_storage loop
[ 6664.248804] loop0: detected capacity change from 0 to 524288
root@desk-mx8mp:~# echo "Test USB OTG with mass storage device" > loop/usb.txt
root@desk-mx8mp:~# umount loop
root@desk-mx8mp:~# 

then insert the g_mass_storage kernel module driver enabling an Windows PC to see it as a removable device

root@desk-mx8mp:~# modprobe g_mass_storage removable=y file=mass_storage
[ 6677.844877] Mass Storage Function, version: 2009/09/11
[ 6677.850190] LUN: removable file: (no medium)
[ 6677.854585] LUN: removable file: /home/root/mass_storage
[ 6677.859933] Number of LUNs=1
[ 6677.863239] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11
[ 6677.870221] g_mass_storage gadget: userspace failed to provide iSerialNumber
[ 6677.877281] g_mass_storage gadget: g_mass_storage ready
root@desk-mx8mp:~#

Once the USB cable is connected to the PC, the kernel prints the following messages:

root@desk-mx8mp:~# [ 1493.477167] g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage

and the Windows PC activate the driver and the disk is available as a Drive Unit (with the usb.txt file available).

Accessing the peripheral MITO 8M Mini[edit | edit source]

Linux messages[edit | edit source]

When a USB 2.0 peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. class, vendor id, product id, etc.)

root@desk-mx8mm:~# [   22.858909] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[   23.022240] usb-storage 1-1:1.0: USB Mass Storage device detected
[   23.028819] scsi host0: usb-storage 1-1:1.0
[   24.045317] scsi 0:0:0:0: Direct-Access     SanDisk  Cruzer Force     1.00 PQ: 0 ANSI: 6
[   24.055280] sd 0:0:0:0: [sda] 60088320 512-byte logical blocks: (30.8 GB/28.7 GiB)
[   24.063993] sd 0:0:0:0: [sda] Write Protect is off
[   24.069617] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   24.142194]  sda: sda1
[   24.150358] sd 0:0:0:0: [sda] Attached SCSI removable disk

Additional information in host mode[edit | edit source]

If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:

root@desk-mx8mp:~# mkdir -p /mnt/usb
root@desk-mx8mp:~# mount /dev/sda1 /mnt/usb
[ 1245.415662] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
root@desk-mx8mp:~# ls -la /mnt/usb
total 128
drwxr-xr-x 10 root root  4096 Jan  1  1970 .
drwxr-xr-x  3 root root  4096 Dec 30 11:24 ..
drwxr-xr-x  2 root root  4096 May 13  2021 System Volume Information
drwxr-xr-x  2 root root  4096 Nov 17 15:27 boot
-rwxr-xr-x  1 root root  8016 Nov 17 15:27 boot.scr
-rwxr-xr-x  1 root root  1712 Dec 10 16:16 config.txt
drwxr-xr-x  2 root root  4096 Nov 17 15:27 rfs
-rwxr-xr-x  1 root root 57458 Nov 17 15:27 run-system-update.sh
-rwxr-xr-x  1 root root   531 Nov 17 15:27 settings.txt



Peripheral PCI express[edit | edit source]

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the ORCA SOM:

From imx8mp-mito8mplus-cb1001.dts:

&pcie {
	status = "okay";
};

&pcie_phy{
	ext_osc = <1>;
	status = "okay";
};

MITO 8M Mini[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the MITO 8M Mini:

From imx8mm-mito8mmini.dtsi:

...
...
	pcie0_refclk: pcie0-refclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <100000000>;
	};
...
...
&pcie0 {
	clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
		 <&clk IMX8MM_CLK_PCIE1_AUX>,
		 <&clk IMX8MM_CLK_PCIE1_PHY>,
		 <&pcie0_refclk>;
	clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
	assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
			  <&clk IMX8MM_CLK_PCIE1_PHY>,
			  <&clk IMX8MM_CLK_PCIE1_CTRL>;
	assigned-clock-rates = <10000000>, <100000000>, <250000000>;
	assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
				 <&clk IMX8MM_SYS_PLL2_100M>,
				 <&clk IMX8MM_SYS_PLL2_250M>;
	ext_osc = <0>;
	status = "disabled";
};
...
...

From imx8mm-mito8mmini-sbcx.dts:

...
...
	regulators {
...
		reg_pcie_pwr: pcie_pwr {
			compatible = "regulator-fixed";
			regulator-name = "PCIe_PWREN";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
			gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};
...
...
&pcie0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pcie0>;
	disable-gpio = <&gpio5 20 GPIO_ACTIVE_LOW>;
	reset-gpio = <&gpio5 21 GPIO_ACTIVE_LOW>;
	wake-gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
	status = "okay";
};
...
...
&iomuxc {
...
...
	pinctrl_pcie0: pcie0grp {
		fsl,pins = <
			MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20			   0x19
			MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21			   0x19
			MX8MM_IOMUXC_SD2_WP_GPIO2_IO20				   0x19
			MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20				0x19
		>;
	};
...
...

Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

PCIe driver initialized:

...
...
[    1.036587] ehci-pci: EHCI PCI platform driver                                                                      
[    1.052769] ohci-pci: OHCI PCI platform driver                                                                      
[    1.998472] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    2.006801] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.      
[    2.012998] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.      
[    2.054543] imx6q-pcie 33800000.pcie: PCIe PLL is locked.                 
[    2.061522] imx6q-pcie 33800000.pcie: iATU unroll: enabled                    
[    2.074094] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    2.088808] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    2.102731] imx6q-pcie 33800000.pcie:   No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[    2.118147] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    2.133976] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    2.149011] imx6q-pcie 33800000.pcie: iATU unroll: enabled                                                                                                                                                                                 
[    2.161122] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound                                                                                                                                                         
[    2.261489] imx6q-pcie 33800000.pcie: Link up
...
...

The PCIe usage is strictly related to the peripheral type connected to the PCIe slot. Then, the peripheral type defines the linux commands used for the accessing (hiding the PCIe bus commands)

PCIe to USB3 example[edit | edit source]

Using a PCIe to USB card, like the following one:

...
...
[    2.370224] imx6q-pcie 33800000.pcie: Link up, Gen2
[    2.490193] imx6q-pcie 33800000.pcie: Link up
[    2.496941] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[    2.503342] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.508847] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.515037] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff]
[    2.528514] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    2.534560] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    2.540846] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    2.547588] pci 0000:00:00.0: supports D1
[    2.551605] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    2.560332] pci 0000:01:00.0: [1912:0015] type 00 class 0x0c0330
[    2.566431] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[    2.573586] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    2.592170] pci 0000:00:00.0: BAR 0: assigned [mem 0x18000000-0x180fffff]
[    2.598991] pci 0000:00:00.0: BAR 14: assigned [mem 0x18100000-0x181fffff]
[    2.605889] pci 0000:00:00.0: BAR 6: assigned [mem 0x18200000-0x1820ffff pref]
[    2.613153] pci 0000:01:00.0: BAR 0: assigned [mem 0x18100000-0x18101fff 64bit]
[    2.620514] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    2.625771] pci 0000:00:00.0:   bridge window [mem 0x18100000-0x181fffff]
[    2.632899] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
[    2.638881] pci 0000:01:00.0: enabling device (0000 -> 0002)
[    8.404360] input: wch.cn USB2IIC_CTP_CONTROL as /devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb5/5-1/5-1:1.0/0003:222A:0001.0001/input/input0
[    8.560392] input: wch.cn USB2IIC_CTP_CONTROL as /devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb5/5-1/5-1:1.0/0003:222A:0001.0001/input/input1
...
...

the PCIe to USB 3 bridge is detected:

root@desk-mx8mp:~# lspci
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01)
01:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
root@desk-mx8mp:~# 

and the two additional USB3 ports will be available:

root@desk-mx8mp:~# dmesg | grep -i usb | grep xhci                                                                     
[    2.192089] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    2.221094] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    2.228770] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    2.510185] usb 1-1: new high-speed USB device number 2 using xhci-hcd                                                                                                                                                                     
[    2.862133] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[    2.996133] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 3
[    3.025229] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 4
[    3.032900] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed

root@desk-mx8mp:~#

Inserting an USB key in the second USB3 port:

root@desk-mx8mp:~# [ 7565.281085] usb 6-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 7565.321526] usb-storage 6-2:1.0: USB Mass Storage device detected
[ 7565.329534] scsi host1: usb-storage 6-2:1.0
[ 7566.342855] scsi 1:0:0:0: Direct-Access     Wilk     USB DISK 3.0     PMAP PQ: 0 ANSI: 6
[ 7566.352069] sd 1:0:0:0: [sdb] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
[ 7566.360342] sd 1:0:0:0: [sdb] Write Protect is off
[ 7566.365788] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 7566.555051]  sdb:
[ 7566.559628] sd 1:0:0:0: [sdb] Attached SCSI removable disk
root@desk-mx8mp:~#

Accessing the peripheral in MITO 8M Mini[edit | edit source]

Linux messages at boot time[edit | edit source]

PCIe driver initialized:

...
...                                                                                  
[    1.131579] ehci-pci: EHCI PCI platform driver
[    1.147680] ohci-pci: OHCI PCI platform driver                                                                      
[    3.234024] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    3.242348] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.              
[    3.276463] imx6q-pcie 33800000.pcie: PCIe PLL is locked.        
[    3.284714] imx6q-pcie 33800000.pcie: iATU unroll: enabled               
[    3.295015] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    3.309648] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    3.316925] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    3.330476] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    3.342505] imx6q-pcie 33800000.pcie: iATU unroll: enabled               
[    3.351821] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    3.444200] imx6q-pcie 33800000.pcie: Link up
...
...

Check which are the devices connected to the PCIe.

root@desk-mx8mm:~# lspci
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01)
01:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
root@desk-mx8mm:~#

Additional information[edit | edit source]



Peripheral GPIOs[edit | edit source]

i.MX8 can handle external pins in many different ways and most of them can be configured as GPIOs. When a pin is set as a GPIO, it is possible to read its value, change its direction or change output value directly from the shell.

Device tree configuration[edit | edit source]

ORCA SOM[edit | edit source]

Here below a simple example of device tree configuration for using a GPIO on DAVE's kit for the ORCA SOM with gpio-leds sysfs interface:

From imx8mp-mito8mplus-cb1001.dts:

	leds {
		compatible = "gpio-leds";

		ptn36043_gpio {
			/* this gpio set the USB-C crossbar switch direction.
			 * As the connected peripheral would always be the power source of
			 * the system, hotplug is not possible.
			 * It's status is configured by the bootloader according to the CC
			 * direction and has only to be preserved during the execution.
			 * see usb_dwc3_0 for more details */
			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
	};
...
...
&iomuxc {
...
...
	pinctrl_gpio_led: gpioledgrp {
		fsl,pins = <
			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x19
		>;
	};
...
...
};

Accessing the peripheral in ORCA SOM[edit | edit source]

Linux messages at boot time[edit | edit source]

With the previous leds configuration for the GPIOs, it is possible to find them on sysfs under /sys/class/leds sub-directory:

root@desk-mx8mp:~# ls -la /sys/class/leds/
total 0
drwxr-xr-x  2 root root 0 Jul 26 05:52 .
drwxr-xr-x 87 root root 0 Jul 26 05:52 ..
lrwxrwxrwx  1 root root 0 Jul 26 05:52 mmc0:: -> ../../devices/platform/soc@0/30800000.bus/30b40000.mmc/leds/mmc0::
lrwxrwxrwx  1 root root 0 Jul 26 05:52 mmc1:: -> ../../devices/platform/soc@0/30800000.bus/30b50000.mmc/leds/mmc1::
lrwxrwxrwx  1 root root 0 Jul 26 05:52 mmc2:: -> ../../devices/platform/soc@0/30800000.bus/30b60000.mmc/leds/mmc2::
lrwxrwxrwx  1 root root 0 Jul 26 05:52 ptn36043_gpio -> ../../devices/platform/leds/leds/ptn36043_gpio
root@desk-mx8mp:~#

Usage as led function[edit | edit source]

Setting the brightness node, it is possible to change the GPIO status:

  • read actual led/GPIO status
root@desk-mx8mp:~# cat /sys/class/leds/ptn36043_gpio/brightness 
1
root@desk-mx8mp:~#
  • change led/GPIO status to Low (0)
root@desk-mx8mp:~# echo 0 > /sys/class/leds/ptn36043_gpio/brightness                                                                                                                                                                          
root@desk-mx8mp:~# [ 7970.890896] usb 2-1: USB disconnect, device number 2
  • change led/GPIO status to High (1)
root@desk-mx8mp:~# echo 1 > /sys/class/leds/ptn36043_gpio/brightness                                                                                                                                                                          
root@desk-mx8mp:~# [ 7978.902356] usb 2-1: new SuperSpeed USB device number 5 using xhci-hcd
[ 7979.060143] hub 2-1:1.0: USB hub found
[ 7979.064524] hub 2-1:1.0: 4 ports detected
root@desk-mx8mp:~#

Usage with sysfs[edit | edit source]

It is possible to configure the GPIO pin directly at Linux userspace using sysfs even if it is discouraged: see below .

See here below, an example of configuring a GPIO pin using J8 connector:

  • set J8.11 SAI2_RXD0 (MX8MP_IOMUXC_SAI2_RXD0__GPIO4_IO23) as output GPIO
    • GPIO4_IO23 => (n-1)*32 + IO = (4-1)*32+23 = 119
  • export the GPIO
root@desk-mx8mp:~# echo 119 > /sys/class/gpio/export

Using the GPIO as output

root@desk-mx8mp:~# echo out > /sys/class/gpio/gpio119/direction
  • set the GPIO level
root@desk-mx8mp:~# echo 1 > /sys/class/gpio/gpio119/value
root@desk-mx8mp:~# cat /sys/class/gpio/gpio119/value                                                                                                                                                                                          
1
root@desk-mx8mp:~# echo 0 > /sys/class/gpio/gpio119/value                                                                                                                                                                                     
root@desk-mx8mp:~# cat /sys/class/gpio/gpio119/value 
0
root@desk-mx8mp:~#

For using the GPIO as input:

root@desk-mx8mp:~# echo in > /sys/class/gpio/gpio119/direction
  • read the GPIO level
root@desk-mx8mp:~# cat /sys/class/gpio/gpio119/value
0
root@desk-mx8mp:~#

Note that on i.MX SoC the GPIO value can be read back only if the SION bit is set the pin muxing.

Additional information[edit | edit source]

Information about GPIOs usage under sysfs directory https://www.kernel.org/doc/Documentation/gpio/sysfs.txt

GPIO sysfs deprecated[edit | edit source]

Warning-icon.png sysfs GPIO ABI has been deprecated. See more information here about it. A character device access has to be used, more information here Warning-icon.png

Information about GPIOs library libgpiod - C library and tools - can be found on git.kernel.org