[U-Boot-Users] [new uImage] Code available on new-image branch of u-boot-testing repo

Kumar Gala galak at kernel.crashing.org
Thu Feb 7 17:29:48 CET 2008


On Feb 7, 2008, at 10:15 AM, Bartlomiej Sieka wrote:

> Kumar Gala wrote:
>> Here is a rough patch to common/cmd_bootm.c that passed load_end  
>> down to
>> the do_bootm_* commands.  I haven't updated the lib_*/bootm.c at this
>> point.
>> I think this is useful to help the bootm commands know exactly what  
>> memory
>> is used and what is freed.  There are situations that I'd like to get
>> working with the new code like being able to boot a kernel at 256M  
>> and
>> have the ramdisk and device tree exist about this 256M base.
>> - k
>> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
>> index 2ddb191..b36d09e 100644
>> --- a/common/cmd_bootm.c
>> +++ b/common/cmd_bootm.c
>> @@ -90,7 +90,7 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag,  
>> int argc, char *argv[]);
>> typedef void boot_os_fn (cmd_tbl_t *cmdtp, int flag,
>> 			int argc, char *argv[],
>> 			image_header_t *hdr,	/* of image to boot */
>> -			int verify);		/* getenv("verify")[0] != 'n' */
>> +			int verify, ulong load_end);	/* getenv("verify")[0] != 'n' */
>> extern boot_os_fn do_bootm_linux;
>> static boot_os_fn do_bootm_netbsd;
>> @@ -234,36 +234,36 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int  
>> argc, char *argv[])
>> #ifdef CONFIG_SILENT_CONSOLE
>> 	    fixup_silent_linux();
>> #endif
>> -	    do_bootm_linux (cmdtp, flag, argc, argv, hdr, verify);
>> +	    do_bootm_linux (cmdtp, flag, argc, argv, hdr, verify,  
>> load_end);
>> 	    break;
>
> Hi Kumar,
>
> In our development code for the new format we need even more data to  
> be
> passed down to do_bootm_* flavors. We are doing this by passing a
> pointer to a structure:
>
> -           do_bootm_linux (cmdtp, flag, argc, argv, hdr, verify);
> +           do_bootm_linux (cmdtp, flag, argc, argv, &images, verify);
>
>
> Where images is of type bootm_headers_t, defined like this:
>
> /*
> * Legacy and FIT format headers used by do_bootm() and do_bootm_<os>()
> * routines.
> */
> typedef struct bootm_headers {
>       /*
>        * Legacy os image header, if it is a multi component image
>        * then get_ramdisk() and get_fdt() will attempt to get
>        * data from second and third component accordingly.
>        */
>       image_header_t  *legacy_hdr_os;
>       ulong           legacy_hdr_valid;
>
> #if defined(CONFIG_FIT)
>       void            *fit_hdr_os;    /* os FIT image header */
>       char            *fit_uname_os;  /* os subimage node unit name */
>
>       void            *fit_hdr_rd;    /* init ramdisk FIT img header  
> */
>       char            *fit_uname_rd;  /* init ramdisk node unit name  
> */
>
> #if defined(CONFIG_PPC)
>       void            *fit_hdr_fdt;   /* FDT blob FIT image header */
>       char            *fit_uname_fdt; /* FDT blob node unit name */
> #endif
> #endif
> } bootm_headers_t;
>
>
> Perhaps it would be a good idea to add your load_end to bootm_headers?
> In any case, let's get back to this once the above mentioned code is  
> posted to the ML.

sounds good, any eta on when this patch will show up?

- k




More information about the U-Boot mailing list