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?