This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x Ethernet boot failure

Other Parts Discussed in Thread: AM3358, UNIFLASH

Hello all,

I am trying to boot the Beaglebone black (Sitara AM3358) over Ethernet.  The goal is to develop flasher files that will allow the eMMC to be loaded with production code using Uniflash.

I have followed the wiki instructions found online: processors.wiki.ti.com/.../Sitara_Linux_Program_the_eMMC_on_Beaglebone_Black

The problem observed is similar to that observed by other developers: e2e.ti.com/.../515767

To my knowledge, I did not see any solution to this problem in the e2e forum. 

I have attempted to build u-boot with 2.00.00 SDK (since this is the version that has been validated in the wiki).

I skipped the instructions under "Preparing the Flasher Image" and instead followed instruction to apply the patches and build as described under "Modify U-Boot to Boot from TFTP Automatically".

After applying patches I called the following to build u-boot:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=flasher_eth am335x_evm_tftpboot_defconfig all

The resulting u-boot-restore.img and u-boot-spl-restore.bin were moved from my Linux VM and placed in the Windows TFTP folder for accessed by CCS Uniflash (3.4.1).

 When attempting to flash the Beaglebone black, I see the following from the serial console:

U-Boot SPL 2015.07-00114-gf5078ef-dirty (Nov 30 2016 - 12:46:06)

SPL: Unsupported Boot Device!

### ERROR ### Please RESET the board ###

I have updated the Sysboot pins to boot from Ethernet.  This seems to be working since I see over wireshark the seemingly proper TFTP transfer of u-boot-spl-restore.bin.

It seems like things start off well, but then the SPL version is incorrect.

I would like to get some support around this.

To be clear, the steps followed when attempting to boot from Ethernet are as follows:

  1. Prepare Target: connect Ethernet (board is unpowered), modify Sysboot pins to boot from Ethernet.
  2. Prepare Host: place u-boot files in appropriate Uniflash TFTP folder, change local area network to use 192.168.2.1 IP address, connect Ethernet.
  3. From Uniflash, I press the "Start Flashing" button
  4. Apply power to target
  5. After a few moments I see the above console output

 A couple notes:

  • I don't need to press Beaglebone Black S2 button since the Sysboot pin config is such that it does not require this
  • I do NOT follow the wiki instructions on "Flash the Beaglebone black"->"Program the flash" wherein it is stated that we need to apply power and press a key to halt U-boot at prompt. Instead, I follow the instructions from Sitare Quickstart guide (processors.wiki.ti.com/.../Sitara_Uniflash_Quick_Start_Guide). My understanding is that these are 2 equivalent methods, but since my goal is to load code on production units (which do not have any u-boot in eMMC) the latter method using Uniflash seems to be the one I want to get working.