summaryrefslogtreecommitdiffstats
path: root/sys/ia64/acpica/madt.c
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2001-10-05 10:30:09 +0000
committerdfr <dfr@FreeBSD.org>2001-10-05 10:30:09 +0000
commit8d0fc6ad6955dfd69396e60898c60b37b3ebd01e (patch)
tree34a99600d2fbdd5b1c2c1b914c2bb1526e19dba2 /sys/ia64/acpica/madt.c
parent9a18cc66cec80b353d00cd9d1186269baedddb44 (diff)
downloadFreeBSD-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.c48
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)
OpenPOWER on IntegriCloud