summaryrefslogtreecommitdiffstats
path: root/sys/ia64/acpica
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2001-10-24 04:48:05 +0000
committermarcel <marcel@FreeBSD.org>2001-10-24 04:48:05 +0000
commitce33a29709ae6177d8a6649e86fa90c72363e536 (patch)
tree98972231d89e9ee99f9989990e56ad978cdfa72a /sys/ia64/acpica
parent1704b54dc9c34a4c7add1c12724c66787df43868 (diff)
downloadFreeBSD-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.c38
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:
OpenPOWER on IntegriCloud