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 =>