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?

  • 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 '18 at 16:31

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




static int abortboot_normal(int bootdelay)

just before the return add the line

abort = 0;

This will return no key pressed.

  • 1
    Glad it helped. Your welcome – jc__ Apr 11 '18 at 20:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.