38 #ifndef __ARCH_X86_BIOS_ACPI_HH__
39 #define __ARCH_X86_BIOS_ACPI_HH__
43 #include <type_traits>
48 #include "debug/ACPI.hh"
49 #include "params/X86ACPIMadt.hh"
50 #include "params/X86ACPIMadtIOAPIC.hh"
51 #include "params/X86ACPIMadtIntSourceOverride.hh"
52 #include "params/X86ACPIMadtLAPIC.hh"
53 #include "params/X86ACPIMadtLAPICOverride.hh"
54 #include "params/X86ACPIMadtNMI.hh"
55 #include "params/X86ACPIMadtRecord.hh"
56 #include "params/X86ACPIRSDP.hh"
57 #include "params/X86ACPIRSDT.hh"
58 #include "params/X86ACPISysDescTable.hh"
59 #include "params/X86ACPIXSDT.hh"
105 uint8_t checksum = 0;
107 uint8_t revision = 0;
108 uint32_t rsdtAddress = 0;
110 static_assert(std::is_trivially_copyable_v<MemR0>,
111 "Type not suitable for memcpy.");
117 uint64_t xsdtAddress = 0;
118 uint8_t extendedChecksum = 0;
119 uint8_t _reserved[3] = {};
121 static_assert(std::is_trivially_copyable_v<Mem>,
122 "Type not suitable for memcpy,");
144 uint8_t checksum = 0;
146 char oemTableID[8] = {};
147 uint32_t oemRevision = 0;
148 uint32_t creatorID = 0;
149 uint32_t creatorRevision = 0;
151 static_assert(std::is_trivially_copyable_v<Mem>,
152 "Type not suitable for memcpy.");
185 RXSDT(
const Params&
p,
const char* _signature, uint8_t _revision);
218 static_assert(std::is_trivially_copyable_v<Mem>,
219 "Type not suitable for memcpy.");
244 uint8_t acpiProcessorId = 0;
248 static_assert(std::is_trivially_copyable_v<Mem>,
249 "Type not suitable for memcpy.");
264 uint8_t ioApicId = 0;
265 uint8_t _reserved = 0;
266 uint32_t ioApicAddress = 0;
267 uint32_t intBase = 0;
269 static_assert(std::is_trivially_copyable_v<Mem>,
270 "Type not suitable for memcpy.");
285 uint8_t busSource = 0;
286 uint8_t irqSource = 0;
287 uint32_t globalSystemInterrupt = 0;
290 static_assert(std::is_trivially_copyable_v<Mem>,
291 "Type not suitable for memcpy.");
306 uint8_t acpiProcessorId = 0;
310 static_assert(std::is_trivially_copyable_v<Mem>,
311 "Type not suitable for memcpy.");
326 uint16_t _reserved = 0;
327 uint64_t localAPICAddress = 0;
329 static_assert(std::is_trivially_copyable_v<Mem>,
330 "Type not suitable for memcpy.");
345 uint32_t localAPICAddress = 0;
348 static_assert(std::is_trivially_copyable_v<Mem>,
349 "Type not suitable for memcpy.");
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
This object is a proxy for a port or other object which implements the functional response protocol,...
Abstract superclass for simulation objects.
PARAMS(X86ACPIMadtIOAPIC)
void prepareBuf(std::vector< uint8_t > &mem) const override
void prepareBuf(std::vector< uint8_t > &mem) const override
IntSourceOverride(const Params &p)
PARAMS(X86ACPIMadtIntSourceOverride)
PARAMS(X86ACPIMadtLAPICOverride)
LAPICOverride(const Params &p)
void prepareBuf(std::vector< uint8_t > &mem) const override
void prepareBuf(std::vector< uint8_t > &mem) const override
std::vector< Record * > records
Addr writeBuf(PortProxy &phys_proxy, Allocator &alloc, std::vector< uint8_t > &mem) const override
void prepareBuf(std::vector< uint8_t > &mem) const override
std::vector< uint8_t > prepare() const
virtual void prepareBuf(std::vector< uint8_t > &mem) const =0
PARAMS(X86ACPIMadtRecord)
Record(const Params &p, uint8_t _type)
static const char signature[]
Addr write(PortProxy &phys_proxy, Allocator &alloc) const
std::vector< SysDescTable * > entries
Addr writeBuf(PortProxy &phys_proxy, Allocator &alloc, std::vector< uint8_t > &mem) const override
RXSDT(const Params &p, const char *_signature, uint8_t _revision)
virtual Addr writeBuf(PortProxy &phys_proxy, Allocator &alloc, std::vector< uint8_t > &mem) const =0
PARAMS(X86ACPISysDescTable)
SysDescTable(const Params &p, const char *_signature, uint8_t _revision)
Addr write(PortProxy &phys_proxy, Allocator &alloc) const
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void align(const scfx_rep &lhs, const scfx_rep &rhs, int &new_wp, int &len_mant, scfx_mant_ref &lhs_mant, scfx_mant_ref &rhs_mant)
virtual Addr alloc(std::size_t size, unsigned align=1)=0
LinearAllocator(Addr begin, Addr end=0)
Addr alloc(std::size_t size, unsigned align) override