Signed-off-by: liguang lig.fnst@cn.fujitsu.com --- src/acpi-dsdt-isa.dsl | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/src/acpi-dsdt-isa.dsl b/src/acpi-dsdt-isa.dsl index 23761db..2b9c3a0 100644 --- a/src/acpi-dsdt-isa.dsl +++ b/src/acpi-dsdt-isa.dsl @@ -99,4 +99,30 @@ Scope(_SB.PCI0.ISA) { IRQNoFlags() { 3 } }) } + + Device (EC0) { + Name(_HID, EISAID ("PNP0C09")) + Name(_UID, 1) + + Method(_CRS, 0) { + Name(BFFR, ResourceTemplate() { + IO(Decode16, 0x62, 0x62, 0, 1) // ACPI DATA IN/OUT + IO(Decode16, 0x66, 0x66, 0, 1) // CMD/STS + }) + Return(BFFR) + } + + OperationRegion(ECFD, EmbeddedControl, 0, 0xFF) + Field(ECFD, ByteAcc, Lock, Preserve) { + Offset(1), + CPUS, 8, // 1, CPU plug/unplug status map + CPUN, 8, // 2, CPU index + } + + Name(_GPE, 3) + + Method(_Q01) { + } + } + }
Signed-off-by: liguang lig.fnst@cn.fujitsu.com --- src/acpi-dsdt-cpu-hotplug.dsl | 9 +++++---- src/acpi-dsdt-isa.dsl | 8 +++++--- 2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/acpi-dsdt-cpu-hotplug.dsl b/src/acpi-dsdt-cpu-hotplug.dsl index 0f3e83b..869373b 100644 --- a/src/acpi-dsdt-cpu-hotplug.dsl +++ b/src/acpi-dsdt-cpu-hotplug.dsl @@ -6,6 +6,7 @@ Scope(_SB) { /* Objects filled in by run-time generated SSDT */ External(NTFY, MethodObj) External(CPON, PkgObj) + External(PRS, BuffObj)
/* Methods called by run-time generated SSDT Processor objects */ Method(CPMA, 1, NotSerialized) { @@ -38,10 +39,10 @@ Scope(_SB) { }
/* CPU hotplug notify method */ - OperationRegion(PRST, SystemIO, 0xaf00, 32) - Field(PRST, ByteAcc, NoLock, Preserve) { - PRS, 256 - } +// OperationRegion(PRST, SystemIO, 0xaf00, 32) +// Field(PRST, ByteAcc, NoLock, Preserve) { +// PRS, 256 +// } Method(PRSC, 0) { // Local5 = active cpu bitmap Store(PRS, Local5) diff --git a/src/acpi-dsdt-isa.dsl b/src/acpi-dsdt-isa.dsl index 2b9c3a0..1db92a1 100644 --- a/src/acpi-dsdt-isa.dsl +++ b/src/acpi-dsdt-isa.dsl @@ -103,6 +103,7 @@ Scope(_SB.PCI0.ISA) { Device (EC0) { Name(_HID, EISAID ("PNP0C09")) Name(_UID, 1) + Name(_STR, Unicode ("QEMU-EC"))
Method(_CRS, 0) { Name(BFFR, ResourceTemplate() { @@ -114,9 +115,10 @@ Scope(_SB.PCI0.ISA) {
OperationRegion(ECFD, EmbeddedControl, 0, 0xFF) Field(ECFD, ByteAcc, Lock, Preserve) { - Offset(1), - CPUS, 8, // 1, CPU plug/unplug status map - CPUN, 8, // 2, CPU index + Offset(2), + CCMD, 3, // 2, CMD for plug/unplug + CPUN, 8, // 3, CPU changed id index + PRS, 256, // 4. CPU status map }
Name(_GPE, 3)