- If xen,dom0-bootargs is present, it will be used for Dom0.
- If xen,xen-bootargs is _not_ present, but xen,dom0-bootargs is,
bootargs will be used for Xen.
+ - If a kernel boot module is present and has a bootargs property then
+ the top-level bootargs will used for Xen.
- If no Xen specific properties are present, bootargs is for Dom0.
- If xen,xen-bootargs is present, but xen,dom0-bootargs is missing,
bootargs will be used for Dom0.
*/
const char *device_tree_bootargs(const void *fdt)
{
- int node;
+ int node;
const struct fdt_property *prop;
node = fdt_path_offset(fdt, "/chosen");
prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
if ( prop == NULL )
{
- if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL))
+ struct dt_mb_module *dom0_mod = NULL;
+
+ if ( early_info.modules.nr_mods >= MOD_KERNEL )
+ dom0_mod = &early_info.modules.module[MOD_KERNEL];
+
+ if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
+ ( dom0_mod && dom0_mod->cmdline[0] ) )
prop = fdt_get_property(fdt, node, "bootargs", NULL);
}
if ( prop == NULL )