On 09/06/15 14:53, Jan Beulich wrote:
> From: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
>
> For example on Dell machines we see:
>
> (XEN)  00000fed18000-00000fed19fff type=11 attr=8000000000000000
> (XEN) Unknown cachability for MFNs 0xfed18-0xfed19
>
> Let's allow them to be mapped as UC.
>
> We also alter the 'efi-rs' to be 'efi=rs' or 'efi=no-rs'.
>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>
>
> --- a/docs/misc/xen-command-line.markdown
> +++ b/docs/misc/xen-command-line.markdown
> @@ -617,12 +617,24 @@ Either force retrieval of monitor EDID i
>  disable it (edid=no). This option should not normally be required
>  except for debugging purposes.
>  
> -### efi-rs
> -> `= <boolean>`
> +### efi
> +> `= List of [ rs | attr ]`
> +
> +All options are of boolean kind and can be prefixed with `no-` to
> +effect the inverse meaning.
> +
> +> `rs`
>  
>  > Default: `true`
>  
> -Force or disable use of EFI runtime services.
> +>> Force or disable use of EFI runtime services.
> +
> +> `attr=uc`
> +
> +> Default: `off`

`false` would be more consistent with the rest of the rest of the document.

Otherwise, Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com>

> +
> +>> Allows mapping of RuntimeServices which have no cachability attribute
> +>> set as UC.
>  
>  ### extra\_guest\_irqs
>  > `= [<domU number>][,<dom0 number>]`
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1100,7 +1100,31 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SY
>  #ifndef CONFIG_ARM /* TODO - runtime service support */
>  
>  static bool_t __initdata efi_rs_enable = 1;
> -boolean_param("efi-rs", efi_rs_enable);
> +static bool_t __initdata efi_map_uc;
> +
> +static void __init parse_efi_param(char *s)
> +{
> +    char *ss;
> +
> +    do {
> +        bool_t val = !!strncmp(s, "no-", 3);
> +
> +        if ( !val )
> +            s += 3;
> +
> +        ss = strchr(s, ',');
> +        if ( ss )
> +            *ss = '\0';
> +
> +        if ( !strcmp(s, "rs") )
> +            efi_rs_enable = val;
> +        else if ( !strcmp(s, "attr=uc") )
> +            efi_map_uc = val;
> +
> +        s = ss + 1;
> +    } while ( ss );
> +}
> +custom_param("efi", parse_efi_param);
>  
>  #ifndef USE_SET_VIRTUAL_ADDRESS_MAP
>  static __init void copy_mapping(unsigned long mfn, unsigned long end,
> @@ -1198,9 +1222,11 @@ void __init efi_init_memory(void)
>              prot |= _PAGE_PWT | _PAGE_PCD | MAP_SMALL_PAGES;
>          else
>          {
> -            printk(XENLOG_ERR "Unknown cachability for MFNs %#lx-%#lx\n",
> -                   smfn, emfn - 1);
> -            continue;
> +            printk(XENLOG_ERR "Unknown cachability for MFNs %#lx-%#lx%s\n",
> +                   smfn, emfn - 1, efi_map_uc ? ", assuming UC" : "");
> +            if ( !efi_map_uc )
> +                continue;
> +            prot |= _PAGE_PWT | _PAGE_PCD | MAP_SMALL_PAGES;
>          }
>  
>          if ( desc->Attribute & EFI_MEMORY_WP )
>
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to