We have developed a custom board based on the BeagleBone Green reference and I'm having problems with the boot.
I've posted my process and results below. NOTE: I have not put the root file system on ext4 (partition 2 of the SD card).
I had the following questions:
- For am3358 (BBG equivalents), what defconfig should I be using? [is there a document that I can refer to?]
- For am335x_evm_defconfig - what causes the 'No matching DT out of these options: Firmware image with one or more FDT blobs' issue?
- For am335x_boneblack_vboot_defconfig - why is the environment not read? ( *** Warning - bad CRC, using default environment)
Ted
==============================================================
// Process: Using these guidlines: https://elinux.org/Building_for_BeagleBone
// Get u-boot repo - using 'master' branch
$ git clone http://git.denx.de/u-boot.git u-boot/
// Clean, configure and build u-boot.img, MLO (Linaro GCC 7.5-2019-12)
$ make ARCH=arm CROSS_COMPILE=${CC} distclean
// Documentation uses am335x_evm_config - I've tried both am335x_evm_defconfig or am335x_boneblack_vboot_defconfig, output from both shown below
$ make ARCH=arm CROSS_COMPILE=${CC} [deconfig file]
$ make ARCH=arm CROSS_COMPILE=${CC}
// I had to make the following adjustment to hack eeprom/board check (board/ti/am335x/board.h)
static inline int board_is_bone_lt(void)
{
//return board_ti_is("A335BNLT");
return 1;
}
// Partition uSD
// P1 (BOOT) = fat16 – 1GB, boot flag
// P2 (ROOTFS) = ext4 – 13.84GB
cp MLO /media/xxx/BOOT/
cp u-boot.img /media/xxx/BOOT/
cp uEnv.txt /media/xxx/BOOT/
// uEnv.txt – basic structure only
bootdir=
bootfile=zImage
fdtfile=am335x-boneblack.dtb
loadaddr=0x80007fc0
fdtaddr=0x80F80000
loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
loaduimage=fatload mmc 0:1 ${loadaddr} ${bootfile}
uenvcmd=mmc rescan; run loaduimage; run loadfdt; run fdtboot
fdtboot=run mmc_args; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}
// I've also used this process: https://elinux.org/Building_for_BeagleBone#Kernel to build zImage and am335x-boneblack.dtb and then loaded these files to the SD card (partition 1):
$ sudo cp arch/arm/boot/zImage /mnt $ sudo cp arch/arm/boot/dts/am335x-boneblack.dtb /mnt
// --------------------------------------------------
// Results of booting
// Configuration=am335x_evm_defconfig
U-Boot SPL 2020.01-rc5-00012-gd792b63feb-dirty (Dec 24 2019 - 10:20:36 -0800)
Trying to boot from MMC1
No matching DT out of these options:
Firmware image with one or more FDT blobs
No matching DT out of these options:
Firmware image with one or more FDT blobs
No matching DT out of these options:
Firmware image with one or more FDT blobs
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
// Configuration=am335x_boneblack_vboot_defconfig
U-Boot SPL 2020.01-rc5-00012-gd792b63feb-dirty (Dec 24 2019 - 10:26:16 -0800)
WDT: Not found!
Trying to boot from MMC1
Loading Environment from FAT... *** Warning - bad CRC, using default environment
Loading Environment from MMC... mmc_read_data: timedout waiting for status!
*** Warning - MMC init failed, using default environment