diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c index 8e6c96dcf6..e89c2e9009 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 261861e1ed..dd11815e2d 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1506,6 +1506,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 ) @@ -1538,9 +1541,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(); @@ -1611,8 +1611,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 */