Differences between BeagleBoneBlack revisions, and Cache uses.

Hi, we were developing a port for the BeagleBoneBlack in RTEMS, and we wanted to use the ethernet driver with LWIP stack.

After some work, we could make it work. I use U-boot to boot rtems, using an sd card.

The problem was that, if we use the ethernet driver with the cache enabled, after a little while the program freezes. We didn’t have a debugger, so we used as a workaround disabling the cache.

After some time, i could get some rev C boards, and to my surprise, the program worked perfectly OK with cache and ethernet.

Currently I have only two types of boards:
a Rev C that works fine.
a Rev A5C that doesn’t work.

I checked the revisions reading the EEPROM, and the processor registers.
I asked another RTEMS user to test this, and he told me that he has a Rev C.
But if he prints the EEPROM it says rev A5, but the processor is the same as in the revision C (AM3358B).

So, after all I have two questions:

  • What differences there are between the two revisions that make one version work OK and the other not?. I use the exact same binary in both boards, and one works and the other doesn’t.

-Is there a revision A5 with an AM3358B processor?

Thanks.

See my previous answer.

Gerald

Are you 100% sure they are booting the same.. One might have a different
version of u-boot in the eMMC..

Regards,

Hi, thanks for the answer, they do have different u-boot. I know that in the A5C, for example, the cache is disabled in the u-boot by default, and in the rev C is enabled, and i can see different versions of them. Is there a u-boot that works the same for both boards?

This is from rev A5C:

U-Boot SPL 2013.04-dirty (Jul 10 2013 - 14:02:53)
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
OMAP SD/MMC: 0
mmc_send_cmd : timeout: No status update
reading u-boot.img
reading u-boot.img

U-Boot 2013.04-dirty (Jul 10 2013 - 14:02:53)

I2C: ready
DRAM: 512 MiB
WARNING: Caches not enabled
NAND: No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
Net: not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
gpio: pin 53 (gpio 53) value is 1
mmc0 is current device
micro SD card found
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
SD/MMC found on device 0
reading uEnv.txt
99 bytes read in 3 ms (32.2 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc …
Running uenvcmd …
reading rtems-app.img

This is from rev C:

U-Boot SPL 2014.04-00014-g47880f5 (Apr 22 2014 - 13:23:54)
reading args
spl_load_image_fat_os: error reading image args, err - -1
reading u-boot.img
reading u-boot.img

U-Boot 2014.04-00014-g47880f5 (Apr 22 2014 - 13:23:54)

I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment

Net: not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
gpio: pin 53 (gpio 53) value is 1
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
SD/MMC found on device 0
reading uEnv.txt
99 bytes read in 4 ms (23.4 KiB/s)
gpio: pin 55 (gpio 55) value is 1
Loaded environment from uEnv.txt
Importing environment from mmc …
Checking if uenvcmd is set …
gpio: pin 56 (gpio 56) value is 1
Running uenvcmd …
reading rtems-app.img

Those are actually both old... I "think" you can grab the (2014.04) u-boot
from this flasher:

https://rcn-ee.com/rootfs/bb.org/release/2014-05-14/

But honestly, that's old too... I recommend you (after testing) flash this
"console" image (it's the smallest) to both boards..

https://rcn-ee.com/rootfs/bb.org/testing/2015-09-13/console/BBB-eMMC-flasher-debian-8.2-console-armhf-2015-09-13-2gb.img.xz

md5sum: 64de53c03df006f2cb6f95244871313e

and you'll have u-boot: v2015.10-rc3 installed to the eMMC...

Regards,

Thanks a lot, I will test them and let you know.

Sorry to ask, but is there a guide to load the las image into the board? Thanks!

For the BBB-*.img.xz, just extract and dd/win32image/etc, to a microSD..

Insert microSD into board
use thumb, push button
apply power
wait for 4 leds, lift thumb from push button..
led cylon pattern = flashing eMMC (flasher = 5 minutes per GB...)
when 4 leds are solid = shutdown

Regards,

Thanks a lot!
I’m still testing, but apparently with the new u-boot I can´t see the problem.
Do you know about this problem with older u-boot versions?

Again thanks a lot!!

Thanks a lot!
I'm still testing, but apparently with the new u-boot I can´t see the
problem.

That's good right? :wink:

Do you know about this problem with older u-boot versions?

Again thanks a lot!!

underneath u-boot is a pretty fast moving target, it's either enabling an
errata/caches/etc that make things work. :wink:

Regards,

Hi,

I flashed the following image
https://rcn-ee.com/rootfs/bb.org/testing/2015-09-13/console/BBB-eMMC-flasher-debian-8.2-console-armhf-2015-09-13-2gb.img.xz
& booted successfully.

It seems the uboot has a bug & it is not able to boot via tftp.

=> setenv serverip 192.168.1.10
=> setenv ipaddr 192.168.1.12
=> tftp 0x80800000 lwip-test.img
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 192.168.1.10; our IP address is 192.168.1.12
Filename 'lwip-test.img'.
Load address: 0x80800000
Loading: *
TFTP error: 'Unsupported option(s) requested' (8)
Starting again

I saw the following discussion on uboot forums about the same issue &
seems they have a solution
https://www.mail-archive.com/u-boot@lists.denx.de/msg183373.html

Thanks,
Ragunath

About the program you passed me, I think that lwip is not configured for cache.Are you using the Lwip i developed for RTEMS-BBB?
If that is the case:
you should go to src/Makefile, and change the install directory (INSTALL_DIR).
Then go to src/ports/include/lwipopts.h and uncomment the line LWIP_CACHE_ENABLED.

After that go to src and having the rtems cross toolchain, do:
make clean && make && make install

The new LWIP library will be in the directory you chose in the makefile. Use it to build your app and it should work. Pass me the binary if you want me to test it.

Greetings and good luck!

Thanks for testing, i've add the revert to my build script for
v2015.10-rc3, while "2015-09-13" is broken, next sunday's will include
the fix..

While we wait for u-boot to build, when finished i'll show you how to
update the eMMC that was flashed by "2015-09-13"..

Regards,

okay, tftp revert fixed u-boot is now out.. Boot with the eMMC (no
microSD installed)

Then run:

cd /opt/scripts/tools/
git pull
cd developers/
sudo ./update_bootloader.sh

it'll flash:

u-boot-mmc-spl.bin: [MLO-am335x_evm-v2015.10-rc3-r6]
u-boot.bin: [u-boot-am335x_evm-v2015.10-rc3-r6.img]

after a power cycle give u-boot's tftp a retry..

Regards,