BBAI64 - EMMC not accessable from Linux anymore

Hello,
I have multiple BBAI64 and tried to copy a Yocto-based image onto the EMMC. Unfortunately, I did something wrong and now when booting the original beaglebone-debian [bbai64-debian-11.7-minimal-arm64-2023-05-03-4gb.img.xz] from SDCARD it can not access the EMMC anymore… The EMMC device (mmcblk0) is not available anymore (it doesn’t show with lsblk, and is not showing in /dev. Therefore, the corresponding flasher doesn’t work anymore.

During boot-up the following additional messages compared to a working BBAI64 are shown on the console:

UBOOT:

** No partition table - mmc 0 **

KERNEL:

[ 1.334699] mmc0: mmc_select_hs200 failed, error -110
[ 1.339757] mmc0: error -110 whilst initialising MMC card
[ 1.454911] mmc0: mmc_select_hs200 failed, error -110
[ 1.459969] mmc0: error -110 whilst initialising MMC card
[ 1.588818] mmc0: mmc_select_hs200 failed, error -110
[ 1.593868] mmc0: error -110 whilst initialising MMC card
[ 1.763318] mmc0: mmc_select_hs200 failed, error -110
[ 1.768374] mmc0: error -110 whilst initialising MMC card

Is there a way to reinitialize the EMMC such that it works again?

Thanks a lot for your help,
have a nice day,
Bernd

Hi @bernd sadly i haven’t seen that issue before, any chance do you have the serial adapter so we can see what u-boot does at startup? Wondering if it’s detecting the wrong board, and thus doing the wrong pinmux…

Regards,

Hello @RobertCNelson,
the u-boot console output is the following:

U-Boot SPL 2021.01-gea96725b (Apr 05 2023 - 22:07:31 +0000)
Model: BeagleBoard.org BeagleBone AI-64 R5
Board: BBONEAI-64-B0- rev B0
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.9.1--v2021.09a (Terrific Lla')
Trying to boot from MMC2
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.5(release):577844a
NOTICE:  BL31: Built : 22:07:31, Apr  5 2023

U-Boot SPL 2021.01-gea96725b (Apr 05 2023 - 22:07:31 +0000)
Model: Texas Instruments K3 J721E SoC
Board: BBONEAI-64-B0- rev B0
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.9.1--v2021.09a (Terrific Lla')
ti_i2c_eeprom_am6_parse_record: Ignoring record id 17
Trying to boot from MMC2


U-Boot 2021.01-gea96725b (Apr 05 2023 - 22:07:31 +0000)

SoC:   J721E SR1.1 GP
Model: Texas Instruments K3 J721E SoC
Board: BBONEAI-64-B0- rev B0
DRAM:  4 GiB
Flash: 0 Bytes
MMC:   sdhci@4f80000: 0, sdhci@4fb0000: 1
Loading Environment from FAT... ** No partition table - mmc 0 **
In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA00101 cpsw_ver: 0x6BA80100 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
ti_i2c_eeprom_am6_parse_record: Ignoring record id 17
Net:   eth0: ethernet@46000000port@1
Press SPACE to abort autoboot in 2 seconds
board_name=[BBONEAI-64-B0-] ...
name_fdt=[k3-j721e-beagleboneai64.dtb] ...
i2c_write: error waiting for data ACK (status=0x116)
pca953x gpio@22: Error reading output register
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
192 bytes read in 10 ms (18.6 KiB/s)
1:      Linux microSD
Retrieving file: /initrd.img
9146392 bytes read in 403 ms (21.6 MiB/s)
Retrieving file: /Image
29325824 bytes read in 1265 ms (22.1 MiB/s)
append: root=/dev/mmcblk1p2 ro rootfstype=ext4 rootwait net.ifnames=0 quiet
Retrieving file: /k3-j721e-beagleboneai64.dtb
205872 bytes read in 20 ms (9.8 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8f746000, end 8ffff018 ... OK
   Loading Device Tree to 000000008f710000, end 000000008f74542f ... OK

Starting kernel ...

Thanks a lot for you help,
regards,
Bernd

Sorry, everything looks normal…

@RobertCNelson Thanks anyway… Fortunately, I have 2 more… :wink:

You mentioned that the mmcblk0 device doesn’t even show up in /dev. That means it’s not responding at all.

If you do see /dev/mmcblk0, but just don’t see any partitions for it, then you can rewrite the partition(s) and filesystem(s) manually if you absolutely had to (google-searche for fdisk usages).

Usually that’s unnecessary if you have an ISO of what’s supposed to be in the eMMC since ISO images should include everything that goes into the flash including partition table and filesystem formatting. This is why making a direct transfer of an ISO to /dev/mmcblk0 using dd works.

But like I said, if /dev/mmcblk0 is not even showing up, that suggests the processor is failing to get a response from the flash chip. Whether that’s dead eMMC chip, bad solder joints, or a problem in the TDA4VM, the result is the same.