CONGA SMX8 MINI¶
Board Identification¶
Identifiers:
- SOM: conga-SMX8-Mini, PN 051203 rev-A
- Mother board: conga-SMC1/SMARC-ARM, PN 020750
Yocto MACHINE: imx8mm-cgt-sx8m-rev-a
Documentation:
- SOM: i.MX 8M Mini Applications Processor Reference Manual, IMX8MMRM, 11/2020, Rev. 3
- SOM: https://www.congatec.com/fileadmin/user_upload/Documents/Manual/SX8M.pdf
- Mother Board: https://www.congatec.com/fileadmin/user_upload/Documents/Manual/SMC1.pdf
Features:
- SoC: i.MX 8M Mini, quad core ARM Cortex-A53 64-bit + ARM Cortex M4
- RAM: 2GB LDPDDR4
- Storage:
- 8 MB QSPI NOR flash memory
- 16 GB eMMC
- 1x RJ45 Ethernet
- 4x USB ports type A
- Video & sound:
- LVDS
- Audio jack
- PCIe Mini Card slot
- Micro SD slot
Boot Sequence¶
- The ROM code loads imx-boot from serial NOR Flash via FlexSPI at offset 0.
- The following components of imx-boot get executed:
- U-Boot SPL
- imx-atf
- optee
- U-Boot
- U-Boot starts the kernel
- The kernel mounts the initial ram file system (initramfs) and starts Init
First Installation¶
The steps to do the first installation are:
- Get a running U-Boot on the machine
- Install U-boot on the SPI NOR flash
- Install the remaining of the system on the eMMC
Get a running U-boot in RAM using UUU¶
- Get UUU:
uuu
can generally be installed as a package of your Linux distribution. - Connect the micro USB connector X2 of the board to you host PC.
- Set SW4.1 force recovery switch to ON (or alternatively, toggle SW5).
- Upload U-Boot SPL on your machine and have it running:
- Upload U-Boot proper and have it running. This relies on the ability of U-Boot SPL to boot in SDP (Serial Download Protocol) mode:
On the serial console (say /dev/ttyUSB0
), imx-boot-dev can be seen starting.
U-Boot SPL 2022.04-cgtimx8mm__lf_v2022.04__cgtsx8m-A+gf0b79e36c3 (May 24 2023 - 11:01:29 +0000)
power_bd71837_init
SX8M RevA detected
Memory configuration found (2G)
Doing LPDDR init - 2G variant
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0: RNG instantiated
Normal Boot
...
Hit any key to stop autoboot: 0
u-boot=>
Install U-Boot on the SPI NOR flash, using a running U-Boot & TFTP¶
u-boot=> setenv ipaddr 169.254.142.1
u-boot=> setenv serverip 169.254.142.224
u-boot=> tftp imx-boot-dev
Load address: 0x40400000
Loading: #################################################################
#################################################################
#####
8.8 MiB/s
done
Bytes transferred = 1973280 (1e1c20 hex)
u-boot=> sf probe
SF: Detected w25q64dw with page size 256 Bytes, erase size 4 KiB, total 8 MiB
u-boot=> sf update $loadaddr 0 $filesize
device 0 offset 0x0, size 0x1e1c20
1973280 bytes written, 0 bytes skipped in 15.807s, speed 127799 B/s
Install the remaining of the system on the eMMC, using a running U-Boot, TFTP & gzwrite¶
u-boot=> tftp welma-image-minimal-dev-imx8mm-cgt-sx8m-rev-a.wic.gz
Load address: 0x40400000
Loading: #################################################################
#################################################################
...
###
10.9 MiB/s
done
Bytes transferred = 162243799 (9aba4d7 hex)
u-boot=> gzwrite mmc 2 $loadaddr $filesize
982515712/985340928
985340928 bytes, crc 0x6dbe2c97
Regular Boot¶
The regular boot is done from NOR Flash, as follows:
- Set SW4.1 recovery switch to OFF (and also SW5).
- Start the board.
Appendix¶
Connecting the board¶
Hardware Watchdog¶
The HW watchdog is configured:
/sys/class/watchdog/watchdog0 -> ../../devices/platform/soc@0/30000000.bus/30280000.watchdog/watchdog/watchdog0
- Started by U-Boot (timeout 60 s)
- Serviced by the Linux kernel (as long as no userspace process opens /dev/watchdog0 and takes over)
Using fastboot¶
An external host can send commands to U-Boot using the fastboot protocol.
Example: