mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 11:24:42 +00:00
bootm: Add more fields to bootm_info
Add fields for the three bootm parameters and other things needed for booting. Also add a helper to set up the struct correctly. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
a48336e5ea
commit
c2211ff651
2 changed files with 43 additions and 0 deletions
|
@ -1192,6 +1192,14 @@ int bootm_boot_start(ulong addr, const char *cmdline)
|
|||
return ret;
|
||||
}
|
||||
|
||||
void bootm_init(struct bootm_info *bmi)
|
||||
{
|
||||
memset(bmi, '\0', sizeof(struct bootm_info));
|
||||
bmi->boot_progress = true;
|
||||
if (IS_ENABLED(CONFIG_CMD_BOOTM))
|
||||
bmi->images = &images;
|
||||
}
|
||||
|
||||
/**
|
||||
* switch_to_non_secure_mode() - switch to non-secure mode
|
||||
*
|
||||
|
|
|
@ -19,17 +19,52 @@ struct cmd_tbl;
|
|||
/**
|
||||
* struct bootm_info() - information used when processing images to boot
|
||||
*
|
||||
* These mirror the first three arguments of the bootm command. They are
|
||||
* designed to handle any type of image, but typically it is a FIT.
|
||||
*
|
||||
* @addr_img: Address of image to bootm, as passed to
|
||||
* genimg_get_kernel_addr_fit() for processing:
|
||||
*
|
||||
* NULL: Usees default load address, i.e. image_load_addr
|
||||
* <addr>: Uses hex address
|
||||
*
|
||||
* For FIT:
|
||||
* "[<addr>]#<conf>": Uses address (or image_load_addr) and also specifies
|
||||
* the FIT configuration to use
|
||||
* "[<addr>]:<subimage>": Uses address (or image_load_addr) and also
|
||||
* specifies the subimage name containing the OS
|
||||
*
|
||||
* @conf_ramdisk: Address (or with FIT, the name) of the ramdisk image, as
|
||||
* passed to boot_get_ramdisk() for processing, or NULL for none
|
||||
* @conf_fdt: Address (or with FIT, the name) of the FDT image, as passed to
|
||||
* boot_get_fdt() for processing, or NULL for none
|
||||
* @boot_progress: true to show boot progress
|
||||
* @images: images information
|
||||
* @cmd_name: command which invoked this operation, e.g. "bootm"
|
||||
* @argc: Number of arguments to the command (excluding the actual command).
|
||||
* This is 0 if there are no arguments
|
||||
* @argv: NULL-terminated list of arguments, or NULL if there are no arguments
|
||||
*/
|
||||
struct bootm_info {
|
||||
const char *addr_img;
|
||||
const char *conf_ramdisk;
|
||||
const char *conf_fdt;
|
||||
bool boot_progress;
|
||||
struct bootm_headers *images;
|
||||
const char *cmd_name;
|
||||
int argc;
|
||||
char *const *argv;
|
||||
};
|
||||
|
||||
/**
|
||||
* bootm_init() - Set up a bootm_info struct with useful defaults
|
||||
*
|
||||
* Set up the struct with default values for all members:
|
||||
* @boot_progress is set to true and @images is set to the global images
|
||||
* variable. Everything else is set to NULL except @argc which is 0
|
||||
*/
|
||||
void bootm_init(struct bootm_info *bmi);
|
||||
|
||||
/*
|
||||
* Continue booting an OS image; caller already has:
|
||||
* - copied image header to global variable `header'
|
||||
|
|
Loading…
Add table
Reference in a new issue