Issue: C3 revisions of the i.MX8 Mini LPRDD4 boards do not work with Pengutronix SD-card muxer.
Background:
- i.MX8 mini boards - https://www.nxp.com/part/8MMINILPD4-EVK#/
SD-card muxer: https://www.pengutronix.de/de/blog/2017-10-23-usb-sd-mux_Intro.html
We use the SD-card muxer to share the same SD-card with the Device Under Test (DUT, the i.MX8) and a test automation host. This allows us to flash a full image for testing simply by:
However, with C3 this unfortunately fails. Would anyone have any idea what could be going wrong? Is the C3 revision SD-card signal quality somehow more sensible for interference? Is there some way to decrease the SD-card clock speed to decrease? Example log below:
The C3 goes to boot loop with following output:
U-Boot SPL 2020.04 (Jan 01 1970 - 00:00:00 +0000)
power_bd71837_init
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from MMC1
NOTICE: BL31: v2.2(release):imx_5.4.24_er3-0-gb0a00f22b-dirty
NOTICE: BL31: Built : 00:00:00, Jan 1 1970
I/TC:
I/TC: Non-secure external DT found
I/TC: OP-TEE version: 3.10.0-61-gba1333a5 (gcc version 10.2.0 (GCC)) #1 Thu 01 Jan 1970 12:00:00 AM UTC aarch64
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
U-Boot 2020.04 (Jan 01 1970 - 00:00:00 +0000)
CPU: i.MX8MMQ rev1.0 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 37C
Reset cause: POR
Model: NXP i.MX8MM EVK board
DRAM: 2 GiB
TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C1 0x52]
Power supply on USB2
TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C1 0x50]
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from FAT... MMC: no card present
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF b0a00f2
- U-Boot 2020.04
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
MMC: no card present
## Executing script at 40480000
Wrong image format for "source" command
resetting ...
Hi,
See below, please!
1. From your application point of view, you just have to use the microSD card interface. There is no problem for i.MX8MMLPD4-EVK.
2. From your log, u-boot did not find the SD card, it may be:
---The CD pin is not triggered.
---The voltage of the CPU terminal and the voltage of the SD card (muxer) do not match.
The CPU side supports 3.3V and 1.8V, and the system can switch the voltage according to the IO level of sd card.
3. If you want to control emmc clock, you do like below
---Add lines below to the device tree of u-boot and kernel.
usdhc2 node:
......
max-frequency=<50000000>; /* 50MHz or lower one you want */
no-1-8-v;
......
Try it, please!
Have a nice day!
B.R,
weidong