NOVA User-Level Environment
Version testbox/changed-memory-timing-317-g320d8b5
|
I/OxAPIC model. More...
Public Types | |
enum | { IOAPIC_BASE = 0xfec00000, OFFSET_INDEX = 0x00, OFFSET_DATA = 0x10, OFFSET_PAR = 0x20, OFFSET_EOI = 0x40, PINS = 24, EXTINT_PIN = 0, NMI_PIN = 23 } |
Public Member Functions | |
bool | receive (MessageMem &msg) |
bool | receive (MessageIrq &msg) |
bool | receive (MessageLegacy &msg) |
void | discovery () |
IOApic (Motherboard &mb, unsigned long base, unsigned gsibase) | |
Public Member Functions inherited from StaticReceiver< IOApic > | |
StaticReceiver () | |
Public Member Functions inherited from Device | |
void | debug_dump () |
Device (const char *debug_name) |
Public Attributes | |
Motherboard & | _mb |
Private Member Functions | |
unsigned | irq_routing (unsigned gsi) |
Route IRQs and return a pin to a GSI number. | |
unsigned | reverse_routing (unsigned pin) |
Return an GSI from a pin. | |
void | read_data (unsigned &value) |
Read the data register. | |
void | write_data (unsigned value) |
Write to the data register. | |
void | notify (unsigned pin) |
bool | pin_assert (unsigned pin, MessageIrq::Type type) |
Assert a pin on this IO/APIC. | |
void | eoi (unsigned char vector) |
EOI a vector. | |
void | reset () |
Reset the registers. |
Private Attributes | |
unsigned | _base |
unsigned | _gsibase |
unsigned char | _index |
unsigned | _id |
unsigned | _redir [PINS *2] |
bool | _rirr [PINS] |
bool | _ds [PINS] |
bool | _notify [PINS] |
Additional Inherited Members | |
Static Public Member Functions inherited from DiscoveryHelper< IOApic > | |
static bool | discover (Device *o, MessageDiscovery &msg) |
Static Public Member Functions inherited from StaticReceiver< IOApic > | |
static bool | receive_static (Device *o, M &msg) |
Protected Member Functions inherited from DiscoveryHelper< IOApic > | |
bool | discovery_write_st (const char *resource, unsigned offset, const void *value, unsigned count) |
bool | discovery_write_dw (const char *resource, unsigned offset, unsigned value, unsigned count=4) |
Write a dword or less than it. | |
bool | discovery_read_dw (const char *resource, unsigned offset, unsigned &value) |
Read a dword. | |
unsigned | discovery_length (const char *resource, unsigned minlen) |
Return the length of an ACPI table or minlen if it is smaller. |
I/OxAPIC model.
State: testing Features: MSI generation, level+notify, PAR, EOI Difference: no APIC bus Documentation: Intel ICH4.
anonymous enum |
|
inline |
|
inline |
|
inlineprivate |
EOI a vector.
|
inlineprivate |
Route IRQs and return a pin to a GSI number.
|
inlineprivate |
|
inlineprivate |
Assert a pin on this IO/APIC.
|
inlineprivate |
Read the data register.
|
inline |
|
inline |
|
inline |
|
inlineprivate |
Reset the registers.
|
inlineprivate |
Return an GSI from a pin.
|
inlineprivate |
Write to the data register.
We allow to write every bit, as we never actually use the value.
|
private |
|
private |
|
private |
|
private |
|
private |
Motherboard& IOApic::_mb |
|
private |
|
private |
|
private |