* [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes.
@ 2009-08-14 12:21 Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high Gerd Hoffmann
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: avi
Hi,
This patch series brings a bunch of IRQ routing fixes for the pcbios
living at git://git.qemu.org/pcbios.git
They are cherry-picked from the kvm tree.
please apply,
Gerd
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
@ 2009-08-14 12:21 ` Gerd Hoffmann
2009-08-14 13:19 ` Gleb Natapov
2009-08-14 12:21 ` [Qemu-devel] [PATCH 2/6] kvm: bios: restrict pci interrupts to irq 5/9/10/11 Gerd Hoffmann
` (4 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Avi Kivity, Gerd Hoffmann
From: Avi Kivity <avi@qumranet.com>
now that kvm emulates the ioapic polarity correctly, we must describe
the polarity correctly in the acpi tables. otherwise pci interrupts won't
be delivered correctly.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
acpi-dsdt.dsl | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/acpi-dsdt.dsl b/acpi-dsdt.dsl
index 7bff30a..76ff100 100644
--- a/acpi-dsdt.dsl
+++ b/acpi-dsdt.dsl
@@ -441,7 +441,7 @@ DefinitionBlock (
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 1)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{3,4,5,6,7,9,10,11,12}
})
Method (_STA, 0, NotSerialized)
@@ -461,7 +461,7 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{1}
})
CreateWordField (PRR0, 0x01, TMP)
@@ -488,7 +488,7 @@ DefinitionBlock (
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 2)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{3,4,5,6,7,9,10,11,12}
})
Method (_STA, 0, NotSerialized)
@@ -508,7 +508,7 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{1}
})
CreateWordField (PRR0, 0x01, TMP)
@@ -535,7 +535,7 @@ DefinitionBlock (
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 3)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{3,4,5,6,7,9,10,11,12}
})
Method (_STA, 0, NotSerialized)
@@ -555,7 +555,7 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{1}
})
CreateWordField (PRR0, 0x01, TMP)
@@ -582,7 +582,7 @@ DefinitionBlock (
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 4)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{3,4,5,6,7,9,10,11,12}
})
Method (_STA, 0, NotSerialized)
@@ -602,7 +602,7 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveLow, Shared)
+ IRQ (Level, ActiveHigh, Shared)
{1}
})
CreateWordField (PRR0, 0x01, TMP)
--
1.6.2.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 2/6] kvm: bios: restrict pci interrupts to irq 5/9/10/11
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high Gerd Hoffmann
@ 2009-08-14 12:21 ` Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 3/6] kvm: bios: use extended interrupt descriptor for pci irqs Gerd Hoffmann
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Avi Kivity, Gerd Hoffmann
From: Avi Kivity <avi@qumranet.com>
we need to specify the pci interrupts as active high; this reduces
the number of override entries we have to add.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
acpi-dsdt.dsl | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/acpi-dsdt.dsl b/acpi-dsdt.dsl
index 76ff100..f7fda62 100644
--- a/acpi-dsdt.dsl
+++ b/acpi-dsdt.dsl
@@ -442,7 +442,7 @@ DefinitionBlock (
Name(_UID, 1)
Name(_PRS, ResourceTemplate(){
IRQ (Level, ActiveHigh, Shared)
- {3,4,5,6,7,9,10,11,12}
+ { 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
@@ -489,7 +489,7 @@ DefinitionBlock (
Name(_UID, 2)
Name(_PRS, ResourceTemplate(){
IRQ (Level, ActiveHigh, Shared)
- {3,4,5,6,7,9,10,11,12}
+ { 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
@@ -536,7 +536,7 @@ DefinitionBlock (
Name(_UID, 3)
Name(_PRS, ResourceTemplate(){
IRQ (Level, ActiveHigh, Shared)
- {3,4,5,6,7,9,10,11,12}
+ { 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
@@ -583,7 +583,7 @@ DefinitionBlock (
Name(_UID, 4)
Name(_PRS, ResourceTemplate(){
IRQ (Level, ActiveHigh, Shared)
- {3,4,5,6,7,9,10,11,12}
+ { 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
--
1.6.2.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 3/6] kvm: bios: use extended interrupt descriptor for pci irqs
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 2/6] kvm: bios: restrict pci interrupts to irq 5/9/10/11 Gerd Hoffmann
@ 2009-08-14 12:21 ` Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 4/6] kvm: bios: remove irq 9 from the pci interrupt link resources Gerd Hoffmann
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Avi Kivity, Gerd Hoffmann
From: Avi Kivity <avi@qumranet.com>
this is necessary to allow freebsd to boot; freebsd chokes if a regular
interrupt descriptor specifies an active high pic irq.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
acpi-dsdt.dsl | 56 ++++++++++++++++++++++++--------------------------------
1 files changed, 24 insertions(+), 32 deletions(-)
diff --git a/acpi-dsdt.dsl b/acpi-dsdt.dsl
index f7fda62..0bb5ca4 100644
--- a/acpi-dsdt.dsl
+++ b/acpi-dsdt.dsl
@@ -441,7 +441,7 @@ DefinitionBlock (
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 1)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{ 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
@@ -461,14 +461,14 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{1}
})
- CreateWordField (PRR0, 0x01, TMP)
+ CreateDWordField (PRR0, 0x05, TMP)
Store (PRQ0, Local0)
If (LLess (Local0, 0x80))
{
- ShiftLeft (One, Local0, TMP)
+ Store (Local0, TMP)
}
Else
{
@@ -478,17 +478,15 @@ DefinitionBlock (
}
Method (_SRS, 1, NotSerialized)
{
- CreateWordField (Arg0, 0x01, TMP)
- FindSetRightBit (TMP, Local0)
- Decrement (Local0)
- Store (Local0, PRQ0)
+ CreateDWordField (Arg0, 0x05, TMP)
+ Store (TMP, PRQ0)
}
}
Device(LNKB){
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 2)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{ 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
@@ -508,14 +506,14 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{1}
})
- CreateWordField (PRR0, 0x01, TMP)
+ CreateDWordField (PRR0, 0x05, TMP)
Store (PRQ1, Local0)
If (LLess (Local0, 0x80))
{
- ShiftLeft (One, Local0, TMP)
+ Store (Local0, TMP)
}
Else
{
@@ -525,17 +523,15 @@ DefinitionBlock (
}
Method (_SRS, 1, NotSerialized)
{
- CreateWordField (Arg0, 0x01, TMP)
- FindSetRightBit (TMP, Local0)
- Decrement (Local0)
- Store (Local0, PRQ1)
+ CreateDWordField (Arg0, 0x05, TMP)
+ Store (TMP, PRQ1)
}
}
Device(LNKC){
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 3)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{ 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
@@ -555,14 +551,14 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{1}
})
- CreateWordField (PRR0, 0x01, TMP)
+ CreateDWordField (PRR0, 0x05, TMP)
Store (PRQ2, Local0)
If (LLess (Local0, 0x80))
{
- ShiftLeft (One, Local0, TMP)
+ Store (Local0, TMP)
}
Else
{
@@ -572,17 +568,15 @@ DefinitionBlock (
}
Method (_SRS, 1, NotSerialized)
{
- CreateWordField (Arg0, 0x01, TMP)
- FindSetRightBit (TMP, Local0)
- Decrement (Local0)
- Store (Local0, PRQ2)
+ CreateDWordField (Arg0, 0x05, TMP)
+ Store (TMP, PRQ2)
}
}
Device(LNKD){
Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
Name(_UID, 4)
Name(_PRS, ResourceTemplate(){
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{ 5, 9, 10, 11 }
})
Method (_STA, 0, NotSerialized)
@@ -602,14 +596,14 @@ DefinitionBlock (
{
Name (PRR0, ResourceTemplate ()
{
- IRQ (Level, ActiveHigh, Shared)
+ Interrupt (, Level, ActiveHigh, Shared)
{1}
})
- CreateWordField (PRR0, 0x01, TMP)
+ CreateDWordField (PRR0, 0x05, TMP)
Store (PRQ3, Local0)
If (LLess (Local0, 0x80))
{
- ShiftLeft (One, Local0, TMP)
+ Store (Local0, TMP)
}
Else
{
@@ -619,10 +613,8 @@ DefinitionBlock (
}
Method (_SRS, 1, NotSerialized)
{
- CreateWordField (Arg0, 0x01, TMP)
- FindSetRightBit (TMP, Local0)
- Decrement (Local0)
- Store (Local0, PRQ3)
+ CreateDWordField (Arg0, 0x05, TMP)
+ Store (TMP, PRQ3)
}
}
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 4/6] kvm: bios: remove irq 9 from the pci interrupt link resources
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
` (2 preceding siblings ...)
2009-08-14 12:21 ` [Qemu-devel] [PATCH 3/6] kvm: bios: use extended interrupt descriptor for pci irqs Gerd Hoffmann
@ 2009-08-14 12:21 ` Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 5/6] kvm: bios: correct default pci irq links Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 6/6] add interrupt override entries for IRQs 5, 9, 10, 11 to the MADT Gerd Hoffmann
5 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Avi Kivity, Gerd Hoffmann
From: Avi Kivity <avi@qumranet.com>
qemu can't share isa irqs (which is how the acpi sci interrupt is implemented)
with the pci irqs, so remove the sci interrupt from the pci link interrupt
candidate list.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
acpi-dsdt.dsl | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/acpi-dsdt.dsl b/acpi-dsdt.dsl
index 0bb5ca4..56fb787 100644
--- a/acpi-dsdt.dsl
+++ b/acpi-dsdt.dsl
@@ -442,7 +442,7 @@ DefinitionBlock (
Name(_UID, 1)
Name(_PRS, ResourceTemplate(){
Interrupt (, Level, ActiveHigh, Shared)
- { 5, 9, 10, 11 }
+ { 5, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
@@ -487,7 +487,7 @@ DefinitionBlock (
Name(_UID, 2)
Name(_PRS, ResourceTemplate(){
Interrupt (, Level, ActiveHigh, Shared)
- { 5, 9, 10, 11 }
+ { 5, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
@@ -532,7 +532,7 @@ DefinitionBlock (
Name(_UID, 3)
Name(_PRS, ResourceTemplate(){
Interrupt (, Level, ActiveHigh, Shared)
- { 5, 9, 10, 11 }
+ { 5, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
@@ -577,7 +577,7 @@ DefinitionBlock (
Name(_UID, 4)
Name(_PRS, ResourceTemplate(){
Interrupt (, Level, ActiveHigh, Shared)
- { 5, 9, 10, 11 }
+ { 5, 10, 11 }
})
Method (_STA, 0, NotSerialized)
{
--
1.6.2.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 5/6] kvm: bios: correct default pci irq links
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
` (3 preceding siblings ...)
2009-08-14 12:21 ` [Qemu-devel] [PATCH 4/6] kvm: bios: remove irq 9 from the pci interrupt link resources Gerd Hoffmann
@ 2009-08-14 12:21 ` Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 6/6] add interrupt override entries for IRQs 5, 9, 10, 11 to the MADT Gerd Hoffmann
5 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: Avi Kivity, Gerd Hoffmann
From: Avi Kivity <avi@qumranet.com>
the hardware uses irqs 10 and 11, so change the bios to reflect that.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
rombios32.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/rombios32.c b/rombios32.c
index 3d15283..ece0865 100644
--- a/rombios32.c
+++ b/rombios32.c
@@ -716,7 +716,7 @@ static uint32_t pci_bios_io_addr;
static uint32_t pci_bios_mem_addr;
static uint32_t pci_bios_bigmem_addr;
/* host irqs corresponding to PCI irqs A-D */
-static uint8_t pci_irqs[4] = { 11, 9, 11, 9 };
+static uint8_t pci_irqs[4] = { 10, 10, 11, 11 };
static PCIDevice i440_pcidev;
static void pci_config_writel(PCIDevice *d, uint32_t addr, uint32_t val)
--
1.6.2.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 6/6] add interrupt override entries for IRQs 5, 9, 10, 11 to the MADT
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
` (4 preceding siblings ...)
2009-08-14 12:21 ` [Qemu-devel] [PATCH 5/6] kvm: bios: correct default pci irq links Gerd Hoffmann
@ 2009-08-14 12:21 ` Gerd Hoffmann
5 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 12:21 UTC (permalink / raw)
To: qemu-devel; +Cc: avi, Gerd Hoffmann
so the OS knows that they're active high, level triggered. This allows
for proper ACPI event reporting such as the (emulated) power button and
should also fix the ACPI timer.
by Avi Kivity, adapted for upstream qemu by Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
rombios32.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/rombios32.c b/rombios32.c
index ece0865..624f39f 100644
--- a/rombios32.c
+++ b/rombios32.c
@@ -57,6 +57,9 @@ typedef unsigned long long uint64_t;
#define APIC_ID 0x020
#define APIC_LVT3 0x370
+/* IRQs 5,9,10,11 */
+#define PCI_ISA_IRQ_MASK 0x0e20U
+
#define APIC_ENABLED 0x0100
#define AP_BOOT_ADDR 0x9f000
@@ -1730,7 +1733,7 @@ void acpi_bios_init(void)
madt_size = sizeof(*madt) +
sizeof(struct madt_processor_apic) * max_cpus +
#ifdef BX_QEMU
- sizeof(struct madt_io_apic) + sizeof(struct madt_int_override);
+ sizeof(struct madt_io_apic) + sizeof(struct madt_int_override) * 5;
#else
sizeof(struct madt_io_apic);
#endif
@@ -1828,6 +1831,21 @@ void acpi_bios_init(void)
int_override->source = cpu_to_le32(0);
int_override->gsi = cpu_to_le32(2);
int_override->flags = cpu_to_le32(0);
+ int_override++;
+
+ for ( i = 0; i < 16; i++ ) {
+ if (!(PCI_ISA_IRQ_MASK & (1U << i))) {
+ /* No need for a INT source override structure. */
+ continue;
+ }
+ memset(int_override, 0, sizeof(*int_override));
+ int_override->type = APIC_XRUPT_OVERRIDE;
+ int_override->length = sizeof(*int_override);
+ int_override->source = i;
+ int_override->gsi = i;
+ int_override->flags = 0xd; /* active high, level triggered */
+ int_override++;
+ }
#endif
acpi_build_table_header((struct acpi_table_header *)madt,
--
1.6.2.5
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high
2009-08-14 12:21 ` [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high Gerd Hoffmann
@ 2009-08-14 13:19 ` Gleb Natapov
2009-08-14 13:59 ` Gerd Hoffmann
0 siblings, 1 reply; 11+ messages in thread
From: Gleb Natapov @ 2009-08-14 13:19 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: qemu-devel, Avi Kivity
On Fri, Aug 14, 2009 at 02:21:53PM +0200, Gerd Hoffmann wrote:
> From: Avi Kivity <avi@qumranet.com>
>
> now that kvm emulates the ioapic polarity correctly, we must describe
kvm yes, but qemu doesn't. It make sense to fix qemu polarity handling
in the same series. Otherwise this patch does nothing.
> the polarity correctly in the acpi tables. otherwise pci interrupts won't
> be delivered correctly.
>
> Signed-off-by: Avi Kivity <avi@qumranet.com>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
> acpi-dsdt.dsl | 16 ++++++++--------
> 1 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/acpi-dsdt.dsl b/acpi-dsdt.dsl
> index 7bff30a..76ff100 100644
> --- a/acpi-dsdt.dsl
> +++ b/acpi-dsdt.dsl
> @@ -441,7 +441,7 @@ DefinitionBlock (
> Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
> Name(_UID, 1)
> Name(_PRS, ResourceTemplate(){
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {3,4,5,6,7,9,10,11,12}
> })
> Method (_STA, 0, NotSerialized)
> @@ -461,7 +461,7 @@ DefinitionBlock (
> {
> Name (PRR0, ResourceTemplate ()
> {
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {1}
> })
> CreateWordField (PRR0, 0x01, TMP)
> @@ -488,7 +488,7 @@ DefinitionBlock (
> Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
> Name(_UID, 2)
> Name(_PRS, ResourceTemplate(){
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {3,4,5,6,7,9,10,11,12}
> })
> Method (_STA, 0, NotSerialized)
> @@ -508,7 +508,7 @@ DefinitionBlock (
> {
> Name (PRR0, ResourceTemplate ()
> {
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {1}
> })
> CreateWordField (PRR0, 0x01, TMP)
> @@ -535,7 +535,7 @@ DefinitionBlock (
> Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
> Name(_UID, 3)
> Name(_PRS, ResourceTemplate(){
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {3,4,5,6,7,9,10,11,12}
> })
> Method (_STA, 0, NotSerialized)
> @@ -555,7 +555,7 @@ DefinitionBlock (
> {
> Name (PRR0, ResourceTemplate ()
> {
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {1}
> })
> CreateWordField (PRR0, 0x01, TMP)
> @@ -582,7 +582,7 @@ DefinitionBlock (
> Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link
> Name(_UID, 4)
> Name(_PRS, ResourceTemplate(){
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {3,4,5,6,7,9,10,11,12}
> })
> Method (_STA, 0, NotSerialized)
> @@ -602,7 +602,7 @@ DefinitionBlock (
> {
> Name (PRR0, ResourceTemplate ()
> {
> - IRQ (Level, ActiveLow, Shared)
> + IRQ (Level, ActiveHigh, Shared)
> {1}
> })
> CreateWordField (PRR0, 0x01, TMP)
> --
> 1.6.2.5
>
>
--
Gleb.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high
2009-08-14 13:19 ` Gleb Natapov
@ 2009-08-14 13:59 ` Gerd Hoffmann
2009-08-14 16:50 ` Gleb Natapov
0 siblings, 1 reply; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-14 13:59 UTC (permalink / raw)
To: Gleb Natapov; +Cc: qemu-devel, Avi Kivity
On 08/14/09 15:19, Gleb Natapov wrote:
> On Fri, Aug 14, 2009 at 02:21:53PM +0200, Gerd Hoffmann wrote:
>> From: Avi Kivity<avi@qumranet.com>
>>
>> now that kvm emulates the ioapic polarity correctly, we must describe
> kvm yes, but qemu doesn't. It make sense to fix qemu polarity handling
> in the same series.
Same series doesn't work. These patches are for the pcbios git tree.
Of course it makes sense to get more features and fixes from kvm merged
upstream. Feel free to join the party to speed this up ;)
> Otherwise this patch does nothing.
It doesn't hurt though and reduces the differences between qemu and kvm,
which is a good thing. Also note that the other patches which fix real
bugs depend on this one.
cheers,
Gerd
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high
2009-08-14 13:59 ` Gerd Hoffmann
@ 2009-08-14 16:50 ` Gleb Natapov
2009-08-17 7:28 ` Gerd Hoffmann
0 siblings, 1 reply; 11+ messages in thread
From: Gleb Natapov @ 2009-08-14 16:50 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: qemu-devel, Avi Kivity
On Fri, Aug 14, 2009 at 03:59:41PM +0200, Gerd Hoffmann wrote:
> On 08/14/09 15:19, Gleb Natapov wrote:
> >On Fri, Aug 14, 2009 at 02:21:53PM +0200, Gerd Hoffmann wrote:
> >>From: Avi Kivity<avi@qumranet.com>
> >>
> >>now that kvm emulates the ioapic polarity correctly, we must describe
> >kvm yes, but qemu doesn't. It make sense to fix qemu polarity handling
> >in the same series.
>
> Same series doesn't work. These patches are for the pcbios git tree.
>
We already have pcbios git tree. Cool.
> Of course it makes sense to get more features and fixes from kvm
> merged upstream. Feel free to join the party to speed this up ;)
>
kvm implements polarity in in-kernel ioapic, not in qemu one. It should
be very simple though. I though may be while you are at it... :)
> >Otherwise this patch does nothing.
>
> It doesn't hurt though and reduces the differences between qemu and
> kvm, which is a good thing. Also note that the other patches which
> fix real bugs depend on this one.
>
Can you elaborate which one fixes what bugs? I am not at all against
those patches going into qemu, just curious. AFAIK current bios works
with qemu as is.
--
Gleb.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high
2009-08-14 16:50 ` Gleb Natapov
@ 2009-08-17 7:28 ` Gerd Hoffmann
0 siblings, 0 replies; 11+ messages in thread
From: Gerd Hoffmann @ 2009-08-17 7:28 UTC (permalink / raw)
To: Gleb Natapov; +Cc: qemu-devel, Avi Kivity
On 08/14/09 18:50, Gleb Natapov wrote:
> On Fri, Aug 14, 2009 at 03:59:41PM +0200, Gerd Hoffmann wrote:
>> On 08/14/09 15:19, Gleb Natapov wrote:
>>> On Fri, Aug 14, 2009 at 02:21:53PM +0200, Gerd Hoffmann wrote:
>>>> From: Avi Kivity<avi@qumranet.com>
>>>>
>>>> now that kvm emulates the ioapic polarity correctly, we must describe
>>> kvm yes, but qemu doesn't. It make sense to fix qemu polarity handling
>>> in the same series.
>> Same series doesn't work. These patches are for the pcbios git tree.
>>
> We already have pcbios git tree. Cool.
Have a look at http://git.qemu.org/. Not yet live. As far I know the
plan is to (a) switch from savannah to qemu.org as master tree, (b)
import the bios trees as git submodules and (c) hook them into the qemu
build process.
>> Of course it makes sense to get more features and fixes from kvm
>> merged upstream. Feel free to join the party to speed this up ;)
>>
> kvm implements polarity in in-kernel ioapic, not in qemu one.
Ah, ok. upstream qemu probably wants to use the in-kernel ioapic too
some day, then we'll need the fixes anyway. But even without that it is
saner to have correct ACPI entries IMHO.
>> kvm, which is a good thing. Also note that the other patches which
>> fix real bugs depend on this one.
>>
> Can you elaborate which one fixes what bugs? I am not at all against
> those patches going into qemu, just curious. AFAIK current bios works
> with qemu as is.
The patch descriptions are pretty clear ...
Patch 4/6 (disallow sharing acpi irq #9) actually fixes some acpi
hickups. I've noticed the 'system_powerdown' monitor command started
working correctly recently for me, and I think this is this patch
(didn't double-check though).
cheers,
Gerd
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-08-17 7:28 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-14 12:21 [Qemu-devel] [PATCH 0/6] pcbios: irq routing fixes Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 1/6] kvm: bios: advertise pci irqs as active high Gerd Hoffmann
2009-08-14 13:19 ` Gleb Natapov
2009-08-14 13:59 ` Gerd Hoffmann
2009-08-14 16:50 ` Gleb Natapov
2009-08-17 7:28 ` Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 2/6] kvm: bios: restrict pci interrupts to irq 5/9/10/11 Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 3/6] kvm: bios: use extended interrupt descriptor for pci irqs Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 4/6] kvm: bios: remove irq 9 from the pci interrupt link resources Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 5/6] kvm: bios: correct default pci irq links Gerd Hoffmann
2009-08-14 12:21 ` [Qemu-devel] [PATCH 6/6] add interrupt override entries for IRQs 5, 9, 10, 11 to the MADT Gerd Hoffmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).