diff options
author | dfr <dfr@FreeBSD.org> | 2001-10-05 10:30:09 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2001-10-05 10:30:09 +0000 |
commit | 8d0fc6ad6955dfd69396e60898c60b37b3ebd01e (patch) | |
tree | 34a99600d2fbdd5b1c2c1b914c2bb1526e19dba2 /sys/ia64/acpica/madt.c | |
parent | 9a18cc66cec80b353d00cd9d1186269baedddb44 (diff) | |
download | FreeBSD-src-8d0fc6ad6955dfd69396e60898c60b37b3ebd01e.zip FreeBSD-src-8d0fc6ad6955dfd69396e60898c60b37b3ebd01e.tar.gz |
Wire up most of the interrupt handling infrastructure. Not sure it works
right yet but its enough for the ATA probe to work. The SCSI probes which
follow are broken though.
Diffstat (limited to 'sys/ia64/acpica/madt.c')
-rw-r--r-- | sys/ia64/acpica/madt.c | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/sys/ia64/acpica/madt.c b/sys/ia64/acpica/madt.c index 65581c9..81b7f59 100644 --- a/sys/ia64/acpica/madt.c +++ b/sys/ia64/acpica/madt.c @@ -94,41 +94,46 @@ typedef struct /* PLATFORM INTERRUPT SOURCE */ static void parse_interrupt_override(INTERRUPT_SOURCE_OVERRIDE *override) { - printf("\t\tBus=%d, Source=%d, Irq=0x%x\n", - override->Bus, - override->Source, - override->GlobalSystemInterrupt); + if (bootverbose) + printf("\t\tBus=%d, Source=%d, Irq=0x%x\n", + override->Bus, + override->Source, + override->GlobalSystemInterrupt); } static void parse_io_sapic(IO_SAPIC *sapic) { - printf("\t\tId=0x%x, Vector=0x%x, Address=0x%lx\n", - sapic->IoSapicId, - sapic->Vector, - sapic->IoSapicAddress); + if (bootverbose) + printf("\t\tId=0x%x, Vector=0x%x, Address=0x%lx\n", + sapic->IoSapicId, + sapic->Vector, + sapic->IoSapicAddress); + sapic_create(sapic->IoSapicId, sapic->Vector, sapic->IoSapicAddress); } static void parse_local_sapic(LOCAL_SAPIC *sapic) { - 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\n", + sapic->ProcessorId, + sapic->LocalSapicId, + sapic->LocalSapicEid); } static void parse_platform_interrupt(PLATFORM_INTERRUPT_SOURCE *source) { - printf("\t\tPolarity=%d, TriggerMode=%d, Id=0x%x, " - "Eid=0x%x, Vector=0x%x, Irq=%d\n", - source->Polarity, - source->TriggerMode, - source->ProcessorId, - source->ProcessorEid, - source->IoSapicVector, - source->GlobalSystemInterrupt); + if (bootverbose) + printf("\t\tPolarity=%d, TriggerMode=%d, Id=0x%x, " + "Eid=0x%x, Vector=0x%x, Irq=%d\n", + source->Polarity, + source->TriggerMode, + source->ProcessorId, + source->ProcessorEid, + source->IoSapicVector, + source->GlobalSystemInterrupt); } static void @@ -144,7 +149,8 @@ parse_madt(APIC_TABLE *madt) for (p = (char *) (madt + 1); p < end; ) { APIC_HEADER *head = (APIC_HEADER *) p; - printf("\t"); + if (bootverbose) + printf("\t"); switch (head->Type) { case APIC_PROC: if (bootverbose) |