On Mon, Mar 15, 2010 at 10:15:00PM +0100, Bastian Blank wrote:
> On Mon, Mar 15, 2010 at 09:48:15PM +0800, Zhang, Xiantao wrote:
> > With my previous patch, seems you still need to apply the following patch
> > to xen.git. In this way, the GSI 0-15 are still setup by hypervisor, but it
> > also give one chance for dom0 to re-programme its polarity and trigger
> > mode.
Yeah, that won't do. This way there are no irq_desc set for the rest of
the devices.
>
> No, this seems to break further things. I lost access to the storage.
The mechanism this makes this work is a bit .. unwieldy.
It really looks that we initially set the IOAPIC with the wrong trigger
earlier on (and Zhangs patch tries to remove that so it is on demand,
but it removes the rest of your GSI entries, so that is not good).
1) Can you boot your baremetal with these options:
acpi.debug_level=0xffffffff acpi.debug_layer=0x2 apic=debug
2) And then later on your Xen with these (make SURE to _not_ have apic=debug on
the Linux kernel command line with Xen, it will blow):
xen.gz apic=debug apic_verbosity=debug console_to_ring sync_console
loglvl=all guest_loglvl=all
Also you could try this patch to confirm the theory that we incorrectly
get the trigger/level from the MP table early on boot (not compile
tested at all):
diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
index f5ce35f..b775452 100644
--- a/arch/x86/xen/pci.c
+++ b/arch/x86/xen/pci.c
@@ -88,6 +88,9 @@ void __init xen_setup_pirqs(void)
if (acpi_get_override_irq(irq, &trigger, &polarity) == -1)
continue;
+ if (irq == 14 || irq == 5)
+ trigger = 0;
+
xen_register_gsi(irq,
trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE,
polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|