• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1]
Author Topic: Update u-boot and boot hangs at "done, booting the kernel"  (Read 5224 times)
ianjb
Jr. Member
**

Karma: 0
Posts: 65


View Profile
« on: June 16, 2009, 11:41:33 AM »

I have a pogoplug that I would like to update u-boot for the additional features.

To boot from nand my bootargs and bootcmd are:
Code:
console=console=ttyS0,115200
bootargs_root=root=/dev/mtdblock2 ro
bootargs_mtdparts=mtdparts=nand_mtd:0x100000@0(u-boot)ro,0x00200000@0x100000(uImage)ro,0x02000000@0x00300000(root)ro,0x1DD00000@0x02300000(data)ro,0x00000033@0x00000200(NAND 16MiB 1,8V 8-bit)ro
bootcmd_nand_mtd=nand read 0x2000000 0x100000 0x200000; setenv bootargs $(console) $(bootargs_root) $(bootargs_mtdparts); bootm 0x2000000
I use
Code:
run bootcmd_nand_mtd
to boot.

When I boot this using the pogoplug uboot http://www.pogoplugged.com/download/11607/ce_uboot_v1.0.bin/ everything works fine.

When I update uboot using the original sheeva uboot:
Code:
bubt u-boot-rd88f6281Sheevaplug_400db_nand.bin
and answer n to the question
Code:
Override Env parameters? (y/n)
reset and boot as before, the kernel hangs at "done, booting the kernel"

When I bubt the uboot back to the pogoplug image and again do not override the env parameters, the kernel boots again.

The Cloud Engines uboot reports itself as
Code:
U-Boot 1.1.4 (Mar 18 2009 - 16:11:55) Cloud Engines (3.4.16)
The Marvell uboot reports itself as:
Code:
U-Boot 1.1.4 (Mar  2 2009 - 12:16:00) Marvell version: 3.4.16

I have the mtdparts set up correctly for the pogoplug although mtd3 is not used by pogoplug and mtd4 makes no sense to me but it is what the kernel reports if mtdparts is not defined.

The environment variables are the same, the kernel is the same, the root filesystem is the same, the only thing changed is the uboot image and that even reports itself as the same version.

Anyone have any guesses as to what would cause the kernel to hang?

 
« Last Edit: June 16, 2009, 07:43:25 PM by ianjb » Logged

prafulla
Global Moderator
Newbie
*****

Karma: 0
Posts: 21


View Profile
« Reply #1 on: June 21, 2009, 08:06:43 AM »

can you pls post your kernel log?
Regards..
Prafulla . .
Logged

ianjb
Jr. Member
**

Karma: 0
Posts: 65


View Profile
« Reply #2 on: June 21, 2009, 07:55:04 PM »

Prafulla,

Thanks for your interest and reply.

I have attached a log file from PuTTY..

It starts with a reboot to the CE uboot, followed by a printenv then a boot from the kernel in nand and ubuntu filesystem on USB. Log in and then cat /var/log/kern.log.

Reboot back to  CE uboot, bubt u-boot-rd88f6281Sheevaplug_400db_nand.bin, reset to marvell uboot, printenv, then the same boot from the kernel in nand and ubuntu filesystem on USB. It hangs on 'done, booting the kernel"

Power cycle reset to marvell uboot, bubt ce_uboot_v1.0.bin, reset back to the CE uboot, followed by a printenv then a boot from the kernel in nand and ubuntu filesystem on USB. Log in and then cat /var/log/kern.log.

End of the log.

Thanks for looking.

* ianjb.log (75.88 KB - downloaded 155 times.)
Logged

ianjb
Jr. Member
**

Karma: 0
Posts: 65


View Profile
« Reply #3 on: June 23, 2009, 01:37:05 PM »

@Prafulla,
Did you get a chance to look at the log I attached?
Was it what you needed?
Any ideas what would cause the boot to hang?
Thanks,
Ian
Logged

prafulla
Global Moderator
Newbie
*****

Karma: 0
Posts: 21


View Profile
« Reply #4 on: June 29, 2009, 04:31:18 AM »

Hi
sorry for late reply
I have gone through log you send
there is only one possibility that I think-
one of uboot is passing wrong machin-id to the kernel.

from the kernel code identify what is the machine for sheevplug used (include/asm-arm/mach_types.h)
then program the same in u-boot by
setenv archNumber <machine-id>
saveenv

and try

Logged

ianjb
Jr. Member
**

Karma: 0
Posts: 65


View Profile
« Reply #5 on: June 29, 2009, 08:21:04 AM »

Hi Prafulla,
I know you're busy ...

I downloaded the kernel source from:
http://www.pogoplug.com/opensource/pogoplug-linux-2.6.22.18.tar.bz2
There is a "include/asm-arm/" folder but no "mach_types.h" file. I searched for "machine-id" with no results. The search for "machine_id" gave a couple of files but nothing related to arm processors.

So then I downloaded the Sheevaplug kernel source in "SheevaPlug_LSP.zip" with the same result, no "mach_types.h" file.

Then I looked in the uboot source and found "mach_types.h". It lists MACH_TYPE_? 0 through 727. It's not obvious to me how to figure out which to use for archNumber.

Any pointer would be appreciated. Thanks.

Update: I'm not certain, but looking through the code it looks like the arcNumber is ignored if mainlineLinux is set to no.
« Last Edit: June 29, 2009, 10:49:22 AM by ianjb » Logged

ianjb
Jr. Member
**

Karma: 0
Posts: 65


View Profile
« Reply #6 on: August 14, 2009, 06:52:51 PM »

Well I finally understand why boot hangs at "done, booting the kernel" after updating the uboot, at least in my case.

The Pogoplug has 256MB ram and the sheevaplug has 512MB ram. Uboot apparently has the ram size hard coded in it. The net result is that the kernel is trying to use non-existent ram when a sheevaplug uboot is loaded onto a Pogoplug.

Hope this helps somebody.
Logged

Pages: [1]
Print
Jump to: