[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] 答复: [PATCH RESEND v3 2/2] x86/mmcfg/drhd: Move acpi_mmcfg_init() call before calling acpi_parse_dmar()



Hi Maintainers,

May I ask if this patch will be merged upstream or not? Our customer
is pushing us urgently with timeline for errata release and we are waiting
for official version from upstream.

Thanks
Zhenzhong
----- zhenzhong.duan@xxxxxxxxxx 写道:

> pci_conf_read8() needs pci mmcfg mapping to work on multiple pci
> segments system such as HPE Superdome-Flex.
> 
> Move acpi_mmcfg_init() call in acpi_boot_init() before calling
> acpi_parse_dmar() so that when pci_conf_read8() is called in
> acpi_parse_dev_scope(), we already have the mapping set up.
> 
> mmio_ro_ranges initialization is also moved ahead as it's the only
> dependency of pci_mmcfg_arch_enable() need to be moved. Also
> checked codes between the old and new call sites to ensure we
> don't break anything.
> 
> Furthermore MMCFG will continue to not work this early (or
> more precisely not at all until Dom0 boot has progressed far
> enough) if the range(s) isn't/aren't marked reserved in E820.
> 
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx>
> Tested-by: Gopalasetty, Manoj <manoj.gopalasetty@xxxxxxx>
> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> ---
>  xen/arch/x86/acpi/boot.c |    2 ++
>  xen/arch/x86/setup.c     |    8 +++-----
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
> index 8e6c96d..e89c2e9 100644
> --- a/xen/arch/x86/acpi/boot.c
> +++ b/xen/arch/x86/acpi/boot.c
> @@ -724,6 +724,8 @@ int __init acpi_boot_init(void)
>  
>       acpi_table_parse(ACPI_SIG_HPET, acpi_parse_hpet);
>  
> +     acpi_mmcfg_init();
> +
>       acpi_dmar_init();
>  
>       erst_init();
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index d5cc584..eabb011 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1493,6 +1493,9 @@ void __init noreturn __start_xen(unsigned long
> mbi_p)
>  
>      generic_apic_probe();
>  
> +    mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
> +                                  RANGESETF_prettyprint_hex);
> +
>      acpi_boot_init();
>  
>      if ( smp_found_config )
> @@ -1525,9 +1528,6 @@ void __init noreturn __start_xen(unsigned long
> mbi_p)
>      /* Low mappings were only needed for some BIOS table parsing. */
>      zap_low_mappings();
>  
> -    mmio_ro_ranges = rangeset_new(NULL, "r/o mmio ranges",
> -                                  RANGESETF_prettyprint_hex);
> -
>      init_apic_mappings();
>  
>      normalise_cpu_order();
> @@ -1598,8 +1598,6 @@ void __init noreturn __start_xen(unsigned long
> mbi_p)
>  
>      vesa_mtrr_init();
>  
> -    acpi_mmcfg_init();
> -
>      early_msi_init();
>  
>      iommu_setup();    /* setup iommu if available */
> -- 
> 1.7.3

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.