I'm in the processing of bringing up a custom-design board based very closely around the beaglebone / am335x-evm reference design.
As such, I was hoping the configuration would be as simple as:
1. use the pre-build Processor SDK image (tested on a Beaglebone); 2. insert the custom DTB / device tree file at runtime in a one-line uEnv.txt (fdtfile=custom-board.dtb); 3. boot into Linux from SD card. This is a very limited ambition level at this stage: about as simple as I can make it!
However...
When trying this, it fails into u-boot command line. Upon running printenv in u-boot, however, I see that [ fdtfile=am335x-boneblack.dtb ] is loaded: showing its ignored my uEnv.txt!
Trying to override this with a setenv then fails at saveenv, giving [ Saving Environment to FAT... Failed (1) ]
Questions:
1. any ideas why uboot is ignoring uEnv.txt fdtfile setting?
2. can you advise a better/simple way to apply a custom device tree to u-boot??
3. any ideas why savenv should be failing?
This is a complete standard SDK v6 card image with the exception of the custom-board.dtb and uEnv.txt files in boot partition. EEPROM has been set to beaglebone A6 standard with the exception of board_serial.
mmc data is:
=> mmc info Device: OMAP SD/MMC Manufacturer ID: ed OEM: 10b Name: SEM08 Bus Speed: 48000000 Mode : MMC High Speed (52MHz) Rd Block Len: 512 MMC version 5.0 High Capacity: Yes Capacity: 7.3 GiB Bus Width: 4-bit Erase Group Size: 512 KiB User Capacity: 7.3 GiB WRREL Boot Capacity: 4 MiB ENH RPMB Capacity: 4 MiB ENH => mmc list OMAP SD/MMC: 0 OMAP SD/MMC: 1 (eMMC) => mmc part ## Unknown partition table type 0 =>
boot messages are:
U-Boot 2019.01-g8b90adfb16 (Jul 07 2019 - 10:08:45 +0000)
CPU : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from FAT... <ethaddr> not set. Validating first E-fuse MAC
Net: eth0: ethernet@4a100000
Warning: usb_ether MAC addresses don't match:
Address in ROM is de:ad:be:ef:00:01
Address in environment is 98:5d:ad:73:ae:3c
, eth1: usb_ether
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1(part 0) is current device
** No partition table - mmc 1 **
switch to partitions #0, OK
mmc1(part 0) is current device
SD/MMC found on device 1
** No partition table - mmc 1 **
** No partition table - mmc 1 **
## Error: "bootcmd_nand0" not defined
starting USB...
USB0: scanning bus 1 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
ethernet@4a100000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
using 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
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-98-5d-ad-73-ae-3a
ethernet@4a100000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Warning: usb_ether MAC addresses don't match:
Address in ROM is de:ad:be:ef:00:01
Address in environment is 98:5d:ad:73:ae:3c
using 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
Retrieving file: pxelinux.cfg/00000000
ethernet@4a100000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
<snip repeat timeouts>
Warning: usb_ether MAC addresses don't match:
Address in ROM is de:ad:be:ef:00:01
Address in environment is 98:5d:ad:73:ae:3c
using 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
=>