On 24/12/2014 14:12, Paolo Bonzini wrote: > Right now, the SSDT/DSDT is split in three parts: > > - code that doesn't need patching goes in the DSDT. Furthermore, > code in this category that is shared between PIIX4 and Q35 is > handled via #include. There was one exception, the SMC._STA > method is patched and is in the DSDT. > > - shared code that needs patching goes in the SSDT > > - template-based code that comes from command line arguments > goes in the SSDT as well > > This series changes things to: > > - code that is chipset-specific goes in the DSDT first. > Right now none of this needs patching > > - code that is not chipset-specific, some of which needs > patching, goes in the DSDT second > > - template-based code that comes from command line arguments > goes in the SSDT > > Patch 1 moves ssdt-misc ("common code that needs patching") > to the DSDT. Patches 2-4 stop using the C preprocessor > in the DSDTs. > > Patches 5-7 show why this could be useful. They add padding > in fw_cfg after the DSDT, and in exchange stop padding the ACPI > tables to 128K. This fixes migration problems (ROM sizes, RSDP) > because the ACPI tables are split in two: > > 1) fixed tables and the DSDT can be changed freely; > > 2) tables that vary depending on the command-line arguments (SSDT, > MADT, ...) are versioned and, given a machine type, they have to be > byte-equivalent across QEMU versions >= 2.3. > > Patches 5 and 6 introduce a new sizing algorithm. Patch 7 use it > to fix the migration problems. > > Only the first 4 or 6 patches are meant for inclusion. Patch 7 should > only be committed after Igor's series that rewrites the templating > mechanism in C. That makes it much simpler to track changes to the ACPI > tables, and removes dependencies on the IASL version that could cause > some head-scratching. > > The conflicts with Igor's series are nontrivial but overall > not complicated to solve. Igor rewrote ssdt-misc in C, but those > parts can be easily removed from his series. He has plans to > build the DSDT from C, and if that materializes it can apply to > acpi-dsdt-common.dsl too.
Oops, this does not update the bios-tables-test. v2 next week or after New Year. Paolo