[BB-AI] Solution of error "mmc0: error -110 whilst initialising SD card", when booting from SD card or plugging in your SD card

I was trapped in the situation for one week. When I plug my sd card in bb-ai, “mmc0: error -110 whilst initialising SD card” log out. When I am trying to boot debian from my sd card, “mmc0: error -110 whilst initialising SD card” log out.

Finally, I found out that the key of the problem is the device tree(.dtb). I didn’t study very deep into the .dts files provided by official website, because there is too many files.

So, I converted the am5729-beagleboneai.dtb to xx.dts using “dtc”. Then, I found out mmc1 node (mmc@4809c000), and modify some places as follows:

  1. compatible = “ti,dra7-sdhci”; >>>>> compatible = “ti,dra7-sdhci”, “ti,omap4-hsmmc”;

  2. add: vmmc_aux-supply = <0xd0>; (same node with vqmmc-supply)

  3. max-frequency = <0xb71b000>; >>>>> max-frequency = <0x16e3600>; (to lower the frequency of mmc)

Save and exit, then convert the .dts file to am5729-beagleboneai.dtb, replace the old one.

Then, I booted debian from my SD card successfully! And, when I booted debian form emmc(modify the .dts inside as listed above), there was no error log “mmc0: error -110 whilst initialising SD card” when plug in sd card, and I can see my sd card using “lsblk”, and also can mount it successfully.

However, some error log still there as follows when poweron. But now, I can do some work at least.

U-Boot 2019.07-rc4-00001-g607b5b738b (Jul 06 2019 - 21:01:15 -0500), Build: jenkins-github_Bootloader-Builder-127

CPU : DRA752-GP ES2.0

Model: BeagleBoard.org BeagleBone AI

Board: BeagleBone AI REV A

DRAM: 1 GiB

MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

CTRL_CORE_PAD_I2C1_SDA: 0x00060000

CTRL_CORE_PAD_I2C1_SCL: 0x00060000

CTRL_CORE_PAD_GPMC_A0: 0x00060007

CTRL_CORE_PAD_GPMC_A1: 0x00060007

CTRL_CORE_PAD_VIN2A_D4: 0x0005000f

CTRL_CORE_PAD_VIN2A_D5: 0x0005000f

CM_L4PER_GPIO7_CLKCTRL: 0x00000001

CM_L4PER_I2C1_CLKCTRL: 0x00000002

CM_L4PER_I2C4_CLKCTRL: 0x00000002

CM_L4PER_L4_PER1_CLKCTRL 0x00000001

PM_L4PER_I2C1_WKDEP 0x0000b000

RM_L4PER_I2C1_CONTEXT 0x00000002

PM_L4PER_I2C4_WKDEP 0x0000b000

RM_L4PER_I2C4_CONTEXT 0x00000001

BeagleBone: cape eeprom: i2c_probe: 0x54

Checking (ret 1 bus works) I2C1 bus. ret 1

Checking (ret 1 bus works) I2C4 bus. ret 1

BeagleBone: cape eeprom: i2c_probe: 0x55

Checking (ret 1 bus works) I2C1 bus. ret 1

Checking (ret 1 bus works) I2C4 bus. ret 1

BeagleBone: cape eeprom: i2c_probe: 0x56

Checking (ret 1 bus works) I2C1 bus. ret 1

Checking (ret 1 bus works) I2C4 bus. ret 1

BeagleBone: cape eeprom: i2c_probe: 0x57

Checking (ret 1 bus works) I2C1 bus. ret 1

Checking (ret 1 bus works) I2C4 bus. ret 1

Net:

Warning: ethernet@48484000 using MAC address from ROM

eth0: ethernet@48484000

Press SPACE to abort autoboot in 1 seconds

usb_boot is currently disabled

scsi_boot is currently disabled

switch to partitions #0, OK

mmc0 is current device

Partition Map for MMC device 0 – Partition Type: DOS

Part Start Sector Num Sectors UUID Type

1 8192 7364608 f7146e7c-01 83 Boot

Scanning mmc device 0

Checking for: /uEnv.txt …

Checking for: /boot/uEnv.txt …

657 bytes read in 2 ms (320.3 KiB/s)

Loaded environment from /boot/uEnv.txt

Checking if uname_r is set in /boot/uEnv.txt …

debug: [uname_r=4.14.108-ti-r113] …

loading /boot/vmlinuz-4.14.108-ti-r113 …

9929216 bytes read in 864 ms (11 MiB/s)

loading /boot/dtbs/4.14.108-ti-r113/am5729-beagleboneai.dtb …

103182 bytes read in 11 ms (8.9 MiB/s)

uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable…

loading /boot/initrd.img-4.14.108-ti-r113 …

4642997 bytes read in 406 ms (10.9 MiB/s)

debug: [console=ttyS0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet] …

debug: [bootz 0x82000000 0x88080000:46d8b5 0x88000000] …

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000

Loading Ramdisk to 8fb92000, end 8ffff8b5 … OK

Loading Device Tree to 8fb75000, end 8fb9130d … OK

Starting kernel …

[ 0.002420] /cpus/cpu@0 missing clock-frequency property

[ 0.002444] /cpus/cpu@1 missing clock-frequency property

[ 0.560313] omap-mailbox 4a0f4000.mailbox: no available mbox devices found

[ 0.560383] omap-mailbox 4883a000.mailbox: no available mbox devices found

[ 0.560448] omap-mailbox 4883c000.mailbox: no available mbox devices found

[ 0.560511] omap-mailbox 4883e000.mailbox: no available mbox devices found

[ 0.561155] omap-mailbox 48844000.mailbox: no available mbox devices found

[ 0.561224] omap-mailbox 48846000.mailbox: no available mbox devices found

[ 0.561288] omap-mailbox 4885e000.mailbox: no available mbox devices found

[ 0.561353] omap-mailbox 48860000.mailbox: no available mbox devices found

[ 0.561416] omap-mailbox 48862000.mailbox: no available mbox devices found

[ 0.561478] omap-mailbox 48864000.mailbox: no available mbox devices found

[ 0.561540] omap-mailbox 48802000.mailbox: no available mbox devices found

[ 1.008948] tpd12s015 encoder@0: failed to find video source

[ 1.014950] connector-hdmi connector@0: failed to find video source

[ 1.137172] dwc3 488d0000.usb: failed to initialize core

[ 1.158946] sdhci-omap 4809c000.mmc: failed to set system capabilities

[ 1.166177] sdhci-omap 480b4000.mmc: failed to set system capabilities

[ 1.189399] omap_voltage_late_init: Voltage driver support not added

[ 25.420732] cpu cpu0: _get_optimal_vdd_voltage: Failed optimized voltage match for 860000

Debian GNU/Linux 9 beaglebone ttyS0

BeagleBoard.org Debian Image 2019-08-03

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

default username:password is [debian:temppwd]

beaglebone login:

I wonder if we need a variation of this patch:

https://github.com/RobertCNelson/armv7-multiplatform/blob/v5.4.x/patches/drivers/ti/mmc/0001-Power-cycle-SD-card-at-boot.patch

the BBAI uses the generic SDHC driver, so ^ wouldn't not fix it directly..

Regards,