Re: [PATCH v2 00/35] pc/q35: refactor ISA and SMBUS AML generation
On Thu, 9 Jun 2022 11:30:14 +0200 Igor Mammedov wrote: > On Wed, 8 Jun 2022 09:53:05 -0400 > Igor Mammedov wrote: > > > Changelog: > > since v1: > > * add tis 2.0 clarification to commit message (Ani Sinha) > > * rebase on top of pci tree > > * pick up acks > > tests fail due to new cxl testcase, > so I need to fixup whitelisting/blob updating patches and > then I'll resend series as v3 turns out CXL test affects only 2 patches, so no need to resend whole series, I just posted v3 as replies to the affected patches. and pushed fixed up rebase to https://gitlab.com/imammedo/qemu acpi_misc_buses_AcpiDevAmlIf_v3 > > > > > Series is excerpt form larger refactoring that does > > the same for PCI devices, but it's too large at this > > point, so I've split off a relatively self-contained > > ISA/SMBUS patches into a smaller separate series, and > > PCI refactoring will follow up on top of this series > > using the same AcpiDevAmlIf interface. > > > > Series consolidates and unifies how pc/q35 machine > > generates AML for ISA and SMBUS devices. It adds > > a new more generic interface 'AcpiDevAmlIf' that > > replaces ISA specific ISADeviceClass::build_aml > > hook and should allow to use the same approach > > (i.e. ask a device to provide its own AML) but > > not limited to ISA bus. > > Series applies AcpiDevAmlIf interface to a few > > ISA devices that were already using > > ISADeviceClass::build_aml and to devices /tpm, > > applesmc,pvpanic,ipmi/ that were generated in > > custom way. The AML generation for the later > > class is normalized to behave like any other > > ISA device that were using ISADeviceClass::build_aml > > and converted to interface 'AcpiDevAmlIf'. > > It simplifies process of building DSDT and > > eliminates custom probing/wiring for those devices > > as AML for them is generated at the time ISA/SMBUS > > is enumerated. > > > > Changes to DSDT tables QEMU generates are mostly > > contextual where devices scattered across DSDT > > are consolidated under respective device that > > hosts bus they are attached to. > > > > PS: > > + series adds several ACPI tests for devices > >that were missing them. > > > > Igor Mammedov (35): > > acpi: add interface to build device specific AML > > acpi: make isa_build_aml() support AcpiDevAmlIf interface > > acpi: fdc-isa: replace ISADeviceClass::build_aml with > > AcpiDevAmlIfClass:build_dev_aml > > acpi: parallel port: replace ISADeviceClass::build_aml with > > AcpiDevAmlIfClass:build_dev_aml > > acpi: serial-is: replace ISADeviceClass::build_aml with > > AcpiDevAmlIfClass:build_dev_aml > > acpi: mc146818rtc: replace ISADeviceClass::build_aml with > > AcpiDevAmlIfClass:build_dev_aml > > acpi: pckbd: replace ISADeviceClass::build_aml with > > AcpiDevAmlIfClass:build_dev_aml > > isa-bus: drop no longer used ISADeviceClass::build_aml > > tests: acpi: add and whitelist DSDT.ipmismbus expected blob > > tests: acpi: q35: add test for smbus-ipmi device > > tests: acpi: update expected blob DSDT.ipmismbus > > tests: acpi: whitelist DSDT.ipmismbus expected blob > > ipmi: acpi: use relative path to resource source > > tests: acpi: update expected DSDT.ipmismbus blob > > acpi: ich9-smb: add support for AcpiDevAmlIf interface > > acpi: ipmi: use AcpiDevAmlIf interface to build IPMI device > > descriptors > > q35: acpi: drop not needed PCMachineClass::do_not_add_smb_acpi > > tests: acpi: white-list to be re-factored pc/q35 DSDT > > acpi: pc: isa bridge: use AcpiDevAmlIf interface to build ISA device > > descriptors > > acpi: q35: isa bridge: use AcpiDevAmlIf interface to build ISA device > > descriptors > > tests: acpi: update expected blobs > > tests: acpi: add and white-list DSDT.applesmc expected blob > > tests: acpi: add applesmc testcase > > acpi: applesmc: use AcpiDevAmlIfClass:build_dev_aml to provide > > device's AML > > tests: acpi: update expected blobs > > tests: acpi: white-lists expected DSDT.pvpanic-isa blob > > tests: acpi: add pvpanic-isa: testcase > > acpi: pvpanic-isa: use AcpiDevAmlIfClass:build_dev_aml to provide > > device's AML > > tests: acpi: update expected DSDT.pvpanic-isa blob > > tests: acpi: white-list DSDT.tis.tpm2/DSDT.tis.tpm12 expected blobs > > acpi: pc/q35: tpm-tis: fix TPM device scope > > acpi: pc/q35: remove not needed 'if' condition on pci bus > > acpi: tpm-tis: use AcpiDevAmlIfClass:build_dev_aml to provide device's > > AML > > tests: acpi: update expected DSDT.tis.tpm2/DSDT.tis.tpm12 blobs > > x86: acpi-build: do not include hw/isa/isa.h directly > > > > include/hw/acpi/acpi_aml_interface.h | 40 ++ > > include/hw/acpi/ipmi.h| 9 +- > > include/hw/i386/pc.h | 1 - > > include/hw/isa/isa.h | 15 --- > > include/hw/misc/pvpanic.h | 9 -- > > hw/acpi/acpi_interface.c | 8 ++ > >
Re: [PATCH v2 00/35] pc/q35: refactor ISA and SMBUS AML generation
On Wed, 8 Jun 2022 09:53:05 -0400 Igor Mammedov wrote: > Changelog: > since v1: > * add tis 2.0 clarification to commit message (Ani Sinha) > * rebase on top of pci tree > * pick up acks tests fail due to new cxl testcase, so I need to fixup whitelisting/blob updating patches and then I'll resend series as v3 > > Series is excerpt form larger refactoring that does > the same for PCI devices, but it's too large at this > point, so I've split off a relatively self-contained > ISA/SMBUS patches into a smaller separate series, and > PCI refactoring will follow up on top of this series > using the same AcpiDevAmlIf interface. > > Series consolidates and unifies how pc/q35 machine > generates AML for ISA and SMBUS devices. It adds > a new more generic interface 'AcpiDevAmlIf' that > replaces ISA specific ISADeviceClass::build_aml > hook and should allow to use the same approach > (i.e. ask a device to provide its own AML) but > not limited to ISA bus. > Series applies AcpiDevAmlIf interface to a few > ISA devices that were already using > ISADeviceClass::build_aml and to devices /tpm, > applesmc,pvpanic,ipmi/ that were generated in > custom way. The AML generation for the later > class is normalized to behave like any other > ISA device that were using ISADeviceClass::build_aml > and converted to interface 'AcpiDevAmlIf'. > It simplifies process of building DSDT and > eliminates custom probing/wiring for those devices > as AML for them is generated at the time ISA/SMBUS > is enumerated. > > Changes to DSDT tables QEMU generates are mostly > contextual where devices scattered across DSDT > are consolidated under respective device that > hosts bus they are attached to. > > PS: > + series adds several ACPI tests for devices >that were missing them. > > Igor Mammedov (35): > acpi: add interface to build device specific AML > acpi: make isa_build_aml() support AcpiDevAmlIf interface > acpi: fdc-isa: replace ISADeviceClass::build_aml with > AcpiDevAmlIfClass:build_dev_aml > acpi: parallel port: replace ISADeviceClass::build_aml with > AcpiDevAmlIfClass:build_dev_aml > acpi: serial-is: replace ISADeviceClass::build_aml with > AcpiDevAmlIfClass:build_dev_aml > acpi: mc146818rtc: replace ISADeviceClass::build_aml with > AcpiDevAmlIfClass:build_dev_aml > acpi: pckbd: replace ISADeviceClass::build_aml with > AcpiDevAmlIfClass:build_dev_aml > isa-bus: drop no longer used ISADeviceClass::build_aml > tests: acpi: add and whitelist DSDT.ipmismbus expected blob > tests: acpi: q35: add test for smbus-ipmi device > tests: acpi: update expected blob DSDT.ipmismbus > tests: acpi: whitelist DSDT.ipmismbus expected blob > ipmi: acpi: use relative path to resource source > tests: acpi: update expected DSDT.ipmismbus blob > acpi: ich9-smb: add support for AcpiDevAmlIf interface > acpi: ipmi: use AcpiDevAmlIf interface to build IPMI device > descriptors > q35: acpi: drop not needed PCMachineClass::do_not_add_smb_acpi > tests: acpi: white-list to be re-factored pc/q35 DSDT > acpi: pc: isa bridge: use AcpiDevAmlIf interface to build ISA device > descriptors > acpi: q35: isa bridge: use AcpiDevAmlIf interface to build ISA device > descriptors > tests: acpi: update expected blobs > tests: acpi: add and white-list DSDT.applesmc expected blob > tests: acpi: add applesmc testcase > acpi: applesmc: use AcpiDevAmlIfClass:build_dev_aml to provide > device's AML > tests: acpi: update expected blobs > tests: acpi: white-lists expected DSDT.pvpanic-isa blob > tests: acpi: add pvpanic-isa: testcase > acpi: pvpanic-isa: use AcpiDevAmlIfClass:build_dev_aml to provide > device's AML > tests: acpi: update expected DSDT.pvpanic-isa blob > tests: acpi: white-list DSDT.tis.tpm2/DSDT.tis.tpm12 expected blobs > acpi: pc/q35: tpm-tis: fix TPM device scope > acpi: pc/q35: remove not needed 'if' condition on pci bus > acpi: tpm-tis: use AcpiDevAmlIfClass:build_dev_aml to provide device's > AML > tests: acpi: update expected DSDT.tis.tpm2/DSDT.tis.tpm12 blobs > x86: acpi-build: do not include hw/isa/isa.h directly > > include/hw/acpi/acpi_aml_interface.h | 40 ++ > include/hw/acpi/ipmi.h| 9 +- > include/hw/i386/pc.h | 1 - > include/hw/isa/isa.h | 15 --- > include/hw/misc/pvpanic.h | 9 -- > hw/acpi/acpi_interface.c | 8 ++ > hw/acpi/ipmi-stub.c | 2 +- > hw/acpi/ipmi.c| 53 +++- > hw/acpi/meson.build | 2 +- > hw/block/fdc-isa.c| 16 ++- > hw/char/parallel.c| 14 ++- > hw/char/serial-isa.c | 14 ++- > hw/i2c/smbus_ich9.c | 15 +++ > hw/i386/acpi-build.c | 171 ++ > hw/i386/pc_piix.c | 1 - > hw/i386/pc_q35.c
[PATCH v2 00/35] pc/q35: refactor ISA and SMBUS AML generation
Changelog: since v1: * add tis 2.0 clarification to commit message (Ani Sinha) * rebase on top of pci tree * pick up acks Series is excerpt form larger refactoring that does the same for PCI devices, but it's too large at this point, so I've split off a relatively self-contained ISA/SMBUS patches into a smaller separate series, and PCI refactoring will follow up on top of this series using the same AcpiDevAmlIf interface. Series consolidates and unifies how pc/q35 machine generates AML for ISA and SMBUS devices. It adds a new more generic interface 'AcpiDevAmlIf' that replaces ISA specific ISADeviceClass::build_aml hook and should allow to use the same approach (i.e. ask a device to provide its own AML) but not limited to ISA bus. Series applies AcpiDevAmlIf interface to a few ISA devices that were already using ISADeviceClass::build_aml and to devices /tpm, applesmc,pvpanic,ipmi/ that were generated in custom way. The AML generation for the later class is normalized to behave like any other ISA device that were using ISADeviceClass::build_aml and converted to interface 'AcpiDevAmlIf'. It simplifies process of building DSDT and eliminates custom probing/wiring for those devices as AML for them is generated at the time ISA/SMBUS is enumerated. Changes to DSDT tables QEMU generates are mostly contextual where devices scattered across DSDT are consolidated under respective device that hosts bus they are attached to. PS: + series adds several ACPI tests for devices that were missing them. Igor Mammedov (35): acpi: add interface to build device specific AML acpi: make isa_build_aml() support AcpiDevAmlIf interface acpi: fdc-isa: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml acpi: parallel port: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml acpi: serial-is: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml acpi: mc146818rtc: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml acpi: pckbd: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml isa-bus: drop no longer used ISADeviceClass::build_aml tests: acpi: add and whitelist DSDT.ipmismbus expected blob tests: acpi: q35: add test for smbus-ipmi device tests: acpi: update expected blob DSDT.ipmismbus tests: acpi: whitelist DSDT.ipmismbus expected blob ipmi: acpi: use relative path to resource source tests: acpi: update expected DSDT.ipmismbus blob acpi: ich9-smb: add support for AcpiDevAmlIf interface acpi: ipmi: use AcpiDevAmlIf interface to build IPMI device descriptors q35: acpi: drop not needed PCMachineClass::do_not_add_smb_acpi tests: acpi: white-list to be re-factored pc/q35 DSDT acpi: pc: isa bridge: use AcpiDevAmlIf interface to build ISA device descriptors acpi: q35: isa bridge: use AcpiDevAmlIf interface to build ISA device descriptors tests: acpi: update expected blobs tests: acpi: add and white-list DSDT.applesmc expected blob tests: acpi: add applesmc testcase acpi: applesmc: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML tests: acpi: update expected blobs tests: acpi: white-lists expected DSDT.pvpanic-isa blob tests: acpi: add pvpanic-isa: testcase acpi: pvpanic-isa: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML tests: acpi: update expected DSDT.pvpanic-isa blob tests: acpi: white-list DSDT.tis.tpm2/DSDT.tis.tpm12 expected blobs acpi: pc/q35: tpm-tis: fix TPM device scope acpi: pc/q35: remove not needed 'if' condition on pci bus acpi: tpm-tis: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML tests: acpi: update expected DSDT.tis.tpm2/DSDT.tis.tpm12 blobs x86: acpi-build: do not include hw/isa/isa.h directly include/hw/acpi/acpi_aml_interface.h | 40 ++ include/hw/acpi/ipmi.h| 9 +- include/hw/i386/pc.h | 1 - include/hw/isa/isa.h | 15 --- include/hw/misc/pvpanic.h | 9 -- hw/acpi/acpi_interface.c | 8 ++ hw/acpi/ipmi-stub.c | 2 +- hw/acpi/ipmi.c| 53 +++- hw/acpi/meson.build | 2 +- hw/block/fdc-isa.c| 16 ++- hw/char/parallel.c| 14 ++- hw/char/serial-isa.c | 14 ++- hw/i2c/smbus_ich9.c | 15 +++ hw/i386/acpi-build.c | 171 ++ hw/i386/pc_piix.c | 1 - hw/i386/pc_q35.c | 1 - hw/input/pckbd.c | 14 ++- hw/ipmi/isa_ipmi_bt.c | 4 + hw/ipmi/isa_ipmi_kcs.c| 4 + hw/ipmi/smbus_ipmi.c | 4 + hw/isa/isa-bus.c | 9 +- hw/isa/lpc_ich9.c | 19 +++ hw/isa/piix3.c| 17 +++ hw/misc/applesmc.c|