[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 1/3] docs: Improve documentation and parsing for efi=
Update parse_efi_param() to use parse_boolean() for "rs", so it behaves like other Xen booleans. However, change "attr=uc" to not be a boolean. "no-attr=uc" is ambiguous and shouldn't be accepted, but accept "attr=no" as an acceptable alternative. Update the command line documentation for consistency. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Release-acked-by: Juergen Gross <jgross@xxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> v3: * New v4: * Support "attr=no" --- docs/misc/xen-command-line.pandoc | 23 +++++++++-------------- xen/common/efi/boot.c | 20 +++++++++++--------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc index 21d7b4a..8b1703d 100644 --- a/docs/misc/xen-command-line.pandoc +++ b/docs/misc/xen-command-line.pandoc @@ -853,23 +853,18 @@ disable it (edid=no). This option should not normally be required except for debugging purposes. ### efi -> `= List of [ rs | attr ]` + = List of [ rs=<bool>, attr=no|uc ] -All options are of boolean kind and can be prefixed with `no-` to -effect the inverse meaning. +Controls for interacting with the system Extended Firmware Interface. -> `rs` +* The `rs` boolean controls whether Runtime Services are used. By default, + Xen uses Runtime Services itself, and proxies certain calls on behalf of + dom0. Selecting `rs=0` prohibits all use of Runtime Services. -> Default: `true` - ->> Force or disable use of EFI runtime services. - -> `attr=uc` - -> Default: `off` - ->> Allows mapping of RuntimeServices which have no cachability attribute ->> set as UC. +* The `attr=` string exists to specify what to do with memory regions of + unknown/unrecognised cacheability. `attr=no` is the default and will + leave the memory regions unmapped, while `attr=uc` will map them as fully + uncacheable. ### ept > `= List of [ ad=<bool>, pml=<bool> ]` diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c index 1e1a551..7919378 100644 --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -1389,27 +1389,29 @@ static bool __initdata efi_map_uc; static int __init parse_efi_param(const char *s) { const char *ss; - int rc = 0; + int rc = 0, val; do { - bool val = strncmp(s, "no-", 3); - - if ( !val ) - s += 3; - ss = strchr(s, ','); if ( !ss ) ss = strchr(s, '\0'); - if ( !cmdline_strcmp(s, "rs") ) + if ( (val = parse_boolean("rs", s, ss)) >= 0 ) { if ( val ) __set_bit(EFI_RS, &efi_flags); else __clear_bit(EFI_RS, &efi_flags); } - else if ( !cmdline_strcmp(s, "attr=uc") ) - efi_map_uc = val; + else if ( (ss - s) > 5 && !memcmp(s, "attr=", 5) ) + { + if ( cmdline_strcmp(s + 5, "uc") ) + efi_map_uc = true; + else if ( cmdline_strcmp(s + 5, "no") ) + efi_map_uc = false; + else + rc = -EINVAL; + } else rc = -EINVAL; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |