Currently, we have switched the SD card of our S32R45 hardware board to eMMC, and we are encountering some issues. The symptoms are as follows:
1. The eMMC can be started normally. In U-boot, it is detected that the eMMC is functioning properly. The relevant print information is as follows:
part list mmc 0
Partition Map for MMC device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 4096 520192 52cecc02-01 0c
2 524288 1572864 52cecc02-02 83
However, when boot linux, an error will occur.
[ 0.951020] mmc0: SDHCI controller on 402f0000.usdhc [402f0000.usdhc] using ADMA
[ 1.003621] sdhci-esdhc-imx 402f0000.usdhc: card claims to support voltages below defined range
。。。
[ 0.910076] mmc0: CQHCI version 5.10
[ 0.951020] mmc0: SDHCI controller on 402f0000.usdhc [402f0000.usdhc] using ADMA
[ 1.063158] mmc0: error -110 whilst initialising MMC card
。。。
[ 1.105490] Waiting for root device /dev/mmcblk0p2... //---》 The linux will stuck here
The device tree has been modified as follows::
&usdhc0 {
bus-width = <8>; /* eMMC must 8bit width */
non-removable; /* eMMC Marked as non-removable (onboard storage) */
no-1-8-v;
no-sd; /* emmc */
no-sdio; /* emmc */
/*cap-mmc-highspeed; */ /* emmc */
disable-wp; /* emmc */
max-frequency = <26000000>; /* emmc */
status = "okay";
};
So I would like to ask, what's the problem for Linux to run properly on the eMMC? Thank you!
PS:
The current version of the Linux BSP being used is bsp33.
The emmc io voltage is 3.3v on board
The emmc chip is MTFC32GAP