Boot problems with BeagleBone Rev 5

I have a BeagleBone Rev5 and the boot process takes quite some time, with a bunch of errors output to the serial console. I’ve searched around trying to figure out a way to reset the NAND back to factory default; using u-boot “env default -f” and then “saveenv” results in a memory not aligned error. This only happens during a cold boot, if I do a reboot from the Angstrom command line it seems to load everything first step without going through what appears to be this sequence of errors:

U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 255)
Texas Instruments tection unimplemented
No daughter card present
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
No daughter card present
NAND: Hg Code selected
No found!!!
0 MiB
MMC: C: 0, OMAP SD/MMC: 1
*** Warning - readenv() ng default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environmenttxt
Loading file “/boot/uImage” from mmc device 0:2 xxa2
3485944 bytes read

Booting kernel from Legacy Image at 80007fc0 …

Image Name: Angstrom/3.2.30/beaglebone
Image Type: ARM Linux Kernel Image (uncompressed)ize: 3485880 Bytes = 3B
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum …
U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)
Texas Instruments Revision detection unimplemented
No daughter card present
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
No daughter card present
NAND: HW ECC Hamming Code selected
No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - riled, using default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …Loading file “/boot/uImage” from mmc device 0:2
3485944 bytes read

Booting kernel from Legacy Image at 80007fc0 …

Image Name: Angstrom/3.2.30/
Image Type: ARM Linux Kernel mpressed)
Data Size: 34858803 MiB
Load Address: Entry Point: 8000800
U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)
Texas Instruments Revision detection unimplemented
No daughter card present
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2Cready
DRWARNING: Caches not enabled
No daughter card present
NAND: HW ECC Hamming Code selected
No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …
Loading file “/boot/uImage” from mmc device 0:2 xxa2
3485944 bytes read

Booting kernel from Legacy Image at 80007fc0 …

Image Name: Angstrom/3.2.30/beaglebone
Image Type: Kernel Image (uncompressed)
D 3485880 Bytes = 3.3 MiB
Load 08000
E
U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)
Texas Instruments Revision detection unimplemented
No daughter card present
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
No daughter card present
NAND: HW ECC Hamming Code selected
No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …
Loading file “/boot/uImage” from mmc device 0:2 xxa2

U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)
Texas Instruments Revision detection unimplemented
No daughter card present
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
No daughter card present
NAND: HW ECC Hamming Code selected
No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …
Loading file “/boot/uImage” from mmc de
U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)
Texas Instruments Revision detection unimplemented
No daughter card present
OMAP SD/MMC: 0
readig
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
No daughter card present
NAND: HW ECC Hamming Code selected
No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environment from uEnv.txt
Importing environLoading file “/boot/uImage” from mmc device 0:2 xxa2

U-Boot SPL 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)
Texas Instruments Revision detection unimplemented
No daughter card present
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2011.09-00053-gb423c52 (Aug 10 2012 - 11:26:55)

I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
No daughter card present
AND: HW ECC Hamming Code selected
No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net: cpsw
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

33 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …
Loading file “/boot/uImage” from mmc device 0:2 xxa2
3485944 bytes read

Booting kernel from Legacy Image at 80007fc0 …

Image Name: Angstrom/3.2.30/beaglebone
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3485880 Bytes = 3.3 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
XIP Kernel Image … OK
OK

Starting kernel …

Uncompressing Linux… done, booting the kernel.

There is no NAND on the BeagleBone rev A5 or any revision for that matter. You should try recopying the image to the SD card.

http://circuitco.com/support/index.php?title=BeagleBone

Gerald

That’s the boot output from a newly imaged A6A SD card formatted with the HP formatting tool, and then updated this morning via opkg:

root@beaglebone:~# uname -a
Linux beaglebone 3.2.30 #1 Wed Oct 17 09:39:19 CEST 2012 armv7l GNU/Linux

I am starting to think there might be a hardware problem with this board, eventually the boot takes place after several attempts but it iterates through those errors with each cold boot.

There may be an issue with the SD card. You should try another card and check the results there. If that does not help, then an RMA would most likely be needed to have it looked at.

