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 <stefanos@xilinx.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
This commit is contained in:
Stefano Stabellini authored and Julien Grall committed 2018-11-14 19:34:47 +00:00
1 parent 93ff7f1242
commit c74b8d5ca0
3 files changed
+6 -4

No files matched your search

+2 -2
View File
@@ -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");
+2 -1
View File
@@ -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);
+2 -1
View File
@@ -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);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.