[SeaBIOS] [seabios patch 2/5] acpi: add qemu fwcfg driver
Gerd Hoffmann
kraxel at redhat.com
Fri May 4 10:21:24 CEST 2012
Add a acpi driver for the qemu firmware config interface.
Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
---
src/acpi-dsdt.dsl | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 4a18617..d71b783 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -445,6 +445,49 @@ DefinitionBlock (
Return (BUF0)
}
}
+
+ /* qemu firmware config interface */
+ Device (FWC)
+ {
+ Name (_HID, EisaId ("FWC0510"))
+ OperationRegion (FWCD, SystemIO, 0x0510, 0x02)
+ Field (FWCD, WordAcc, NoLock, Preserve)
+ {
+ FWCS, 16, /* select */
+ }
+ Field (FWCD, ByteAcc, NoLock, Preserve)
+ {
+ FWCW, 8, /* write */
+ FWCR, 8, /* read */
+ }
+ Name (_CRS, ResourceTemplate ()
+ {
+ IO (Decode16, 0x0510, 0x0510, 0x01, 0x02)
+ })
+
+ /* fetch fw_cfg entry, args: entry nr, length */
+ Method (FWCB, 2) {
+ Name (RETB, Buffer(Arg1) { })
+ Store (Arg0, FWCS)
+ Store (Zero, Local0)
+ While (LLess(Local0, Arg1)) {
+ Store (FWCR, Index(RETB, Local0))
+ Increment(Local0)
+ }
+ Return (RETB)
+ }
+
+ /* fetch signature & verify */
+ Method (_STA, 0, NotSerialized)
+ {
+ Store(ToString(FWCB(0, 4)), Local0)
+ If (LEqual (Local0, "QEMU")) {
+ Return (0x0f)
+ } Else {
+ Return (0x00)
+ }
+ }
+ }
}
--
1.7.1
More information about the SeaBIOS
mailing list