[U-Boot] Weird problem with kernel/initrd loading

Ioannis Kyriakopoulos johnkyr83 at hotmail.com
Fri Nov 27 10:44:15 CET 2009


Dear Wolfgang Denk,

Thanks very much for your reply.

>And anyway - why are you passing "initrd=" at all? Which part of the
>documentation shows such an example?  None, because it's wrong.

Can you then please tell me in which cases initrd command is used
because I've seen it being used in many examples like here
http://wiki.davincidsp.com/index.php/Initrd You are right though 
that there is in nowhere documented as a command! 

>you _cannot_ use the same address in the "initrd=0x81600000" argument, 
>as this address is the image header and not the ramdisk."

So the actual ramdisk address should be the one being set using the
Load Address (-a switch) and the entry point (-e switch) switches of
mkimage?

>> The weird thing is that by using the very same uImage and ramdisk.gz but
>> without using the mkimage tool to convert ramdisk.gz to a U-boot
>> compatible
>> type and without passing the ramdisk.gz memory address at "bootm"
>> command,
>> the filesystem gets mounted and the kernel boots successfully. 
>
>I am not surprised.

But how the kernel knows where the ramdisk is and mounts it if I don't pass
any arguments on the command line about its memory location? That's what 
I don't understand! Also, I thought it is necessary to use mkimage not only 
for the kernel image but also for the initrd for being able to be used by
U-boot, but as it seems it's not!

Thanks again for the valuable help.

Kind Regards,

Ioannis Kyriakopoulos 


-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de] 
Sent: 26 November 2009 22:20
To: Ioannis Kyriakopoulos
Cc: u-boot at lists.denx.de
Subject: [!! SPAM] Re: [U-Boot] Weird problem with kernel/initrd loading

Dear "Ioannis Kyriakopoulos",

In message <SNT111-DS83CB13AA8D729B0D4A82FA79B0 at phx.gbl> you wrote:
>
> OMAP3 beagleboard.org # setenv bootargs 'console=ttyS2,115200n8,
> root=/dev/ram0 rw initrd=0x81600000,8M, init=/linuxrc'
> 
> OMAP3 beagleboard.org # mmcinit; fatload mmc 0 0x80002000 uImage;
> fatload
> mmc 0 0x81600000 ramdisk.gz; bootm 0x80002000 0x81600000

This is obviously wrong, isn't it?

If you store the U-Boot image file with the file header and the
ramdisk image as payload at address 0x81600000, you _cannot_ use the
same address in the "initrd=0x81600000" argument, as this address is
the image header and not the ramdisk.

And anyway - why are you passing "initrd=" at all? Which part of the
documentation shows such an example?  None, because it's wrong.

> The weird thing is that by using the very same uImage and ramdisk.gz but
> without using the mkimage tool to convert ramdisk.gz to a U-boot
> compatible
> type and without passing the ramdisk.gz memory address at "bootm"
> command,
> the filesystem gets mounted and the kernel boots successfully. 

I am not surprised.

> Does anyone has any clue of what is getting wrong in the first case?

You pass incorrect parameters to the kernel.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
How many seconds are there in a year? If I tell you there are 3.155 x
10^7, you won't even try to remember it. On the other hand, who could
forget that, to within half a percent, pi seconds is a nanocentury.
                                                - Tom Duff, Bell Labs



More information about the U-Boot mailing list