qemu added a way for bios to clear bits in the up/down register. Do this in PCNF so that we wont trigger multiple events for the same slot.
This does nothing when running on an old qemu.
Signed-off-by: Michael S. Tsirkin mst@redhat.com --- src/acpi-dsdt.dsl | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl index 15201e9..e17e0e2 100644 --- a/src/acpi-dsdt.dsl +++ b/src/acpi-dsdt.dsl @@ -132,6 +132,13 @@ DefinitionBlock ( B0EJ, 32, }
+ OperationRegion(PCCL, SystemIO, 0xae10, 0x08) + Field (PCST, DWordAcc, NoLock, WriteAsZeros) + { + PCCU, 32, + PCCD, 32, + } + Name (_CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, @@ -489,6 +496,8 @@ DefinitionBlock ( Store (Zero, Local0) Store (PCIU, Local1) Store (PCID, Local2) + Store (Local1, PCCU) + Store (Local2, PCCD) While (LLess(Local0, 31)) { Increment(Local0) If (And(Local1, ShiftLeft(1, Local0))) {
On Wed, Mar 28, 2012 at 05:31:09PM +0200, Michael S. Tsirkin wrote:
qemu added a way for bios to clear bits in the up/down register. Do this in PCNF so that we wont trigger multiple events for the same slot.
This does nothing when running on an old qemu.
When was this added to qemu? Do you have the commit id?
I'm inclined to wait until after the next SeaBIOS release to add this.
-Kevin
On Sat, Mar 31, 2012 at 10:39:48PM -0400, Kevin O'Connor wrote:
On Wed, Mar 28, 2012 at 05:31:09PM +0200, Michael S. Tsirkin wrote:
qemu added a way for bios to clear bits in the up/down register. Do this in PCNF so that we wont trigger multiple events for the same slot.
This does nothing when running on an old qemu.
When was this added to qemu? Do you have the commit id?
Not yet added, here's the patch: http://lists.gnu.org/archive/html/qemu-devel/2012-03/msg05456.html
I'm inclined to wait until after the next SeaBIOS release to add this.
-Kevin
I don't know what the schedule is, but I think we want this fix in the next qemu release. The races described in the link above, that this is fixing are real.
It probably makes sense to wait until the qemu part is merged, I'll let you know when this happens.