[U-Boot-Users] [new uImage] Code available on new-image branch of u-boot-testing repo
Bartlomiej Sieka
tur at semihalf.com
Thu Feb 7 17:15:31 CET 2008
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.
Regards,
Bartlomiej
More information about the U-Boot
mailing list