[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] arm/efi: Handle Xen bootargs from both xen.cfg and DT
On Mon, 13 Dec 2021, Luca Fancellu wrote: > Currently the Xen UEFI stub can accept Xen boot arguments from > the Xen configuration file using the "options=" keyword, but also > directly from the device tree specifying xen,xen-bootargs > property. > > When the configuration file is used, device tree boot arguments > are ignored and overwritten even if the keyword "options=" is > not used. > > This patch handle this case, so if the Xen configuration file is not > specifying boot arguments, the device tree boot arguments will be > used, if they are present. > > Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > v2 changes: > - Changed logic, now xen cfg bootarg value has precedence over DT > --- > docs/misc/efi.pandoc | 4 ++++ > xen/arch/arm/efi/efi-boot.h | 15 +++++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc > index abafb3452758..71fdc316b67b 100644 > --- a/docs/misc/efi.pandoc > +++ b/docs/misc/efi.pandoc > @@ -249,6 +249,10 @@ UEFI stub for module loading. > When adding DomU modules to device tree, also add the property > xen,uefi-cfg-load under chosen for Xen to load the Xen config file. > Otherwise, Xen will skip the config file and rely on device tree alone. > +When using the Xen configuration file in conjunction with the device tree, > you > +can specify the Xen boot arguments in the configuration file with the > "options=" > +keyword or in the device tree with the "xen,xen-bootargs" property, but be > +aware that the Xen configuration file value has a precedence over the DT > value. > > Example 1 of how to boot a true dom0less configuration: > > diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h > index 4fb345f225c8..ae8627134e5a 100644 > --- a/xen/arch/arm/efi/efi-boot.h > +++ b/xen/arch/arm/efi/efi-boot.h > @@ -503,11 +503,26 @@ static void __init efi_arch_handle_cmdline(CHAR16 > *image_name, > > if ( cfgfile_options ) > { > + PrintMessage(L"Using bootargs from Xen configuration file."); > prop_len += snprintf(buf + prop_len, > EFI_PAGE_SIZE - prop_len, " %s", > cfgfile_options); > if ( prop_len >= EFI_PAGE_SIZE ) > blexit(L"FDT string overflow"); > } > + else > + { > + /* Get xen,xen-bootargs in /chosen if it is specified */ > + const char *dt_bootargs_prop = fdt_getprop(fdt, chosen, > + "xen,xen-bootargs", NULL); > + if ( dt_bootargs_prop ) > + { > + PrintMessage(L"Using bootargs from device tree."); > + prop_len += snprintf(buf + prop_len, EFI_PAGE_SIZE - prop_len, > + " %s", dt_bootargs_prop); > + if ( prop_len >= EFI_PAGE_SIZE ) > + blexit(L"FDT string overflow"); > + } > + } > > if ( cmdline_options ) > { > -- > 2.17.1 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |