...
Info | ||
---|---|---|
| ||
|
...
Info | ||
---|---|---|
| ||
|
Note | ||
---|---|---|
| ||
Note1: If the board is 2GB LPDDR4 in commercial or industrial temperature, use If the board is SMARC-iMX8M-Q-4G or SMARC-iMX8M-Q-4G-I ( 4GB LPDDR4), use If the board is 6GB LPDDR4, use Note 2: "ser3" stands for console debug port in SMARC definition. In this example, we uses SER3 as debug port. If user uses SER0 as your debug port, make change to "ser0" instead. Same as SER1 and SER2. Note 3: To change the debug port, in addition to u-boot defconfig and uEnv.txt files, you also need to modify plat/imx/imx8m/imx8mqimx8mp/include/platform_def.h in mk in the imx-atf. Find "#define IMX_BOOT_UART_BASE U(0x30860000)BASE ?= 0x30890000" and change to the correct address that defined in uEnv.txt file. Note 4: The SMARC-iMX8MiMX8MP module always boot up from the on-module eMMC flash. The factory default will be flash.bin pre-installed with SER3 as console output. In some cases when the eMMC flash is empty or needs to be upgraded. Users can shunt crossed the TEST# to ground. In this way, the SMARC-iMX8MiMX8MP module will boot up to carrier SD card, if TEST# pin is shunt crossed. The flash.bin image are the same, the difference is how you flash flash.bin. This will be explained in the "Setup SD card" section. |
Copy u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/imx8mqimx8mp-smarc.dtb
to imx-mkimage/iMX8M
directory and copy tools/mkimage
to imx-mkimage/iMX8M/mkimage_uboot
Info | ||
---|---|---|
| ||
|
...
Info | ||
---|---|---|
| ||
make CROSS_COMPILE=${CC} SOC= iMX8M flash_spl_uboot | ||
Note | ||
| ||
If you device has HDMI port use the following command instead. iMX8MP clean
|
If you device has Display Port use the following command instead.
$ make CROSS_COMPILE=${CC} SOC=iMX8M flash_dp_spl_uboot
The flash.bin file will be located at imx-mkimage/iMX8M directory. Go to "Setup SD Card" section to instruct you how to flash this file into SD card.
...
Linux Kernel
...
Download:
For 5.410.24 9 (Based on Freescale imx_NXP lf-5.4.24_2.1.0 official 10.y official release):
Info | ||
---|---|---|
| ||
|
Configure and Build:
Info | ||
---|---|---|
| ||
|
Note | ||
---|---|---|
| ||
DCSS vs LCDIF i.MX8M comes with 2 display controllers: DCSS and LCDIF. DCSS can be connected to either HDMI or MIPI-DSI (to LVDS bridge) and supports resolutions up to 4K. LCDIF can be connected only to MIPI-DSI and supports resolutions up to 1080p. |
Selecting display configuration is a matter of selecting an appropriate DTB file under arch/arm64/boot/dts/embedian
.
All available DTB files are listed in the table below.
DTB File Name | Description | ||
---|---|---|---|
imx8mqimx8mp-smarc.dtb | Device tree blob for no display configuration. | ||
imx8mqimx8mp-smarc-hdmi.dtb | Device tree blob for HDMI display configuration (DCSS). | ||
imx8mqimx8mp-smarc-dp.dtb | Device tree blob for Display Port (DP) display configuration (DCSS). | imx8mq-smarc-lcdif-lvds.dtb | Device tree blob for LCDIF LVDS display configuration. |
imx8mqimx8mp-smarc-dcss-lvdsm7.dtb | Device tree blob for DCSS LVDS display configuration. | imx8mq-smarc-dual-display.dtb | Device tree blob for dual LVDS+HDMI display Cortex-M7 co-processor configuration. |
Root File System
...
Ubuntu ARM64 18.04Debian 11 Bullseys:
User | Password |
---|---|
root | N/A |
...
root |
Debian 11 Bullseye Download:
Info | ||
---|---|---|
| ||
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/ubuntu/bionic/ubuntu-minimal-imx8m-18.04-arm64.tar.gz |
...
Info | ||
---|---|---|
| ||
$ |
Create Partition Layout: Leave 2MB offset for flash.bin.
...
Info | ||||
---|---|---|---|---|
| ||||
$ sudo dd if=iMX8M/flash.bin of=${DISK} bs=1024 seek=3332 |
If on-module eMMC Flash is not empty
...
Fuse flash.bin to the on-module eMMC flash. (The eMMC flash is emulated as /dev/mmcblk0 mmcblk2 in SMARC-iMX8MiMX8MP)
Info | ||||
---|---|---|---|---|
| ||||
|
Note |
---|
|
...
Info | ||||
---|---|---|---|---|
| ||||
optargs="video=HDMI-A-1:1920x1080-32@60 consoleblank=0" |
...
Info | ||||
---|---|---|---|---|
| ||||
|
...
Info | ||
---|---|---|
| ||
|
All available DTB files are listed in the table below.
DTB File Name | Description |
---|---|
imx8mp-smarc.dtb | Device tree blob for no display configuration. |
imx8mp-smarc-hdmi.dtb | Device tree blob for HDMI display configuration. |
imx8mp-smarc-lvds.dtb | Device tree blob for LVDS display configuration. |
imx8mp-smarc-m7.dtb | Device tree blob for Cortex-M7 co-processor configuration. |
Note | ||
---|---|---|
| ||
|
Install Root File System and Kernel Modules
...
Info | ||||
---|---|---|---|---|
| ||||
|
Ubuntu 18.04Debian 11 Bullseys:
Info | ||||
---|---|---|---|---|
| ||||
|
...
Info | ||
---|---|---|
| ||
$ sync $ sudo umount /media/boot $ sudo umount /media/rootfs |
...
Setup eMMC
...
Setting up eMMC usually is the last step at development stage after the development work is done at your SD card or NFS environments. From software point of view, eMMC is nothing but a non-removable SD card on board. For SMARC-iMX8MiMX8MP, the SD card is always emulated as /dev/mmcblk1 and on-module eMMC is always emulated as /dev/mmcblk0mmcblk2. Setting up eMMC now is nothing but changing the device descriptor.
...
Info | ||
---|---|---|
| ||
$ sudo mkdir -p /media/boot/ $ sudo mkdir -p /media/rootfs/ for : DISK=/dev/mmcblk0 $ sudo mount ${DISK}p1 /media/boot/ $ sudo mount ${DISK}p2 /media/rootfs/ for : DISK=/dev/sdX $ sudo mount ${DISK} 1 /media/boot/ $ sudo mount ${DISK} 2 /media/rootfs/ |
Copy Image to Image to rootfs partition:
Info | ||
---|---|---|
| ||
|
Note | ||
---|---|---|
| ||
|
...
Copy and paste the following contents to to /media/rootfs/home/root
($ $ sudo vim /media/rootfs/home/root/uEnv.txt
)
Info | ||
---|---|---|
| ||
|
Copy device tree blob to rootfs partition:
Info | ||
---|---|---|
| ||
$ sudo cp -v /media/boot/dtbs/imx8mq <device tree name> /media/rootfs/home/root/imx8mp-smarc.dtb |
Copy boot file to rootfs partition:
Info | ||||
---|---|---|---|---|
| ||||
|
Copy real rootfs to rootfs partition:
...
Info | ||
---|---|---|
| ||
|
Ubuntu 18.04 Debian Bulleyes Root File Systems
Info | ||
---|---|---|
| ||
Delete all contents starting with "SUBSYSTEM=="
|
Remove Unmount SD card:.
Info | ||
---|---|---|
| ||
$ sync $ sudo umount /media/boot $ sudo umount /media/rootfs |
It is safe to remove SD card now.
Copy Binaries to eMMC from SD card:
Insert this SD card into your SMARC-iMX8M device iMX8MP device and boot into SD card.
Now it will be almost the same as you did when setup your SD card, but the eMMC device descriptor is /dev/mmcblk0mmcblk2 now.
Info | ||
---|---|---|
| ||
|
Erase eMMCSD card:
Info | ||
---|---|---|
| ||
$ |
Create Partition Layout:
Info | ||
---|---|---|
| ||
2M , 48M , 0x83 ,* 50M,,, __EOF__ |
Format Partitions:
Info | ||
---|---|---|
| ||
$ sudo mkfs.vfat -F 16 ${DISK}p1 -n boot $ sudo mkfs.ext4 ${DISK}p2 -L rootfs |
...
Install binaries for partition 1
Copy Copy uEnv.txt/Image/*.dtb to dtb to the boot partition
Info | ||
---|---|---|
| ||
$ sudo cp -v Image uEnv.txt /media/boot/ |
...
Info | ||
---|---|---|
| ||
|
...
Install Root File System
...
Info | ||
---|---|---|
| ||
|
Unmount eMMC:
Info | ||
---|---|---|
| ||
$ sync $ sudo umount /media/boot $ sudo umount /media/rootfs |
Flash boot file
Info | ||
---|---|---|
| ||
$ sudo dd if=flash.bin of=${DISK} bs=1024 seek=32 |
Switch your Boot Select to eMMC (OFF ON ON) and you will be able to boot up from eMMC now.
version 1.0a, 908/1325/20202021
Last updated 20202022-906-13