Issue with Fastboot mode on the BeagleBone Black (Buildroot)

I get this error when I try to enter fastboot mode:
This image is buildroot image booted from SD Card and eMMC is empty.
(To reproduce this issue eMMC should be empty and boot buildroot image from SD Card)

U-Boot SPL 2024.10 (Nov 29 2024 - 21:26:39 +0100)
Trying to boot from MMC1


U-Boot 2024.10 (Nov 29 2024 - 21:26:39 +0100)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM:  512 MiB
Core:  161 devices, 18 uclasses, devicetree: separate
WDT:   Started wdt@44e35000 with servicing every 1000ms (60s timeout)
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from FAT... OK
Net:   eth2: ethernet@4a100000using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC de:ad:be:ef:00:01
HOST MAC de:ad:be:ef:00:00
RNDIS ready
, eth3: usb_ether
Hit any key to stop autoboot:  0

=> fastboot usb 0
All UDCs in use (1 available), use the unbind command
g_dnl_register: failed!, error: -19
exit not allowed from main input shell.
=>

Here is my Uboot .config related part:

  #
  # Fastboot support
  #
  CONFIG_FASTBOOT=y
  CONFIG_USB_FUNCTION_FASTBOOT=y
  # CONFIG_UDP_FUNCTION_FASTBOOT is not set
  # CONFIG_TCP_FUNCTION_FASTBOOT is not set
  CONFIG_FASTBOOT_BUF_ADDR=0x81000000
  CONFIG_FASTBOOT_BUF_SIZE=0x7000000
  CONFIG_FASTBOOT_USB_DEV=0
  CONFIG_FASTBOOT_FLASH=y
  # CONFIG_FASTBOOT_UUU_SUPPORT is not set
  CONFIG_FASTBOOT_FLASH_MMC=y
  # CONFIG_FASTBOOT_FLASH_NAND is not set
  CONFIG_FASTBOOT_FLASH_MMC_DEV=1
  # CONFIG_FASTBOOT_MMC_BOOT_SUPPORT is not set
  # CONFIG_FASTBOOT_MMC_USER_SUPPORT is not set
  CONFIG_FASTBOOT_GPT_NAME="gpt"
  CONFIG_FASTBOOT_MBR_NAME="mbr"
  CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
  # CONFIG_FASTBOOT_OEM_RUN is not set
  # CONFIG_FASTBOOT_OEM_BOARD is not set
  # CONFIG_FIRMWARE is not set
  # CONFIG_ZYNQMP_FIRMWARE is not set
  # CONFIG_DM_FUZZING_ENGINE is not set

uboot-2024.10
buildroot version: 2024.11-rc2

1 Like

The error you’re seeing suggests that U-Boot is having trouble with the USB controller for Fastboot. Here’s how you can fix it:

  1. Unbind the USB controller: Run these commands to stop and reset the USB subsystem:

    usb stop
    usb reset
    

    This will free up the USB controller for Fastboot.

  2. Check USB device settings: Make sure the correct USB device is being used for Fastboot. Your config has CONFIG_FASTBOOT_USB_DEV=0, but you might need to try another port (e.g., 1).

  3. Fix Fastboot configuration: Ensure your U-Boot config has the correct settings, especially for MMC or USB flash. Disable unnecessary options like CONFIG_FASTBOOT_MMC_BOOT_SUPPORT.

  4. Check for OTG issues: If you’re using a USB OTG port, make sure the U-Boot configuration matches your setup.

Try these fixes and see if it clears up the issue!