|
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 |