Gerald

I’ve used another 8GB SDHC card with the same results, and swapped out the CF card writer as well so it’s definitely the board.

The serial number is blacked out on this board however, were any of the Rev5 boards shipped with blacked out serial numbers? If not, I think this board may be a counterfeit…?

If it is blacked out, that is definitely not normal. Or it could just be smudged. We have had issues with the lettering rubbing off on some labels.

Gerald

No, this is a precision cut piece of black tape that’s been placed over the serial number. I purchased this from Adafruit FYI, the starter kit bundle.

Can you send me a picture of the board?

Gerald

This is very interesting now. Do you think that jumpering P8 2 & 3 would yield any discernible test results? What would the best validation process be for the Rev 5?

Not really. We have a test fixture that the board plugs into for the factory test. With the board not booting, it is not getting far enough to run the test anyway.

Gerald

Here you go, picture attached. You know what’s weird about this, I distinctly remember there being a serial number when I unboxed the BeagleBone (I was wondering how much additional it costs to individually serialize each board).

IMG-20121031-00003.resized.jpg

Oh. Serial number is on the RJ45 connector. That area is not used for serial numbers.

Gerald

The board does eventually boot, but it takes 10+ attempts before it can successfully load the kernel. I’ve been wrangling with this for weeks now, something as simple as software-based GPIO toggling at 10Hz yields inconsistent timing on the oscilloscope each time the program runs.

Let me ask you this. How are you powering the board?

Gerald

How inconsistent? And how are you toggling the GPIO?

If through sysfs in user space, yes, it'll be inconsistent. If you're
looking for lower than 10 ms jitter, user space software controlled GPIO
through sysfs isn't what you should be using. Doing GPIO at kernel
level improves things a bit but if you need better consistency than
that, PRUSS is probably your new best friend :slight_smile:

-Andrew

Using Python for the GPIO toggling, lots of jitter and uneven spacing. I’ve been working on RTOS extensions to Angstrom to address this, but this hardware issue has been giving me problems with using a custom kernel on the BeagleBone.

What is PRUSS?

PRUSS looks interesting, is that a subset of the hardware PWMs? I had initially started this project using the hardware PWMs, then found out a few weeks later that each PWM shares the same period.

This PRUSS capability looks promising… any idea how many total GPIOs it can support concurrently, and what is the max toggle rate for GPIO under PRUSS? I think Gerald quoted something along the lines of 3MHz max for software-based GPIO implemented in the kernel.

I am powering the board with the Adafruit 5V 2A power supply: http://www.adafruit.com/products/276

However, I did start to see these issues become more pronounced when I started using serial to access the console to observe custom kernel logging output on bootup. I’ve always been conscious to plug the shore power in before the USB connector, but from what I understand the CPU speed is not chosen until after the boot process is instantiated…?

That should be enough current. What you have described I have seen in cases where the USB supply could not supply enough current and it shuts down the port. When on DC, the USB power connection is not used. After the board does the initial boot, it checks to see if it is USB or DC power and then adjust the frequency up if it is on DC power.

Gerald

PRUSS looks interesting, is that a subset of the hardware PWMs? I
had initially started this project using the hardware PWMs, then
found out a few weeks later that each PWM shares the same period.

I forgot about the PWMs, those should have very low jitter. If PWM is
what you want, use 'em :slight_smile:

This PRUSS capability looks promising... any idea how many total
GPIOs it can support concurrently, and what is the max toggle rate
for GPIO under PRUSS? I think Gerald quoted something along the
lines of 3MHz max for software-based GPIO implemented in the kernel.

Look in the am335x TRM. Rev C was the last to have lots of PRUSS info
in it (if memory serves), some got removed beyond that, although the
accuracy may be questionable with older versions of the TRM as there's
been many updates.

GPIO in kernel should be able to toggle at the GPIO hardware block
frequency. 25 MHz springs to mind. Again, TRM can give you this data
or a little searching [1].

[1]:https://groups.google.com/d/topic/beagleboard/dyuax5415dc/discussion