18#include <FreeNOS/System.h>
42 DEBUG(
"found ACPI RootSys at " << (
void *) rsd1);
43 DEBUG(
"ACPI v" << (rsd1->revision + 1) <<
".0");
55 NOTICE(
"RootSystemTable found");
61 NOTICE(
"ExtendedSystemTable found");
73 while (j < madt_length)
89 DEBUG(
"IRQ source override");
108 DEBUG(
"found " << num <<
" SDT entries");
109 for (
uint i = 0; i < num; i++)
129 DEBUG(
"found " << num <<
" SDT entries");
130 for (
uint i = 0; i < num; i++)
List< uint > m_cores
List of core ids found.
Result map(Address phys, Size size=4096, Memory::Access access=Memory::Readable|Memory::Writable|Memory::User)
Map I/O address space.
Address getBase() const
Get memory I/O base offset.
Result unmap()
Unmap I/O address space.
static const uint RSDSize
Size of the memory region for searching the RootSystemDescriptor.
static const u32 RootSystemTableSignature
Signature for the Root System Descriptor Table (RSDT).
static const uint RSDBase
Memory base address for searching the RootSystemDescriptor.
Result scanAPIC(MultipleAPICTable *madt)
Scan for cores in the APIC tables.
virtual Result initialize()
Initialize the ACPI.
IntelIO m_bios
I/O object for searching the RootSystemDescriptor.
static const u32 ExtendedSystemTableSignature
Signature for the Extended System Descriptor Table (XSDT).
virtual Result discover()
Discover processors.
virtual Result boot(CoreInfo *info)
Boot a processor.
static const u32 MultipleAPICTableSignature
Signature for the Multiple APIC Descriptor Table (MADT).
IntelIO m_rootIO
Root/Extended SDT table I/O object.
static const uint RootSystemSignature2
Signature to detect a valid RootSystemDescriptor (part 2).
static const uint RootSystemSignature1
Signature to detect a valid RootSystemDescriptor (part 1).
void append(T t)
Insert an item at the end of the list.
virtual void clear()
Clears the entire List.
#define PAGESIZE
ARM uses 4K pages.
unsigned int u32
Unsigned 32-bit number.
unsigned long Address
A memory address.
#define NOTICE(msg)
Output a notice message.
unsigned int uint
Unsigned integer number.
unsigned int Size
Any sane size indicator cannot go negative.
unsigned long long u64
Unsigned 64-bit number.
#define DEBUG(msg)
Output a debug message to standard output.
unsigned char u8
Unsigned 8-bit number.
Per-Core information structure.
Extended System Descriptor Table (XSDT)
SystemDescriptorHeader header
Multiple APIC Description Table (MADT) entry.
Multiple APIC Description Table (MADT) processor entry.
Multiple APIC Description Table (MADT).
SystemDescriptorHeader header
MultipleAPICTableEntry entry[]
Root System Description Pointer (ACPI v1.0).
Root System Description Pointer (ACPI v2.0)
Root System Descriptor Table (RSDT)
SystemDescriptorHeader header