[U-Boot-Users] kernel parameters for ARM

Hi,
I currently have the problem that on my PXA250 based board the kernel command line parameters from the u-boot environment variable "bootargs" are not actually transferred to the kernel.
When looking at the code in lib_arm/armlinux.c:do_bootm_linux() I'm wondering how the code is intended to work: the setup_commandline_tag() function puts some stuff in the 'params' structure, but I cannot see that this information is passed on to the kernel. The kernel call does only transfer the architecture number, and the only other thing which could do the job is cleanup_before_linux() (which doesn't do it).
Robert

Hi
Robert Schwebel wrote:
Hi,
I currently have the problem that on my PXA250 based board the kernel command line parameters from the u-boot environment variable "bootargs" are not actually transferred to the kernel.
When looking at the code in lib_arm/armlinux.c:do_bootm_linux() I'm wondering how the code is intended to work: the setup_commandline_tag() function puts some stuff in the 'params' structure, but I cannot see that this information is passed on to the kernel. The kernel call does only transfer the architecture number, and the only other thing which could do the job is cleanup_before_linux() (which doesn't do it).
take a look a "parse_tags()" in "arch/arm/kernel/setup.c".
Dave

On Thu, Jan 16, 2003 at 12:27:06PM +0100, "David M?ller (ELSOFT AG)" wrote:
take a look a "parse_tags()" in "arch/arm/kernel/setup.c".
Well, what I do not understand is how the pointer to the tagged list is communicated between the bootloader and the kernel. The theKernel() call does only get the architecture number, whereas $LINUX/Documentation/arm/Booting says that r1 has to hold the machine type and r2 the pointer to the tagged list. Where is the latter one assigned?
Robert

Robert Schwebel wrote:
On Thu, Jan 16, 2003 at 12:27:06PM +0100, "David M?ller (ELSOFT AG)" wrote:
take a look a "parse_tags()" in "arch/arm/kernel/setup.c".
Well, what I do not understand is how the pointer to the tagged list is communicated between the bootloader and the kernel. The theKernel() call does only get the architecture number, whereas $LINUX/Documentation/arm/Booting says that r1 has to hold the machine type and r2 the pointer to the tagged list. Where is the latter one assigned?
Robert
The values stored in U-Boot's "gd->bd->bi_boot_params" variable and the "BOOT_PARAMS" macro in the machine specific "arch" file of ARMLinux have to be equal. AFAICS there is not passing in of the pointer to the tag list in r2, at least not in the kernel i'm looking at.
Dave

On Thu, Jan 16, 2003 at 05:07:55PM +0100, David M?ller wrote:
The values stored in U-Boot's "gd->bd->bi_boot_params" variable and the "BOOT_PARAMS" macro in the machine specific "arch" file of ARMLinux have to be equal. AFAICS there is not passing in of the pointer to the tag list in r2, at least not in the kernel i'm looking at.
Ah, ok, that does work.
Russell, the documentation in Documentation/arm/Booting seems to be missleading. Is the BOOT_PARAMS method the right way to go? If yes, how does the kernel know which address the bootloader uses to store the tagged list?
Robert

On Fri, Jan 17, 2003 at 01:07:49AM +0100, Robert Schwebel wrote:
On Thu, Jan 16, 2003 at 05:07:55PM +0100, David M?ller wrote:
The values stored in U-Boot's "gd->bd->bi_boot_params" variable and the "BOOT_PARAMS" macro in the machine specific "arch" file of ARMLinux have to be equal. AFAICS there is not passing in of the pointer to the tag list in r2, at least not in the kernel i'm looking at.
Ah, ok, that does work.
Russell, the documentation in Documentation/arm/Booting seems to be missleading. Is the BOOT_PARAMS method the right way to go? If yes, how does the kernel know which address the bootloader uses to store the tagged list?
See my mail from about 5 minutes ago explaining this.

On Fri, Jan 17, 2003 at 01:07:49AM +0100, Robert Schwebel wrote:
On Thu, Jan 16, 2003 at 05:07:55PM +0100, David M?ller wrote:
The values stored in U-Boot's "gd->bd->bi_boot_params" variable and the "BOOT_PARAMS" macro in the machine specific "arch" file of ARMLinux have to be equal. AFAICS there is not passing in of the pointer to the tag list in r2, at least not in the kernel i'm looking at.
Ah, ok, that does work.
Russell, the documentation in Documentation/arm/Booting seems to be missleading. Is the BOOT_PARAMS method the right way to go? If yes, how does the kernel know which address the bootloader uses to store the tagged list?
In addition, I've added two links to the mail from
participants (3)
-
"David Müller (ELSOFT AG)"
-
Robert Schwebel
-
Russell King - ARM Linux