Skip to contentSkip to conversation

U-boot and linux command line parameters

DISCUSSION Mirek23 4 participants 6 messages May 24, 2009 – May 25, 2009

lore
Share & tools
lore

Mirek23

author
#0 lore raw

Dear All,

I use linux kernel 2.6.23 and u-boot 1.2.0 (on ppc405 virtex-4 ) for some time. All works fine when the
kernel together with initramfs is smaller than 8MB. If it is bigger than the kernel does not boot properly.

First of all I would like to know how the address for the linux command line parameters is "transferred" from u-boot to linux for ppc405 (virtex4 chip)? (via some registers or is it a fixed address in the memory ie. 8MB?) Does somebody know what should be changed, in the kernel, in order to move this limitation from 8MB to let say 12MB? I would be grateful for any hint.

Thanks in advance.
M.

Signature · 2 lines
View this message in context: http://www.nabble.com/U-boot-and-linux-command-line-parameters-tp23698384p23698384.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.
#1 lore raw

Have you considered using a kernel and initrd?

Hunter Cobbs

Quoted 24 lines · On May 24, 2009, at 4:38 PM, Mirek23 <[email protected]> wrote:

Dear All,

I use linux kernel 2.6.23 and u-boot 1.2.0 (on ppc405 virtex-4 ) for some time. All works fine when the
kernel together with initramfs is smaller than 8MB. If it is bigger than the kernel does not boot properly.

First of all I would like to know how the address for the linux command line parameters is "transferred" from u-boot to linux for ppc405 (virtex4 chip)? (via some registers or is it a fixed address in the memory ie. 8MB?) Does somebody know what should be changed, in the kernel, in order to move this limitation from 8MB to let say 12MB? I would be grateful for any hint.

Thanks in advance.
M.

Signature · 7 lines
View this message in context: http://www.nabble.com/U-boot-and-linux-command-line-parameters-tp23698384p23698384.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev
#2 lore raw
In reply to Mirek23
Quoted 8 lines · On Sun, May 24, 2009 at 02:38:52PM -0700, Mirek23 wrote:

Dear All,

I use linux kernel 2.6.23 and u-boot 1.2.0 (on ppc405 virtex-4 ) for some time. All works fine when the kernel together with initramfs is smaller than 8MB. If it is bigger than the kernel does not boot properly.

Quoted 6 lines

First of all I would like to know how the address for the linux command line parameters is "transferred" from u-boot to linux for ppc405 (virtex4 chip)? (via some registers or is it a fixed address in the memory ie. 8MB?) Does somebody know what should be changed, in the kernel, in order to move this limitation from 8MB to let say 12MB? I would be grateful for any hint.

IIRC, U-boot 1.2.0 is a version of u-boot before it became device tree aware. Which means if I'm reading the cuboot.c code correctly, the command line address is passed to the kernel at entry in r6, with the length in r7. With later, device-tree aware u-boot versions, the command line is instead passed as a device tree property.

Signature · 4 lines
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
author
#3 lore raw

Thank you for your answer. When studying the u-boot source code I have found that
it is indeed register r6 and r7 which pass the location of the command line parameters and the
size.

The location of the parameters could be changed in u-boot according to the macro:
CFG_BOOTMAPSZ

There is however the message in all configuration files for u-boot that Linux can only map first initial 8MB
so it seems to be not possible to set CFG_BOOTMAPSZ to something higher than 8MB?

/*
* For booting Linux, the board info and command line data
* have to be in the first 8 MB of memory, since this is
* the maximum mapped by the Linux kernel during initialization. */
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for
Linux */

Does somebody have an idea how to bypass this limitation in linux 2.6.23 or higher?

M.

Signature · 2 lines
View this message in context: http://www.nabble.com/U-boot-and-linux-command-line-parameters-tp23698384p23703397.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.
#4 lore raw

Dear Mirek23,

Quoted 2 lines · In message <[email protected]> you wrote:

Thank you for your answer. When studying the u-boot source code I have found

Will you please STOP posting the same questions on sevral mailing lists, especially without any form of cross-reference?

Please read http://www.catb.org/~esr/faqs/smart-questions.html so you understand why you might not receive any further replies.

Best regards,

Wolfgang Denk

Signature · 5 lines
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: [email protected]
How many NASA managers does it take to screw in a lightbulb?  "That's
a known problem... don't worry about it."
author
#5 lore raw
In reply to Mirek23

I have done some experiments with u-boot (version 1.2.0) and with linux kernel (version 2.6.23) and it seems to be that the limitation of 8MB is not anymore the problem. I have built u-boot and linux for ppc405 (virtex-4). I have set the CFG_BOOTMAPSZ to 16 MB:
#define CFG_BOOTMAPSZ (8 << 21) /* 16 MB */

and Linux has picked up the command line parameters which were set in u-boot.

Quoted 7 lines

/*
* For booting Linux, the board info and command line data
* have to be in the first 8 MB of memory, since this is
* the maximum mapped by the Linux kernel during initialization. */
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for
Linux */

Signature · 2 lines
View this message in context: http://www.nabble.com/U-boot-and-linux-command-line-parameters-tp23698384p23712750.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.