I have a batch of BeagleBone Blacks where something like 50% fail to flash properly … I’m using a custom version of the image-builder and it’s been rock solid for ages. The batch in question appears to be BBBVC 202412. They seem to boot and flash ok from an SD card (or via USB), but when I go to boot the unit from eMMC, it sometimes works immediately afterwards after unplugging/replugging, but give it a few minutes and they fail as follows:
U-Boot SPL 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500)
Trying to boot from MMC2
Loading Environment from EXT4... Card did not respond to voltage select!
U-Boot 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500), Build: jenkins-github_Bootloader-Builder-139
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4... Card did not respond to voltage select!
Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55:
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
cpsw, usb_ether
Press SPACE to abort autoboot in 0 seconds
board_name=[A335BNLT] ...
board_rev=[00C0] ...
Card did not respond to voltage select!
Card did not respond to voltage select!
Card did not respond to voltage select!
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
Card did not respond to voltage select!
Card did not respond to voltage select!
switch to partitions #0, OK
mmc1(part 0) is current device
btrfs_probe: failed to find default subvolume
** Unrecognized filesystem type **
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc1(part 0) is current device
gpio: pin 54 (gpio 54) value is 1
btrfs_probe: failed to find default subvolume
** Unrecognized filesystem type **
Checking for: /uEnv.txt ...
btrfs_probe: failed to find default subvolume
** Unrecognized filesystem type **
Checking for: /boot.scr ...
btrfs_probe: failed to find default subvolume
** Unrecognized filesystem type **
Checking for: /boot/boot.scr ...
btrfs_probe: failed to find default subvolume
** Unrecognized filesystem type **
Checking for: /boot/uEnv.txt ...
btrfs_probe: failed to find default subvolume
** Unrecognized filesystem type **
** Invalid partition 2 **
** Invalid partition 3 **
** Invalid partition 4 **
** Invalid partition 5 **
** Invalid partition 6 **
** Invalid partition 7 **
starting USB...
USB0: Port not available.
cpsw Waiting for PHY auto negotiation to complete. done
link up on port 0, speed 100, full duplex
I’m using btrfs as the rootfs as I would have problems with ext4 fs’s getting corrupted and btrfs seems more resilient – as mentioned, this setup has worked really really well for a number of years until just now. I’m using 4.14.91-ti-r90 (buster) which is a bit old, but I think predates these PM/trim issues. It seems that the devices have MT3204 Kingston eMMC (as reported by dmesg if I boot from SD). Maybe possible with an older kernel it’s not reporting the proper designation … and it is a MK2704?
The Kingston eMMC part has markings of “C405W4549.06 2430 CO110N D2516ECMDXGJD MSS383000.02”. There’s no silkscreen indicating Seeed Studio, but I think that’s who made them as they come from Digikey (just has the beaglebone.org logo between the CPU and eMMC).
Any ideas? This is causing a real problem for me right now, I have a bunch of them failing like this.
EDIT: Here’s the output from the info-gathering script from near the top of this thread:
BBB version 00C0
BBB serial 2450SBB00054
eMMC name MT3204
eMMC date 09/2024
eMMC hwrev 0x0
eMMC fwrev 0x0100000000000000
eMMC oemid 0x0100
eMMC manfid 0x000070
eMMC life_time 0x01 0x01
eMMC serial 0x5a490f8b
It’s a text based field in the device’s id table…
This looks more like a failure in u-boot’s btrfs driver than hardware failure… Can you retest with the v2022.04 tree: Files · v2022.04-bbb.io-am335x-am57xx · BeagleBoard.org / u-boot · GitLab
Regards,
That might have solved it … it is sort of intermittent, with the older u-boot I could flash a BBB, then it would (immediately) be able to boot. But power it down for a few mins then try to boot and it fails. I left this one for a few hours and then booted it and it looks good.
Some odd messages regarding FDT_ERR_BADMAGIC
, not sure what that is about, possibly the dtbs are now too old?
U-Boot SPL 2022.04-00040-g59a727e60c6 (Apr 21 2025 - 15:00:22 -0400)
Trying to boot from MMC2
U-Boot 2022.04-00040-g59a727e60c6 (Apr 21 2025 - 15:00:22 -0400)
CPU : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM: 512 MiB
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
Core: 150 devices, 14 uclasses, devicetree: separate
WDT: Started wdt@44e35000 with servicing (60s timeout)
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4... Board: BeagleBone Black
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
BeagleBone Cape EEPROM: no EEPROM at address: 0x54
BeagleBone Cape EEPROM: no EEPROM at address: 0x55
BeagleBone Cape EEPROM: no EEPROM at address: 0x56
BeagleBone Cape EEPROM: no EEPROM at address: 0x57
Net: eth2: ethernet@4a100000, eth3: usb_ether
Press SPACE to abort autoboot in 0 seconds
board_name=[A335BNLT] ...
board_rev=[00C0] ...
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc@48060000.blk...
Disk mmc@48060000.blk not ready
Scanning disk mmc@481d8000.blk...
Found 2 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc1(part 0) is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
2614 bytes read in 29 ms (87.9 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.14.91-ti-r90 ...
9724416 bytes read in 649 ms (14.3 MiB/s)
debug: [enable_uboot_overlays=1] ...
debug: [enable_uboot_cape_universal=1] ...
debug: [uboot_base_dtb_univ=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-boneblack-uboot-univ.dtb] ...
uboot_overlays: Switching too: dtb=am335x-boneblack-uboot-univ.dtb ...
loading /boot/dtbs/4.14.91-ti-r90/am335x-boneblack-uboot-univ.dtb ...
162727 bytes read in 59 ms (2.6 MiB/s)
Found 0 extension board(s).
uboot_overlays: [fdt_buffer=0x60000] ...
uboot_overlays: loading /lib/firmware/BB-ADC-00A0.dtbo ...
711 bytes read in 37 ms (18.6 KiB/s)
uboot_overlays: loading /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo ...
1440 bytes read in 37 ms (37.1 KiB/s)
uboot_overlays: uboot loading of [BB-HDMI-TDA998x-00A0.dtbo] disabled by /boot/uEnv.txt [disable_uboot_overlay_video=1]...
uboot_overlays: loading /lib/firmware/AM335X-PRU-UIO-00A0.dtbo ...
883 bytes read in 38 ms (22.5 KiB/s)
loading /boot/initrd.img-4.14.91-ti-r90 ...
4418966 bytes read in 317 ms (13.3 MiB/s)
debug: [console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=btrfs rootwait coherent_pool=1M net.ifnames=0 quiet] ...
debug: [bootz 0x82000000 0x88080000:436d96 88000000] ...
Kernel image @ 0x82000000 [ 0x000000 - 0x946200 ]
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Ramdisk to 8fbc9000, end 8ffffd96 ... OK
Loading Device Tree to 8fb3e000, end 8fbc8fff ... OK
Starting kernel ...
OK, so now I can flash via the SD card but I typically flash via USB using code derived from the BBBlfs … do you happen to know what config I need for usbspl? That project calls for am335x_evm_usbspl_config
, but I’m not sure that ever existed – basically what I do is do a USB bootp+tftp and then mount the eMMC on a RPi and flash it directly from there as if it were a USB drive.
Thanks for the insight and all the hard work on the BBB image-builder over the years.
I’ve been through several boot cycles, including leaving it off & cold over night. No issues. So I think that was my problem, just an old u-boot with the btrfs. No idea why it worked for the last 8 years and suddenly started acting up … maybe timing with different components? Anyway, problem seems to be resolved, Thanks!
FWIW, it seems it’s only BBBs from the 202410 or 202412 batches that have the original USB flashing problems which forced me to try SD card flashing, which while it seemed to work, they’d mostly fail without the newer u-boot+btrfs (but sometimes boot ok). I have a number of units from a 202210 batch that work just fine both with USB flashing and the older u-boot I had +btrfs (and everything prior to last week has been fine, I guess this was my first exposure to the 2024xx units).