[U-Boot] [PATCH 4/4] x86: Add support for specifying an initrd with the zboot command

Graeme Russ graeme.russ at gmail.com
Fri Dec 2 22:40:05 CET 2011


Hi Gabe,

On 30/11/11 20:17, Gabe Black wrote:
> This change finishes plumbing the initrd support built into the zboot
> mechanism out to the command interface.
> 
> It also fixes a bug in the command declaration where the kernel size could
> be passed as an optional second parameter but not enough arguments were
> allowed.
> 
> Signed-off-by: Gabe Black <gabeblack at chromium.org>
> ---
>  arch/x86/lib/zimage.c |   14 +++++++++++---
>  1 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
> index 0cbb571..ef34c23 100644
> --- a/arch/x86/lib/zimage.c
> +++ b/arch/x86/lib/zimage.c
> @@ -321,6 +321,8 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
>  	void *load_address;
>  	char *s;
>  	ulong bzImage_size = 0;
> +	ulong initrd_addr = 0;
> +	ulong initrd_size = 0;
>  
>  	disable_interrupts();
>  
> @@ -337,9 +339,15 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
>  	if (s)
>  		bzImage_addr = (void *)simple_strtoul(s, NULL, 16);
>  
> -	if (argc >= 3)
> +	if (argc >= 3) {
>  		/* argv[2] holds the size of the bzImage */
>  		bzImage_size = simple_strtoul(argv[2], NULL, 16);
> +	}

No braces for single-line statements - the comment is unnecessary as the
code is obvious

> +
> +	if (argc >= 4)
> +		initrd_addr = simple_strtoul(argv[3], NULL, 16);
> +	if (argc >= 5)
> +		initrd_size = simple_strtoul(argv[4], NULL, 16);
>  
>  	/* Lets look for */
>  	base_ptr = load_zimage(bzImage_addr, bzImage_size, &load_address);
> @@ -349,7 +357,7 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
>  		return -1;
>  	}
>  	if (setup_zimage(base_ptr, (char *)base_ptr + COMMAND_LINE_OFFSET,
> -			0, 0, 0)) {
> +			0, initrd_addr, initrd_size)) {
>  		printf("Setting up boot parameters failed ...\n");
>  		return -1;
>  	}
> @@ -366,7 +374,7 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
>  }
>  
>  U_BOOT_CMD(
> -	zboot, 2, 0,	do_zboot,
> +	zboot, 5, 0,	do_zboot,
>  	"Boot bzImage",
>  	""

I think it is about time it got a help message :)

>  );

Regards,

Graeme


More information about the U-Boot mailing list