0
votes

I want to boot my BeagleBone Black(BBB) over UART without the BBB attempting to boot from USB or the SD before attempting to boot from UART.

in this guide:

http://linuxkernel51.blogspot.co.il/2015/08/booting-beagle-bone-black-over-uart.html

they succeed in booting a BBB over UART. however this is only done after the BBB attempts to boot from the SD and the USB

BBB has different boots modes like boot from eMMC, uSD, serial & usb. To change the boot mode there is a switch S2, holding the boot switch down during boot without a uSD card inserted will force the boot source to be the USB port and if nothing is detected on the USB client port, it will go to the serial port for download.

this guide: http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide

explains the boot process of the AM335x SoC Evaluation Board (the same SoC as in the BBB) mentions boot pins which make the board boot from UART first

is there a way to set these pins on the BBB to boot from UART first too?

1

1 Answers

3
votes

You can change the boot sequence setting the SYS_BOOT[15:0] signals. On BBB these signals are shared with LCD_DATA[15:0]. They are accessable on P8 header.

When S2 button is not pressed, the SYS_BOOT[4:0] on power on is 11100. In this case the boot sequence is MMC1(eMMC), MMC0(SD card), UART0, USB0.

When S2 button pressed, the SYS_BOOT[4:0] on power on is 11000. In this case the boot sequence is SPI0, MMC0(SD card), USB0, UART0.

To make the UART0 the first, without the need of change the pullup/down resistors of boot configuration, you can force to zero only the SYS_BOOT4 and SYS_BOOT3 signals. This boot configuration (SYS_BOOT[4:0]=00100) results in UART0, XIP, MMC0 (eMMC), NAND sequence.

So, you can make a jump to GND on P8.41 (SYS_BOOT4) and P8.44 (SYS_BOOT3). Use a push-button to do this: remove the power, press and hold this button, apply the power, release the button when LED status start flashing.