[beagleboard] BB C2 refuses to boot from MMC

Hi all,

I am a bit confused about my BB, as of yesterday it refuses booting from my SDHC card.
What I did before experiencing this kind of behavior was the following:
I flashed the X-loader and u-boot to the NAND according to:

http://elinux.org/BeagleBoardUbuntu#Upgrade_X-loader_and_U-boot

Then I copied a preinstalled image of Ubuntu 11.10 to my SD card and tried to boot, but nothing happened.
So I wanted to revert my changes, repartitioned the sd-card and installed Archlinux-ARM since this was working before
without any problems. But the behavior of not getting my BB to boot from MMC persisted...

I tried repartitioning the card several times now, fdisk shows something like this:

Disk /dev/sdb: 16.0 GB, 16021192704 bytes
255 heads, 63 sectors/track, 1947 cylinders, total 31291392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

    Device Boot Start End Blocks Id System
/dev/sdb1 * 63 273104 136521 c W95 FAT32 (LBA)
/dev/sdb2 273105 31278554 15502725 83 Linux

However, when I plug in the power to my Beagleboard Rev. C2, the following appears in serial console:

Texas Instruments X-Loader 1.5.0 (Jun 24 2011 - 01:31:59)
Beagle Rev C1/C2/C3
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.09-dirty (Oct 24 2011 - 23:56:08)

OMAP3530-GP ES3.0, CPU-OPP2, L3-165MHz, Max CPU Clock 600 mHz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Beagle Rev C1/C2/C3

... and then, nothing happens anymore...
The booting behavior also does not change when I press the USR button during power-up.
The only difference seems to be that the X-loader from MMC is used to boot:

Texas Instruments X-Loader 1.5.1 (Oct 24 2011 - 23:55:51)
Beagle Rev C1/C2/C3
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.09-dirty (Oct 24 2011 - 23:56:08)

OMAP3530-GP ES3.0, CPU-OPP2, L3-165MHz, Max CPU Clock 600 mHz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
NAND: 256 MiB
MMC: OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Beagle Rev C1/C2/C3

...but the boot process also stops here

Can anyone give me a hint what might be going wrong or what I did wrong?

greetz

raumzeit

Hello again,

I figured out what was going wrong after I tried

http://code.google.com/p/beagleboard/wiki/BeagleboardRevC3Validation

Strangely, the validation worked despite I used the sd card that was not working before, so I installed the necessary kernel image
and all the other remaining files for booting archlinuxarm step by step.
Thereby, I found that the address where x-loader tried to read the kernel image from the mmc was different.
Instead of 0x80300000, it tried to load from 0x80200000.
Since the first address worked without any problems before, I guess that with changing x-loader version (I had 1.5.0 and after the validation I got 1.4.2) also the address changed somehow.
Can anybody confirm this?

After I modified my boot.scr to use the 80200000 address the kernel was located correctly and my BB booted.

Is there a table or something where I can see which addresses are assumed with a certain x-loader version???

Kind regards

Ronny