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

[Xen-changelog] Xen can parse the ACPI tables to get IOAPIC information -- we can rely



ChangeSet 1.1447, 2005/05/06 10:51:46+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx

        Xen can parse the ACPI tables to get IOAPIC information -- we can rely
        on domain0 to fill in information we miss because Xen lacks an ACPI
        interpreter.
        Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>



 acpi.c    |   12 ++++++++++--
 mpparse.c |    4 ++--
 2 files changed, 12 insertions(+), 4 deletions(-)


diff -Nru a/xen/arch/x86/acpi.c b/xen/arch/x86/acpi.c
--- a/xen/arch/x86/acpi.c       2005-05-06 06:06:21 -04:00
+++ b/xen/arch/x86/acpi.c       2005-05-06 06:06:21 -04:00
@@ -189,7 +189,7 @@
 
 #endif /*CONFIG_X86_LOCAL_APIC*/
 
-#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER)
+#if defined(CONFIG_X86_IO_APIC) /*&& defined(CONFIG_ACPI_INTERPRETER)*/
 
 static int __init
 acpi_parse_ioapic (
@@ -211,6 +211,7 @@
        return 0;
 }
 
+#ifdef CONFIG_ACPI_INTERPRETER
 /*
  * Parse Interrupt Source Override for the ACPI SCI
  */
@@ -244,6 +245,7 @@
        acpi_sci_override_gsi = gsi;
        return;
 }
+#endif
 
 static int __init
 acpi_parse_fadt(unsigned long phys, unsigned long size)
@@ -277,11 +279,13 @@
 
        acpi_table_print_madt_entry(header);
 
+#ifdef CONFIG_ACPI_INTERPRETER
        if (intsrc->bus_irq == acpi_fadt.sci_int) {
                acpi_sci_ioapic_setup(intsrc->global_irq,
                        intsrc->flags.polarity, intsrc->flags.trigger);
                return 0;
        }
+#endif
 
        mp_override_legacy_irq (
                intsrc->bus_irq,
@@ -460,13 +464,14 @@
 
 #endif /*CONFIG_X86_LOCAL_APIC*/
 
-#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER)
+#if defined(CONFIG_X86_IO_APIC) /*&& defined(CONFIG_ACPI_INTERPRETER)*/
 
        /* 
         * I/O APIC 
         * --------
         */
 
+#if 0
        /*
         * ACPI interpreter is required to complete interrupt setup,
         * so if it is off, don't enumerate the io-apics with ACPI.
@@ -476,6 +481,7 @@
        if (acpi_disabled || acpi_noirq) {
                return 1;
        }
+#endif
 
        /*
         * if "noapic" boot option, don't look for IO-APICs
@@ -510,12 +516,14 @@
                return result;
        }
 
+#ifdef CONFIG_ACPI_INTERPRETER
        /*
         * If BIOS did not supply an INT_SRC_OVR for the SCI
         * pretend we got one so we can set the SCI flags.
         */
        if (!acpi_sci_override_gsi)
                acpi_sci_ioapic_setup(acpi_fadt.sci_int, 0, 0);
+#endif
 
        result = acpi_table_parse_madt(ACPI_MADT_NMI_SRC, acpi_parse_nmi_src);
        if (result < 0) {
diff -Nru a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
--- a/xen/arch/x86/mpparse.c    2005-05-06 06:06:21 -04:00
+++ b/xen/arch/x86/mpparse.c    2005-05-06 06:06:21 -04:00
@@ -1017,7 +1017,7 @@
        MP_processor_info(&processor);
 }
 
-#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER)
+#if defined(CONFIG_X86_IO_APIC) /*&& defined(CONFIG_ACPI_INTERPRETER)*/
 
 #define MP_ISA_BUS             0
 #define MP_MAX_IOAPIC_PIN      127
@@ -1085,7 +1085,7 @@
        mp_ioapic_routing[idx].irq_end = irq_base + 
                io_apic_get_redir_entries(idx);
 
-       printk("IOAPIC[%d]: apic_id %d, version %d, address 0x%lx, "
+       printk("IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
                "IRQ %d-%d\n", idx, mp_ioapics[idx].mpc_apicid, 
                mp_ioapics[idx].mpc_apicver, mp_ioapics[idx].mpc_apicaddr,
                mp_ioapic_routing[idx].irq_start,

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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