diff options
author | jhb <jhb@FreeBSD.org> | 2014-01-02 21:26:59 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2014-01-02 21:26:59 +0000 |
commit | 7fc6c377c858c86ad0c781c2bfefb38c396151fa (patch) | |
tree | c01bbcb7f17a6da8be3f9a9ffb1c43ab4f14ee6c /usr.sbin/bhyve/acpi.h | |
parent | 57c75d298a4e4e33abcd44cca93b01d253bff4bf (diff) | |
download | FreeBSD-src-7fc6c377c858c86ad0c781c2bfefb38c396151fa.zip FreeBSD-src-7fc6c377c858c86ad0c781c2bfefb38c396151fa.tar.gz |
Rework the DSDT generation code a bit to generate more accurate info about
LPC devices. Among other things, the LPC serial ports now appear as
ACPI devices.
- Move the info for the top-level PCI bus into the PCI emulation code and
add ResourceProducer entries for the memory ranges decoded by the bus
for memory BARs.
- Add a framework to allow each PCI emulation driver to optionally write
an entry into the DSDT under the \_SB_.PCI0 namespace. The LPC driver
uses this to write a node for the LPC bus (\_SB_.PCI0.ISA).
- Add a linker set to allow any LPC devices to write entries into the
DSDT below the LPC node.
- Move the existing DSDT block for the RTC to the RTC driver.
- Add DSDT nodes for the AT PIC, the 8254 ISA timer, and the LPC UART
devices.
- Add a "SuperIO" device under the LPC node to claim "system resources"
aling with a linker set to allow various drivers to add IO or memory
ranges that should be claimed as a system resource.
- Add system resource entries for the extended RTC IO range, the registers
used for ACPI power management, the ELCR, PCI interrupt routing register,
and post data register.
- Add various helper routines for generating DSDT entries.
Reviewed by: neel (earlier version)
Diffstat (limited to 'usr.sbin/bhyve/acpi.h')
-rw-r--r-- | usr.sbin/bhyve/acpi.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/usr.sbin/bhyve/acpi.h b/usr.sbin/bhyve/acpi.h index b48186a..57edc48 100644 --- a/usr.sbin/bhyve/acpi.h +++ b/usr.sbin/bhyve/acpi.h @@ -43,5 +43,11 @@ struct vmctx; int acpi_build(struct vmctx *ctx, int ncpu); +void dsdt_line(const char *fmt, ...); +void dsdt_fixed_ioport(uint16_t iobase, uint16_t length); +void dsdt_fixed_irq(uint8_t irq); +void dsdt_fixed_mem32(uint32_t base, uint32_t length); +void dsdt_indent(int levels); +void dsdt_unindent(int levels); #endif /* _ACPI_H_ */ |