Custom Beaglebone Black does not bootup unless UART0 port is used

Hi,

I am using a customised Beaglebone Black, whose schematics is very close to Original Beaglebone Black. You can say we cloned the Beaglebone black hardware and assembled the board.

Now I used Robert C Nelson’s Debian wheezy emmc flasher image sd card to boot it for first time , and wrote the emmc. Then I dumped binary data copied from EEPROM of one of the original beaglebone black’s eeprom to the eeprom on this.

So, now the issue that i am facing is that, this board will not boot up again from emmc or another sd card that i use, other than the flasher sd card.
Then accidently or by chance, i tried to look at its UART0 port from UART port on the other beaglebone black and it booted up as usual.

After that i observed that this customised beaglebone black is booting only when the UART0 is accessed on another Beaglebone black or just simply connected to its UART.

What can be the problem here ? The emmc flashed on another original beaglebone black is working fine, just this customised board will not boot in the usual manner.

I was reading through the minicom output at UART0 for this custom board, it gave some read errors, and also said that mmcblk0boot0 and mmcblk0boot1 does not valid partition table.
What are these partitions and is it possible to write or create any partitions on them ? I have seen that they are there on other beaglebone blacks and mmcblk0 changes to mmcblk1 if booted from sd card, I could not understand its function. Is this creating any problem with the bootup ? I suspect the eeprom data also might be causing this error.

I have attached the minicom output file for the custom board’s UART0 port while it was booting.

One more thing, it seems, connecting only DGND and UART0_RX to another board is sufficient to make it boot. So it is reading some data over Uart0, is it to do with eeprom ?

Please help.

Thanks and regards,
Nitesh

Hi,

Sorry I forgot to attach the file. Here it is.

bootup_UART0.log (25.8 KB)

Hi,

I am using a customised Beaglebone Black, whose schematics is very close to
Original Beaglebone Black. You can say we cloned the Beaglebone black
hardware and assembled the board.

Now I used Robert C Nelson's Debian wheezy emmc flasher image sd card to
boot it for first time , and wrote the emmc. Then I dumped binary data
copied from EEPROM of one of the original beaglebone black's eeprom to the
eeprom on this.

So, now the issue that i am facing is that, this board will not boot up
again from emmc or another sd card that i use, other than the flasher sd
card.
Then accidently or by chance, i tried to look at its UART0 port from UART
port on the other beaglebone black and it booted up as usual.

After that i observed that this customised beaglebone black is booting only
when the UART0 is accessed on another Beaglebone black or just simply
connected to its UART.

What can be the problem here ? The emmc flashed on another original
beaglebone black is working fine, just this customised board will not boot
in the usual manner.

I was reading through the minicom output at UART0 for this custom board, it
gave some read errors, and also said that mmcblk0boot0 and mmcblk0boot1
does not valid partition table.

I would start here and properly partition. The rest should come after
that part. Take a look at robert nelsons scripts for guidence if you do
not know what to do.

Hi,

Thanks Don for replying.

I do not know how are those partitions created, mmcblk0boot0 and mmcblk0boot1 . Only, two partitions are created as far as i know, boot and rootfs.
Which script from Robert Nelson are you referring to ?

Hello,

If you are still having the problem try to boot the kernel without the console connected but with a jumper connecting UART0_RX to DGND on the console port (that’s pins 1 and 4 on the 6-pin console connector, if you have one).

If you leave the console uart receive pin (or any of the other uarts, I think) unconnected and unterminated it will pick up noise, and the stream of noise will find bugs in the kernel terminal driver and cause crashes. Revision A5A of the BBB board got a 100k pull-down resistor attached to the UART0_RX pin to prevent the noise (I assume), if your board hasn’t got a similar pull-down or pull-up you can have the difficulty you see. In fact, even if your clone board includes the 100k resistor like a real BBB you may have problems with this. I have two revision A5C BBB boards which also cause kernel crashes in the serial driver when no console cable is attached, though I have a handful of other boards which run reliably that way, so I think the 100k value is marginal at fixing this on a real BBB. Decreasing the resistance fixes these. Even if your clone board includes the 100k pull-down the differences in board layout or construction may make the 100k value less effective than on a real BBB (where it seems to just barely work) so you may need to use a smaller value.

Dennis Ferguson

Thanks a lot Dennis . That was quite an insight.
Actually we have placed that 100k resistor. Nowdays, the board is showing less of those kernel crashes.

UART_RX has active level “0”, i.e. pulled down. In order to have an idle state you should pull RX up to 3.3V.

I have the same exact problem with a stock Beaglebone Black a5a board. The board used to work fine. I shut it down for a few months. I went to plug it in and no usr lights flashed. Only the power light flashed. I as you, went to see what was wrong and hooked up a USB to serial on the UART rx, tx, gd to see the output. As soon as I applied power to the board it booted with an SD card. When I take the SD card out it boots as well. However if I don’t have anything hooked up to the UART rx, tx, gd no boot, just a power light comes on.

Does anyone know how to fix this permanently or what has caused this?