1

I am working on putting a custom system together on the Beaglebone Black. Things work most of the time, but every once in a while, the system will fail to boot when powered on. This never happens when a serial debug cable is connected (so that I'm able to watch the u-boot and kernel messages.)

However, what I've found is that, on the rare times that it fails, if I then connect a serial cable, I find that I'm sitting at a u-boot prompt. If I manually set up u-boot to load the kernel and all from there, I can boot just find (it can read the eMMC and such).

My first thought was that there was some sort of noise on the serial line that was causing u-boot to break (defaults to break on space in 2 seconds, I believe). However, I recompiled u-boot to use a 0-second delay (doesn't wait for spacebar), but that didn't fix the problem.

How can I figure out why u-boot is halting without connecting a serial cable during the boot (because that makes the problem go away; Heisenbug)? Is there any sort of logging enabled I can access?

1
  • Noticed I was wrong. It's any key to interrupt u-boot, and even though the delay is 0, holding down a key will still cause it to break, so maybe something like that is still my problem? How can I be sure? Commented Apr 6, 2018 at 16:31

1 Answer 1

1

I had a board one time where the uart RX pin was tied to ground. So u-boot always saw a key press.

Don't know what version you are using...

In

/common/autoboot.c

function

static int abortboot_normal(int bootdelay)

just before the return add the line

abort = 0;

This will return no key pressed.

1
  • 1
    Glad it helped. Your welcome Commented Apr 11, 2018 at 20:10

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.