...
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-iMX8MP, the SD card is always emulated as /dev/mmcblk1 and on-module eMMC is always emulated as /dev/mmcblk2. Setting up eMMC now is nothing but changing the device descriptor.
This section gives a step-by-step procedure to setup eMMC flash. Users can write a shell script your own at production to simplify the steps.
...
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 uEnv.txt to rootfs partition:
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/<device tree name> /media/rootfs/home/root/imx8mp-smarc.dtb |
Copy boot file to rootfs partition:
Info | ||||
---|---|---|---|---|
| ||||
|
Copy real rootfs to rootfs partition:
...
Info | ||
---|---|---|
| ||
|
Debian 11 Bullseye 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/mmcblk2 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, 1008/25/2021
Last updated 2022-06-13