-xM won't boot with new kernel

I have a rev c1 -xM and I’ve been having a hard time getting any of the kernels I build to boot. I’ve tried it about a dozen different ways, both natively building on the xM and cross-compiling. I’m using an older kernel because I need the DSP driver support, but have also tried 3.8 with no success either.

Here’s my current setup… started with Ubuntu 12.02 server… that works and boots fine. I downloaded the kernel from here https://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git/refs/tags I applied the patches from here http://cgit.openembedded.org/openembedded/tree/recipes/linux/linux-omap-2.6.39/beagle?h=master and used the default config for building from here http://cgit.openembedded.org/openembedded/tree/recipes/linux/linux-omap-2.6.39/beagleboard?h=master

The kernel builds fine on the xM, but running make install I get an error saying the kernel does not support my subarchitecture so it won’t be flashed… not sure if that’s an issue or not since I’m using the default config? At any rate I copied the uImage file built to boot partition. Originally I left the uInitrd file alone, but the kernel did not boot so I tried running sudo update-initramfs -c -k ${KERNEL_VER} followed by sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d /boot/initrd.img-${KERNEL_VER} /tmp/boot/uInitrd both commands seem to work and I put the new uInitrd in the boot folder.

Below is a log of the xM booting with the new kernel… one note is that it says booting kernel from legacy image at 80300000, it was at the standard 80000000 but I thought rebuilding the boot.scr would help and the directions I found used 80300000… both result in the board not booting. Any thoughts would greatly be appreciated… or if someone has a binary kernel with the TI DSP bridge drivers loaded that would be even better.

U-Boot SPL 2011.12 (Apr 02 2012 - 18:10:22)
Texas Instruments Revision detection unimplemented
timed out in wait_for_bb: I2C_STAT=1000
reading u-boot.img
reading u-boot.bin
mkimage signature not found - ih_magic = ea000014
Assuming u-boot.bin …
reading u-boot.bin

U-Boot 2011.12 (Apr 02 2012 - 18:10:22)
OMAP36XX/37XX-GP ES1.2, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
WARNING: Caches not enabled
*** Warning - readenv() failed, using default environment
In: serial
Out: serial
Err: serial
Beagle xM Rev C
No EEPROM on expansion board
Die ID #51de00029ff80000015eff211201c010
Net: No ethernet found.
checking for preEnv.txt
reading preEnv.txt
** Unable to read “preEnv.txt” from mmc 0:1 **
Hit any key to stop autoboot: 0
The user button is currently NOT pressed.
SD/MMC found on device 0
reading uEnv.txt
** Unable to read “uEnv.txt” from mmc 0:1 **
reading boot.scr
419 bytes read
Loaded script from boot.scr
Running bootscript from mmc0 …

Executing script at 80200000

reading uImage
3284028 bytes read
reading uInitrd
4132632 bytes read

Booting kernel from Legacy Image at 80300000 …

Image Name: Linux-
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3283964 Bytes = 3.1 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK

Loading init Ramdisk from Legacy Image at 81600000 …

Image Name: initramfs
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 4132568 Bytes = 3.9 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum … OK
Loading Kernel Image … OK
Starting kernel …
Uncompressing Linux… done, booting the kernel.

First check that you are using the correct usart node, don't remember
in 2.6.39, either ttyS2 or ttyO2

2nd, enable earlyprink..

Otherwise, good luck on 2.6.39! :wink:


Nice tip on the earlyprintk, I’ll definitely check that out.