summaryrefslogtreecommitdiffstats
path: root/sys/ia64/acpica
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
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')
-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