Armbian Buster (5.4.6) - eMMC slot not being detected

Curious if anyone know why the eMMC module cannot be configured by the Armbian Buster 5.4.6 kernel? The board I have is the RockPi4 v1.3 (No SPI). The eMMC works just fine with Armbian Buster Legacy. I was able to boot Armbian Buster 5.4.6 on a micro sd card. When I wipe the eMMC card and boot with the micro sd, I can see the kernel complain about the eMMC slot. Like I said, the eMMC works just fine with Legacy kernel. Below is the dmesg when the Kernel is having issues in Armbian Buster 5.4.6:

[ 53.338988] dwmmc_rockchip fe310000.dwmmc: IDMAC supports 32-bit address mode.
[ 53.339028] dwmmc_rockchip fe310000.dwmmc: Using internal DMA controller.
[ 53.339048] dwmmc_rockchip fe310000.dwmmc: Version ID is 270a
[ 53.339126] dwmmc_rockchip fe310000.dwmmc: DW MMC controller at irq 28,32 bit host data width,256 deep fifo
[ 53.339411] dwmmc_rockchip fe310000.dwmmc: allocated mmc-pwrseq
[ 53.339426] mmc_host mmc0: card is non-removable.
[ 53.351589] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 53.364798] dwmmc_rockchip fe320000.dwmmc: IDMAC supports 32-bit address mode.
[ 53.364825] dwmmc_rockchip fe320000.dwmmc: Using internal DMA controller.
[ 53.364840] dwmmc_rockchip fe320000.dwmmc: Version ID is 270a
[ 53.364898] dwmmc_rockchip fe320000.dwmmc: DW MMC controller at irq 29,32 bit host data width,256 deep fifo
[ 53.365040] dwmmc_rockchip fe320000.dwmmc: Got CD GPIO
[ 53.377851] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 53.393119] mmc2: CQHCI version 5.10
[ 53.399037] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[ 53.400631] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 53.402215] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[ 53.405068] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
[ 53.408569] mmc0: queuing unknown CIS tuple 0x81 (9 bytes)
[ 53.417703] mmc2: SDHCI controller on fe330000.sdhci [fe330000.sdhci] using ADMA
[ 53.427277] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 53.427416] mmc1: new high speed SDHC card at address 0001
[ 53.432073] mmcblk1: mmc1:0001 00000 7.41 GiB
[ 53.434118] mmcblk1: p1
[ 53.463648] mmc_host mmc0: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[ 53.515437] mmc2: mmc_select_hs400es failed, error -84
[ 53.515446] mmc2: error -84 whilst initialising MMC card
[ 53.599556] dwmmc_rockchip fe310000.dwmmc: Successfully tuned phase to 224
[ 53.601739] mmc0: new ultra high speed SDR104 SDIO card at address 0001
[ 53.637621] mmc2: mmc_select_hs400es failed, error -84
[ 53.637632] mmc2: error -84 whilst initialising MMC card
[ 53.777039] mmc2: mmc_select_hs400es failed, error -110
[ 53.777059] mmc2: error -110 whilst initialising MMC card
[ 53.968760] mmc2: mmc_select_hs400es failed, error -110
[ 53.968777] mmc2: error -110 whilst initialising MMC card

Better to ask on Armbian forum? It seems that this patch:


needs to be applied to Rocpi 4 as well.

Thanks for the response @igorp. This points me into the right direction. Fairly new to these SoC boards.
After reading some, it looks like I should be able to create a new DTB with the modifications to test and if it works correctly, issue a PR to armbian/build git repo for the rockpi4b.

2 Likes

Just to follow up, decompiling the dtb, removing the mmc-hs400 bits like above in the patch, and recompiling to a dtb did the trick. Thanks again for your help @igorp.

2 Likes