Need help with dfu on beaglebone-ai

Hi!
I have beaglebone-ai. I would like to use dfu. I build u-boot (is working from sd card). But when I download u-boot-spl.bin using usbboot-stand-alone from dfu-util doesn’t detect the board as dfu target.

Thanks.

Hi @imikec what branch or tag of u-boot are you currently using to try dfu? I know TI directly supported this configuration in their ti-u-boot tree, but us at BeagleBoard.org never really touched dfu…

Regards,

Here is the tag: U-Boot 2023.07-rc1-00210-g8774e45e89. The problem is that there is no default config for non-secure chips. I am using older bbb-ai board revision. Could that be an issue?

Okay, you are using a random git commit from u-boot, for production you really should stick with a released tag, unless your doing development…

I’d use: Release v2023.07.02 · u-boot/u-boot · GitHub over 2023.07-rc1-00210-g8774e45e89

Start with: am57xx_evm_defconfig

voodoo@hestia:~/scratchpad/u-boot$ git checkout v2023.07.02 -b tmp
Switched to a new branch 'tmp'

After looking at the difference between am57xx_hs_evm_defconfig and am57xx_hs_evm_usb_defconfig

voodoo@hestia:~/scratchpad/u-boot$ diff -ur configs/am57xx_hs_evm_defconfig configs/am57xx_hs_evm_usb_defconfig
--- configs/am57xx_hs_evm_defconfig	2023-08-28 13:24:25.191899073 -0500
+++ configs/am57xx_hs_evm_usb_defconfig	2023-08-28 13:24:25.191899073 -0500
@@ -8,7 +8,8 @@
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_DM_GPIO=y
 CONFIG_SPL_DM_SPI=y
-CONFIG_DEFAULT_DEVICE_TREE="am572x-idk"
+CONFIG_DEFAULT_DEVICE_TREE="am57xx-beagle-x15"
+CONFIG_SPL_TEXT_BASE=0x40306D50
 CONFIG_OMAP54XX=y
 CONFIG_TI_SECURE_EMIF_REGION_START=0xbdb00000
 CONFIG_TI_SECURE_EMIF_TOTAL_REGION_SIZE=0x02000000
@@ -21,6 +22,7 @@
 CONFIG_ARMV7_LPAE=y
 CONFIG_AHCI=y
 CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x80200000
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_USE_BOOTARGS=y
@@ -31,7 +33,7 @@
 # CONFIG_MISC_INIT_R is not set
 CONFIG_AVB_VERIFY=y
 CONFIG_ANDROID_AB=y
-CONFIG_SPL_MAX_SIZE=0x7a8b0
+CONFIG_SPL_MAX_SIZE=0x74eb0
 CONFIG_SPL_SYS_MALLOC_SIMPLE=y
 CONFIG_SYS_SPL_MALLOC=y
 CONFIG_SYS_SPL_MALLOC_SIZE=0x800000
@@ -39,8 +41,11 @@
 CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="u-boot.img"
 # CONFIG_SPL_NAND_SUPPORT is not set
 CONFIG_SPL_DM_SPI_FLASH=y
+CONFIG_SPL_RAM_SUPPORT=y
 CONFIG_SPL_SPI_LOAD=y
 CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_DFU=y
 CONFIG_SPL_YMODEM_SUPPORT=y
 CONFIG_SYS_MAXARGS=64
 CONFIG_SYS_BOOTM_LEN=0x4000000
@@ -56,7 +61,7 @@
 CONFIG_CMD_AVB=y
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
-CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am5729-beagleboneai am572x-idk am571x-idk am574x-idk"
+CONFIG_OF_LIST="am57xx-beagle-x15 am57xx-beagle-x15-revb1 am57xx-beagle-x15-revc am572x-idk am571x-idk am574x-idk"
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
@@ -68,15 +73,9 @@
 CONFIG_BOOTP_SEND_HOSTNAME=y
 CONFIG_SPL_DM=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
-CONFIG_SPL_REGMAP=y
-CONFIG_SPL_SYSCON=y
-CONFIG_SPL_OF_TRANSLATE=y
-CONFIG_DWC_AHCI=y
-CONFIG_CLK=y
-CONFIG_CLK_CDCE9XX=y
+CONFIG_SCSI_AHCI=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
-CONFIG_DFU_SF=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x82000000
 CONFIG_FASTBOOT_BUF_SIZE=0x2F000000
@@ -92,11 +91,13 @@
 CONFIG_HSMMC2_8BIT=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH_BAR=y
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_MII=y
 CONFIG_DRIVER_TI_CPSW=y
+CONFIG_PHY=y
 CONFIG_PIPE3_PHY=y
 CONFIG_OMAP_USB2_PHY=y
 CONFIG_DM_PMIC=y
@@ -104,7 +105,7 @@
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_PALMAS=y
 CONFIG_PALMAS_POWER=y
-CONFIG_DM_SCSI=y
+CONFIG_SCSI_AHCI_PLAT=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
@@ -117,6 +118,7 @@
 CONFIG_USB_XHCI_OMAP=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GENERIC=y
+CONFIG_SPL_USB_DWC3_GENERIC=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0451

Just a couple of things I’d personally test as an update to am57xx_evm_defconfig

+CONFIG_DEFAULT_DEVICE_TREE="am5729-beagleboneai"
+CONFIG_SPL_TEXT_BASE=0x40306D50
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x80200000
+CONFIG_SPL_MAX_SIZE=0x74eb0
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_DFU=y
+CONFIG_OF_LIST="am5729-beagleboneai"
+CONFIG_SPL_USB_DWC3_GENERIC=y

Completely un-tested, but i’d start there…

Regards,

Tried your suggestions, but SPL doesn’t start. Is there a way to enable uart debugging or to blink LED, to see where SPL is dying? On BBBAI ttyS0 is used as debug port.

CONFIG_SPL_TEXT_BASE=0x40306D50 is not a correct value. It should be CONFIG_SPL_TEXT_BASE=0x40300000 since we are talking about GP cpu not a HS one.