Generate an ACPI DSDT node for fw_cfg on pc and arm guests. New since v8:
- patch 3/5: on pc/x86, place FWCF node in scope \_SB.PCI0 (instead of directly under \_SB), to prevent any possible resource conflict as might be observed by Windows (thanks again to Igor Mammedov for the suggestion!) Thanks, --Gabriel >New since v7: > > - edited commit blurb on 3/5 to match updated content, i.e. that > the ACPI node is now inserted into the DSDT (no longer the SSDT). > (Thanks to Igor Mammedov for catching that!) > >>New since v6: >> - rebased to fit on top of fb306ff and f264d36, which moved things >> around in pc's acpi-build.c (only patch 3/5 affected); >> - kernel-side fw_cfg sysfs driver accepted into upstream linux >> >>>New since v5: >>> >>> - rebased on top of latest QEMU git master >>> >>>>New since v4: >>>> >>>> - rebased on top of Marc's DMA series >>>> - drop machine compat dependency for insertion into x86/ssdt >>>> (patch 3/5), following agreement between Igor and Eduardo >>>> - [mm]io register range now covers DMA register as well, if >>>> available. >>>> - s/bios/firmware in doc file updates >>>> >>>>>New since v3: >>>>> >>>>> - rebased to work on top of 87e896ab (introducing pc-*-25 classes), >>>>> inserting fw_cfg acpi node only for machines >= 2.5. >>>>> >>>>> - reintroduce _STA with value 0x0B (bit 2 for u/i visibility turned >>>>> off to avoid Windows complaining -- thanks Igor for catching that!) >>>>> >>>>>If there's any other feedback besides questions regarding the >>>>>appropriateness of "QEMU0002" as the value of _HID, please don't hesitate! >>>>> >>>>>>New since v2: >>>>>> >>>>>> - pc/i386 node in ssdt only on machine types *newer* than 2.4 >>>>>> (as suggested by Eduardo) >>>>>> >>>>>>I appreciate any further comments and reviews. Hopefully we can make >>>>>>this palatable for upstream, modulo the lingering concerns about whether >>>>>>"QEMU0002" is ok to use as the value of _HID, which I'll hopefully get >>>>>>sorted out with the kernel crew... >>>>>> >>>>>>>New since v1: >>>>>>> >>>>>>> - expose control register size (suggested by Marc MarĂ) >>>>>>> >>>>>>> - leaving out _UID and _STA fields (thanks Shannon & Igor) >>>>>>> >>>>>>> - using "QEMU0002" as the value of _HID (thanks Michael) >>>>>>> >>>>>>> - added documentation blurb to docs/specs/fw_cfg.txt >>>>>>> (mainly to record usage of the "QEMU0002" string with fw_cfg). >>>>>>> >>>>>>>> This series adds a fw_cfg device node to the SSDT (on pc), or to the >>>>>>>> DSDT (on arm). >>>>>>>> >>>>>>>> - Patch 1/3 moves (and renames) the BIOS_CFG_IOPORT (0x510) >>>>>>>> define from pc.c to pc.h, so that it could be used from >>>>>>>> acpi-build.c in patch 2/3. >>>>>>>> >>>>>>>> - Patch 2/3 adds a fw_cfg node to the pc SSDT. >>>>>>>> >>>>>>>> - Patch 3/3 adds a fw_cfg node to the arm DSDT. >>>>>>>> >>>>>>>> I made up some names - "FWCF" for the node name, and "FWCF0001" >>>>>>>> for _HID; no idea whether that's appropriate, or how else I should >>>>>>>> figure out what to use instead... >>>>>>>> >>>>>>>> Also, using scope "\\_SB", based on where fw_cfg shows up in the >>>>>>>> output of "info qtree". Again, if that's wrong, please point me in >>>>>>>> the right direction. >>>>>>>> >>>>>>>> Re. 3/3 (also mentioned after the commit blurb in the patch itself), >>>>>>>> I noticed none of the other DSDT entries contain a _STA field, >>>>>>>> wondering >>>>>>>> why it would (not) make sense to include that, same as on the PC. Gabriel L. Somlo (5): fw_cfg: expose control register size in fw_cfg.h pc: fw_cfg: move ioport base constant to pc.h acpi: pc: add fw_cfg device node to dsdt acpi: arm: add fw_cfg device node to dsdt fw_cfg: document ACPI device node information docs/specs/fw_cfg.txt | 9 +++++++++ hw/arm/virt-acpi-build.c | 15 +++++++++++++++ hw/i386/acpi-build.c | 29 +++++++++++++++++++++++++++++ hw/i386/pc.c | 5 ++--- hw/nvram/fw_cfg.c | 4 +++- include/hw/i386/pc.h | 2 ++ include/hw/nvram/fw_cfg.h | 3 +++ 7 files changed, 63 insertions(+), 4 deletions(-) -- 2.4.3