[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 15/19] pc: acpi: bump DSDT revision compliance t
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH 15/19] pc: acpi: bump DSDT revision compliance to v2 |
Date: |
Mon, 26 Oct 2015 12:06:51 +0100 |
On Mon, 26 Oct 2015 12:07:50 +0200
"Michael S. Tsirkin" <address@hidden> wrote:
> On Mon, Oct 26, 2015 at 11:03:01AM +0100, Igor Mammedov wrote:
> > On Sat, 24 Oct 2015 22:40:59 +0300
> > "Michael S. Tsirkin" <address@hidden> wrote:
> >
> > > On Fri, Oct 23, 2015 at 04:57:18PM +0200, Igor Mammedov wrote:
> > > > it turns on 64-bit integer handling in OSPM, which we could use
> > > > for writing simpler/smaller AML code.
> > > > Tested with Windows XP and Windows Server 2008, Linux:
> > > > * XP doesn't care about revision and continues to use 32 integers
> > > > and boots just fine with this change.
> > > > * WS 2008 and Linux - support rev2 and use 64-bit integers
> > > >
> > > > Signed-off-by: Igor Mammedov <address@hidden>
> > >
> > > This is still planned, right? IIUC you didn't post any code
> > > that needs the 64 bit math.
> > nope, the next patch 16/19 uses 64-bit math,
> >
> > it greatly simplifies _CRS as we don't have to do
> > 64-bit math manually using 32-bit integers.
> >
> > And even if we put new MHPD.MCRS() that uses 64-bit math in SSDT,
> > it won't crash XP unless someone would try to do memory hotplug
> >
> > and even it could be 'fixed' if we check _REV on every
> > hotplug event, it's a bit ugly but should work.
>
> Aha. That's exactly what I said. All that patch commit log
> says is
> pc: acpi: memhp: move MHPD.MCRS method into MHPT table
> when in fact you also rework it all to use 64 bit math.
yep, it's my fault. I'll fix it.
>
> So pls don't do this. Pls start by rewriting ASL in C
> while keeping AML code identical. Cleanups - next.
That's what I'm trying to avoid in this case as
reworked code is much simpler than the original ASL.
Rewriting original complex MHPD.MCRS() ASL into C and
immediately replacing it with simplified version is
rather counterproductive especially taking in account that
'make check' tests will fail anyway since code is moved
between tables and C-produced AML doesn't exactly match
blobs produced by a particular IASL version anyway.
But I can certainly do/split it other way around,
simplify ASL first and then rewrite result in C.
That should make reviewing easier even if tests
are broken.
>
> > >
> > > > ---
> > > > hw/i386/acpi-build.c | 2 +-
> > > > hw/i386/acpi-dsdt.dsl | 2 +-
> > > > hw/i386/q35-acpi-dsdt.dsl | 2 +-
> > > > 3 files changed, 3 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > > > index 8add4d9..c929540 100644
> > > > --- a/hw/i386/acpi-build.c
> > > > +++ b/hw/i386/acpi-build.c
> > > > @@ -1484,7 +1484,7 @@ build_dsdt(GArray *table_data, GArray *linker,
> > > > AcpiMiscInfo *misc)
> > > >
> > > > memset(dsdt, 0, sizeof *dsdt);
> > > > build_header(linker, table_data, dsdt, "DSDT",
> > > > - misc->dsdt_size, 1);
> > > > + misc->dsdt_size, 2);
> > > > }
> > > >
> > > > static GArray *
> > > > diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl
> > > > index 8dba096..6d46b36 100644
> > > > --- a/hw/i386/acpi-dsdt.dsl
> > > > +++ b/hw/i386/acpi-dsdt.dsl
> > > > @@ -22,7 +22,7 @@ ACPI_EXTRACT_ALL_CODE AcpiDsdtAmlCode
> > > > DefinitionBlock (
> > > > "acpi-dsdt.aml", // Output Filename
> > > > "DSDT", // Signature
> > > > - 0x01, // DSDT Compliance Revision
> > > > + 0x02, // DSDT Compliance Revision
> > > > "BXPC", // OEMID
> > > > "BXDSDT", // TABLE ID
> > > > 0x1 // OEM Revision
> > > > diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl
> > > > index 7be7b37..ecefdec 100644
> > > > --- a/hw/i386/q35-acpi-dsdt.dsl
> > > > +++ b/hw/i386/q35-acpi-dsdt.dsl
> > > > @@ -28,7 +28,7 @@ ACPI_EXTRACT_ALL_CODE Q35AcpiDsdtAmlCode
> > > > DefinitionBlock (
> > > > "q35-acpi-dsdt.aml",// Output Filename
> > > > "DSDT", // Signature
> > > > - 0x01, // DSDT Compliance Revision
> > > > + 0x02, // DSDT Compliance Revision
> > > > "BXPC", // OEMID
> > > > "BXDSDT", // TABLE ID
> > > > 0x2 // OEM Revision
> > > > --
> > > > 1.8.3.1
- [Qemu-devel] [PATCH 08/19] pc: acpi: memhp: move MHPD.MLCK mutex into NHPT table, (continued)
- [Qemu-devel] [PATCH 08/19] pc: acpi: memhp: move MHPD.MLCK mutex into NHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 10/19] pc: acpi: make memory device's _UID integer, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 09/19] pc: acpi: memhp: move MHPD.MSCN method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 12/19] pc: acpi: memhp: move MHPD.MPXM method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 13/19] pc: acpi: memhp: move MHPD.MOST method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 16/19] pc: acpi: memhp: move MHPD.MCRS method into MHPT table, Igor Mammedov, 2015/10/23
- [Qemu-devel] [PATCH 15/19] pc: acpi: bump DSDT revision compliance to v2, Igor Mammedov, 2015/10/23
[Qemu-devel] [PATCH 18/19] pc: acpi: memhp: remove acpi-dsdt-mem-hotplug.dsl and move \_GPE._E03 into SSDT, Igor Mammedov, 2015/10/23
[Qemu-devel] [PATCH 03/19] acpi: aml: add aml_create_qword_field(), Igor Mammedov, 2015/10/23
[Qemu-devel] [PATCH 14/19] pc: acpi: memhp: move MHPD.MEJ0 method into MHPT table, Igor Mammedov, 2015/10/23
[Qemu-devel] [PATCH 17/19] pc: acpi: memhp: move MHPD Device along with _UID/_HID into MHPT table, Igor Mammedov, 2015/10/23
[Qemu-devel] [PATCH 19/19] pc: acpi: memhp: cleanup MEMORY_HOTPLUG_IO_REGION usage, Igor Mammedov, 2015/10/23
Re: [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table, Laszlo Ersek, 2015/10/23
Re: [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table, Michael S. Tsirkin, 2015/10/24