• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1]
Author Topic: Can't boot newly-built 2.6.22.18 kernel -- going quite insane [SOLVED!?]  (Read 1724 times)
creeble
Newbie
*

Karma: 0
Posts: 20


View Profile
« on: February 25, 2010, 04:32:58 PM »

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?
« Last Edit: February 25, 2010, 10:15:21 PM by creeble » Logged

pingtoo
Sr. Member
****

Karma: 15
Posts: 318


View Profile
« Reply #1 on: February 25, 2010, 05:58:04 PM »

for 2.6.22.18 you need to set mainlineLinux=no and possibly remove the arcNumber
Logged

Good Luck Smiley

mundhra
Newbie
*

Karma: 1
Posts: 36


View Profile
« Reply #2 on: February 25, 2010, 08:19:14 PM »

i believe this is also a problem:
Code:
console=a0000
e=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root)
as per this link it looks like pintoo's patched .27 uboot is the way to resolve this. i've been using .19 without any problems, however.
Logged

creeble
Newbie
*

Karma: 0
Posts: 20


View Profile
« Reply #3 on: February 25, 2010, 09:26:17 PM »

Yes, I've tried mainlineLinux no, and setenv arcNumber.  Fails at the same point.

Nothing else obvious there then?

I don't know why sometimes I'm supposed to load the kernel at 0x2000000 and other times at 0x800000; this makes no sense to me.  Still having trouble understanding u-boot and exactly how the kernel loads (obviously).

And yes, mundhra, I put the wrong mtd directive in there, should be orion_mtd -- but it never gets that far.

Logged

creeble
Newbie
*

Karma: 0
Posts: 20


View Profile
« Reply #4 on: February 25, 2010, 10:16:36 PM »

Okay, I got the 2.6.31.12 kernel.org kernel to work with eth0, somehow magically.

Sound and ethernet!  Yay!

Logged

mundhra
Newbie
*

Karma: 1
Posts: 36


View Profile
« Reply #5 on: February 26, 2010, 10:13:31 AM »

the only thing i was trying to point out is that

Code:
console=a0000
e=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root)

is wrong and should instead be

Code:
console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root)

even though you aren't using it in your boot command, you should be aware of the possibility of environment variable corruption.
Logged

Pages: [1]
Print
Jump to: