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?
    – Dave
    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
    – jc__
    Apr 11, 2018 at 20:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .