jan.kiszka@siemens.com, juzhang@redhat.com, agraf@suse.de, yamahata@valinux.co.jp, mkletzan@redhat.com, afaerber@suse.de, armbru@redhat.com, lcapitulino@redhat.com, alex.williamson@redhat.com Message-Id: ca55b1a17173964bdfd37d5a967f5f33951983a4.1347565443.git.jbaron@redhat.com In-Reply-To: cover.1347565443.git.jbaron@redhat.com References: cover.1347565443.git.jbaron@redhat.com Subject: [PATCH 7/9] seabios: q35: Register PCI IRQs as active high in APIC mode
From: Jan Kiszka jan.kiszka@siemens.com
Allows windows to work.
Signed-off-by: Jan Kiszka jan.kiszka@siemens.com Signed-off-by: Jason Baron jbaron@redhat.com --- src/q35-acpi-dsdt.dsl | 46 +++++++++++++++++++++++++++++++++------------- 1 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/src/q35-acpi-dsdt.dsl b/src/q35-acpi-dsdt.dsl index 0f9c4cb..8a4ebcf 100644 --- a/src/q35-acpi-dsdt.dsl +++ b/src/q35-acpi-dsdt.dsl @@ -161,19 +161,10 @@ DefinitionBlock ( #define prt_slot_lnkH(nr) prt_slot_lnk(nr, LNKH, LNKE, LNKF, LNKG)
#define prt_slot_gsi(nr, gsi0, gsi1, gsi2, gsi3) \ - Package() { nr##ffff, 0, 0, gsi0 }, \ - Package() { nr##ffff, 1, 0, gsi1 }, \ - Package() { nr##ffff, 2, 0, gsi2 }, \ - Package() { nr##ffff, 3, 0, gsi3 } - -#define GSIA 0x10 -#define GSIB 0x11 -#define GSIC 0x12 -#define GSID 0x13 -#define GSIE 0x14 -#define GSIF 0x15 -#define GSIG 0x16 -#define GSIH 0x17 + Package() { nr##ffff, 0, gsi0, 0 }, \ + Package() { nr##ffff, 1, gsi1, 0 }, \ + Package() { nr##ffff, 2, gsi2, 0 }, \ + Package() { nr##ffff, 3, gsi3, 0 }
#define prt_slot_gsiA(nr) prt_slot_gsi(nr, GSIA, GSIB, GSIC, GSID) #define prt_slot_gsiB(nr) prt_slot_gsi(nr, GSIB, GSIC, GSID, GSIA) @@ -718,6 +709,35 @@ DefinitionBlock ( define_link(LNKF, 5, _SB.PCI0.LPC.PRQF) define_link(LNKG, 6, _SB.PCI0.LPC.PRQG) define_link(LNKH, 7, _SB.PCI0.LPC.PRQH) + +#define define_gsi_link(link, uid, gsi) \ + Device(link){ \ + Name(_HID, EISAID("PNP0C0F")) \ + Name(_UID, uid) \ + Name(_PRS, ResourceTemplate() { \ + Interrupt (, Level, ActiveHigh, \ + Shared) \ + { gsi } \ + }) \ + Method (_CRS, 0, NotSerialized) \ + { \ + Return (ResourceTemplate () { \ + Interrupt (, Level, ActiveHigh, \ + Shared) \ + { gsi } \ + }) \ + } \ + Method (_SRS, 1, NotSerialized) { } \ + } \ + + define_gsi_link(GSIA, 0, 0x10) + define_gsi_link(GSIB, 0, 0x11) + define_gsi_link(GSIC, 0, 0x12) + define_gsi_link(GSID, 0, 0x13) + define_gsi_link(GSIE, 0, 0x14) + define_gsi_link(GSIF, 0, 0x15) + define_gsi_link(GSIG, 0, 0x16) + define_gsi_link(GSIH, 0, 0x17) }
/*