Okay. I'm really tearing my hair out here. Here's my saga.
I need a kernel with USB sound, and a few other things (tried cbxbiker61's, no joy w/USB sound despite modules loaded). I decided to start with a fresh, kernel.org kernel: 2.6.31.12. I got it running on the sheeva, but for some reason the ethernet driver finds TWO devices, neither of which are able to connect, even though they appear configured (dhcp fails, doesn't work with static IP). However, USB sound works
great. Couldn't find a fix for this, so went to the 2.6.22.18 kernel tree that I had from an OpenRD system, and built that.
I
swear on my mother's grave that I got this thing to boot once, but now I can't get it past "Uncompressing Linux...." no matter how many uboot setenv's I try. Here's my printenv:
Marvell>> printenv
baudrate=115200
loads_echo=0
ipaddr=10.4.50.165
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
console=a0000
e=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root)
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig);
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
bootargs_root=ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs
mtdpartitions=mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)
ethaddr=00:50:43:01:c1:e6
real_bootcmd=setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000
bootargs_console=console=ttyS0,115200
recover1=setenv mainlineLinux yes; setenv arcNumber 2097; setenv bootcmd run recover2; saveenv; reset
recover2=run recover3; setenv bootcmd $(real_bootcmd); saveenv; setenv bootargs $(bootargs_console) $(mtdpartitions) root=/dev/ram0 rw ramdisk=0x0110
recover3=run recover4; nand erase clean 0x00100000 0x00400000; nand write.e 0x00800000 0x00100000 0x00400000
recover4=usb start; fatload usb 0 0x00800000 uImage; fatload usb 0 0x01100000 initrd
arcNumber=2097
filesize=32D62A
bootcmd=setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000
serverip=192.168.168.140
bootfile=uImage
stdin=serial
stdout=serial
stderr=serial
nandEnvBase=a0000
mainlineLinux=yes
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes
pcieTune=no
Environment size: 2086/131068 bytes
Then I do a:
setenv bootargs 'console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs'
which is fine, this is what I use to boot all the other (working) kernels. Then I give it 'dhcp' to do a tftp boot, then:
Marvell>> tftp 0x2000000
Using egiga0 device
TFTP from server 192.168.168.140; our IP address is 192.168.168.43
Filename 'uImage'.
Load address: 0x2000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################
done
Bytes transferred = 2082676 (1fc774 hex)
Marvell>> bootm 0x2000000
## Booting image at 02000000 ...
Image Name: Linux-2.6.22.18
Created: 2010-02-25 21:36:54 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2082612 Bytes = 2 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux...................(hangs)
Then I thought there was something wrong with the load address (although it works for the 2.6.31.18 kernel I built), so I changed it:
Marvell>> tftp 0x800000
Using egiga0 device
TFTP from server 192.168.168.140; our IP address is 192.168.168.43
Filename 'uImage'.
Load address: 0x800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################
done
Bytes transferred = 2082676 (1fc774 hex)
Marvell>> bootm 0x800000
## Booting image at 00800000 ...
Image Name: Linux-2.6.22.18
Created: 2010-02-25 21:36:54 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2082612 Bytes = 2 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux...................(still hangs)
So now I'm completely nuts.
What am I doing wrong? Am I really imagining that I booted this kernel at least once?