diff options
author | marcel <marcel@FreeBSD.org> | 2001-10-24 04:48:05 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2001-10-24 04:48:05 +0000 |
commit | ce33a29709ae6177d8a6649e86fa90c72363e536 (patch) | |
tree | 98972231d89e9ee99f9989990e56ad978cdfa72a /sys/ia64/acpica | |
parent | 1704b54dc9c34a4c7add1c12724c66787df43868 (diff) | |
download | FreeBSD-src-ce33a29709ae6177d8a6649e86fa90c72363e536.zip FreeBSD-src-ce33a29709ae6177d8a6649e86fa90c72363e536.tar.gz |
Add parse functions for local APIC and I/O APIC entries.
Also, show when a local APIC or SAPIC is disabled.
Diffstat (limited to 'sys/ia64/acpica')
-rw-r--r-- | sys/ia64/acpica/madt.c | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/sys/ia64/acpica/madt.c b/sys/ia64/acpica/madt.c index 81b7f59..325bf62 100644 --- a/sys/ia64/acpica/madt.c +++ b/sys/ia64/acpica/madt.c @@ -90,7 +90,26 @@ typedef struct /* PLATFORM INTERRUPT SOURCE */ #pragma pack() - +static void +parse_local_apic(PROCESSOR_APIC *apic) +{ + if (bootverbose) { + printf("\t\tProcessorId=0x%x, APIC Id=0x%x", + apic->ProcessorApicId, apic->LocalApicId); + if (!apic->ProcessorEnabled) + printf(" (disabled)"); + printf("\n"); + } +} + +static void +parse_io_apic(IO_APIC *apic) +{ + if (bootverbose) + printf("\t\tId=0x%x, Vector=0x%x, Address=0x%lx\n", + apic->IoApicId, apic->Vector, apic->IoApicAddress); +} + static void parse_interrupt_override(INTERRUPT_SOURCE_OVERRIDE *override) { @@ -115,11 +134,14 @@ parse_io_sapic(IO_SAPIC *sapic) static void parse_local_sapic(LOCAL_SAPIC *sapic) { - if (bootverbose) - printf("\t\tProcessorId=0x%x, Id=0x%x, Eid=0x%x\n", - sapic->ProcessorId, - sapic->LocalSapicId, - sapic->LocalSapicEid); + if (bootverbose) { + printf("\t\tProcessorId=0x%x, Id=0x%x, Eid=0x%x", + sapic->ProcessorId, sapic->LocalSapicId, + sapic->LocalSapicEid); + if (!sapic->ProcessorEnabled) + printf(" (disabled)"); + printf("\n"); + } } static void @@ -154,12 +176,14 @@ parse_madt(APIC_TABLE *madt) switch (head->Type) { case APIC_PROC: if (bootverbose) - printf("Processor APIC entry\n"); + printf("Local APIC entry\n"); + parse_local_apic((PROCESSOR_APIC *) head); break; case APIC_IO: if (bootverbose) printf("I/O APIC entry\n"); + parse_io_apic((IO_APIC *) head); break; case APIC_INTERRUPT_SOURCE_OVERRIDE: |