From: Stefano Stabellini Date: Tue, 13 Nov 2018 16:57:45 +0000 (-0800) Subject: xen/arm: add start to struct bootcmdline X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c74b8d5ca03435f9ff717da6086d452801e731cf;p=people%2Fdariof%2Fxen.git xen/arm: add start to struct bootcmdline Add a new start address field to struct bootcmdline to easily match a cmdline to the corresponding bootmodule. This is useful for debugging (not actually needed for functionalities today, but could be.) Instead of printing the index in the cmdline array, print the start address of the corresponding bootmodule for each cmdline in early_print_info. Signed-off-by: Stefano Stabellini Reviewed-by: Julien Grall --- diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c index 878de19b93..891b4b66ff 100644 --- a/xen/arch/arm/bootfdt.c +++ b/xen/arch/arm/bootfdt.c @@ -238,7 +238,7 @@ static void __init process_multiboot_node(const void *fdt, int node, if ( !prop ) return; add_boot_cmdline(fdt_get_name(fdt, parent_node, &len), prop->data, - kind, domU); + kind, start, domU); } static void __init process_chosen_node(const void *fdt, int node, @@ -335,7 +335,7 @@ static void __init early_print_info(void) } printk("\n"); for ( i = 0 ; i < cmds->nr_mods; i++ ) - printk("CMDLINE[%d]:%s %s\n", i, + printk("CMDLINE[%"PRIpaddr"]:%s %s\n", cmds->cmdline[i].start, cmds->cmdline[i].dt_name, &cmds->cmdline[i].cmdline[0]); printk("\n"); diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index e0150ba0fe..b5256d2940 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -254,7 +254,7 @@ struct bootmodule * __init boot_module_find_by_kind(bootmodule_kind kind) } void __init add_boot_cmdline(const char *name, const char *cmdline, - bootmodule_kind kind, bool domU) + bootmodule_kind kind, paddr_t start, bool domU) { struct bootcmdlines *cmds = &bootinfo.cmdlines; struct bootcmdline *cmd; @@ -268,6 +268,7 @@ void __init add_boot_cmdline(const char *name, const char *cmdline, cmd = &cmds->cmdline[cmds->nr_mods++]; cmd->kind = kind; cmd->domU = domU; + cmd->start = start; ASSERT(strlen(name) <= DT_MAX_NAME); safe_strcpy(cmd->dt_name, name); diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h index d4c5dda8df..5418f92112 100644 --- a/xen/include/asm-arm/setup.h +++ b/xen/include/asm-arm/setup.h @@ -49,6 +49,7 @@ struct bootmodule { struct bootcmdline { bootmodule_kind kind; bool domU; + paddr_t start; char dt_name[DT_MAX_NAME]; char cmdline[BOOTMOD_MAX_CMDLINE]; }; @@ -104,7 +105,7 @@ struct bootmodule *boot_module_find_by_kind(bootmodule_kind kind); struct bootmodule * boot_module_find_by_addr_and_kind(bootmodule_kind kind, paddr_t start); void add_boot_cmdline(const char *name, const char *cmdline, - bootmodule_kind kind, bool domU); + bootmodule_kind kind, paddr_t start, bool domU); struct bootcmdline *boot_cmdline_find_by_kind(bootmodule_kind kind); struct bootcmdline * boot_cmdline_find_by_name(const char *name); const char *boot_module_kind_as_string(bootmodule_kind kind);