
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