I don't think our IO-APIC is enabled.. We tell it to set its ID to 2,
but it continues to think its ID is F. Here is the kernel panic:
ENABLING IO-APIC IRQs.
...changing IO-APIC physical APIC ID to 2 ...
Kernel panic: could not set ID!.
.
In idle task - not syncing.
APIC error interrupt on CPU#0, should never happen..
... APIC ESR0: 00000000.
... APIC ESR1: 00000040.
... bit 6: Received Illegal Vector
Does anyone know how to setup the IO-APIC correctly and/or know where I
can find this information (Maciej, you wrote io_apic.c, right?)?
Any help would be greatly appreciated. Thanks.
- James
>>>>>> Here is the full boot so far:
Linux version 2.4.0-test1 (jimi@snaresland) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #7 SMP Mon Jun 26 16:46:02 MDT 2000.
BIOS-provided physical RAM map:.
e820: 000000000009f000 @ 0000000000000000 (usable).
e820: 0000000003e00000 @ 0000000000100000 (usable).
Scan SMP from c0000000 for 1024 bytes..
found SMP MP-table at 00000000.
hm, page 00000000 reserved twice..
On node 0 totalpages: 16128.
zone(0): 4096 pages..
zone(1): 12032 pages..
zone(2): 0 pages..
Intel MultiProcessor Specification v1.4.
Virtual Wire compatibility mode..
Default MP configuration #5.
Processor #0 Pentium(tm) Pro APIC version 16.
Floating point unit present..
Machine Exception supported..
64 bit compare & exchange supported..
Internal APIC present..
Processor #1 Pentium(tm) Pro APIC version 16.
Floating point unit present..
Machine Exception supported..
64 bit compare & exchange supported..
Internal APIC present..
Bus #0 is ISA .
Bus #1 is PCI .
I/O APIC #2 Version 16 at 0xFEC00000..
Int: type 0, pol 0, trig 0, bus 0, IRQ 00, APIC ID 2, APIC INT 02.
Int: type 0, pol 0, trig 0, bus 0, IRQ 01, APIC ID 2, APIC INT 01.
Int: type 0, pol 0, trig 0, bus 0, IRQ 03, APIC ID 2, APIC INT 03.
Int: type 0, pol 0, trig 0, bus 0, IRQ 04, APIC ID 2, APIC INT 04.
Int: type 0, pol 0, trig 0, bus 0, IRQ 05, APIC ID 2, APIC INT 05.
Int: type 0, pol 0, trig 0, bus 0, IRQ 06, APIC ID 2, APIC INT 06.
Int: type 0, pol 0, trig 0, bus 0, IRQ 07, APIC ID 2, APIC INT 07.
Int: type 0, pol 0, trig 0, bus 0, IRQ 08, APIC ID 2, APIC INT 08.
Int: type 0, pol 0, trig 0, bus 0, IRQ 09, APIC ID 2, APIC INT 09.
Int: type 0, pol 0, trig 0, bus 0, IRQ 0a, APIC ID 2, APIC INT 0a.
Int: type 0, pol 0, trig 0, bus 0, IRQ 0b, APIC ID 2, APIC INT 0b.
Int: type 0, pol 0, trig 0, bus 0, IRQ 0c, APIC ID 2, APIC INT 0c.
Int: type 0, pol 0, trig 0, bus 0, IRQ 0d, APIC ID 2, APIC INT 0d.
Int: type 0, pol 0, trig 0, bus 0, IRQ 0e, APIC ID 2, APIC INT 0e.
Int: type 0, pol 0, trig 0, bus 0, IRQ 0f, APIC ID 2, APIC INT 0f.
Int: type 3, pol 0, trig 0, bus 0, IRQ 00, APIC ID 2, APIC INT 00.
Lint: type 3, pol 0, trig 0, bus 0, IRQ 00, APIC ID ff, APIC LINT 00.
Lint: type 1, pol 0, trig 0, bus 0, IRQ 00, APIC ID ff, APIC LINT 01.
Processors: 2.
mapped APIC to ffffe000 (fee00000).
James: boot_cpu_id being set to 2016 from APIC_ID.
mapped IOAPIC to ffffd000 (fec00000).
Enabling extended fast FPU save and restore ... done..
Enabling KNI unmasked exception support ... done..
Kernel command line: root=/dev/hda1 ide0=reset.
Initializing CPU#0.
Detected 497445265 Hz processor..
Calibrating delay loop... 992.87 BogoMIPS.
Memory: 61980k/64512k available (585k kernel code, 2144k reserved, 69k data, 156k init, 0k highmem).
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes).
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes).
Page-cache hash table entries: 16384 (order: 4, 65536 bytes).
kmem_create: Poisoning requested, but con given - bdev_cache.
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes).
kmem_create: Poisoning requested, but con given - inode_cache.
CPU serial number disabled..
Checking 386/387 coupling... OK, FPU using exception 16 error reporting..
Checking 'hlt' instruction... OK..
POSIX conformance testing by UNIFIX.
mtrr: v1.36 (20000221) Richard Gooch (rgooch(a)atnf.csiro.au).
CPU serial number disabled..
CPU0: Intel Pentium III (Katmai) stepping 03.
per-CPU timeslice cutoff: 0.00 usecs..
Getting VERSION: 40011.
Getting VERSION: 40011.
Getting LVT0: 700.
Getting LVT1: 400.
enabled ExtINT on CPU#0.
ESR value before enabling vector: 00000000.
ESR value after enabling vector: 00000000.
CPU present map: 3.
Booting processor 1/0 eip 2000.
Setting warm reset code and vector..
1..
2..
3..
Asserting INIT..
Waiting for send to finish....
+Deasserting INIT..
Waiting for send to finish....
+#startup loops: 2..
Sending STARTUP #1..
After apic_write..
Startup point 1..
Waiting for send to finish....
+Initializing CPU#1.
Sending STARTUP #2..
After apic_write..
Startup point 1..
CPU#1 (phys ID: 0) waiting for CALLOUT.
Waiting for send to finish....
+After Startup..
Before Callout 1..
After Callout 1..
CALLIN, before setup_local_APIC()..
masked ExtINT on CPU#1.
ESR value before enabling vector: 00000000.
ESR value after enabling vector: 00000000.
Calibrating delay loop... 992.87 BogoMIPS.
Stack at about c116dfbc.
CPU serial number disabled..
OK..
CPU1: Intel Pentium III (Katmai) stepping 03.
CPU has booted..
Before bogomips..
Total of 2 processors activated (1985.74 BogoMIPS)..
Before bogocount - setting activated=1..
Boot done..
ENABLING IO-APIC IRQs.
...changing IO-APIC physical APIC ID to 2 ...
Kernel panic: could not set ID!.
.
In idle task - not syncing.
APIC error interrupt on CPU#0, should never happen..
... APIC ESR0: 00000000.
... APIC ESR1: 00000040.
... bit 6: Received Illegal Vector
-
To unsubscribe: send mail to majordomo(a)freiburg.linux.de
with 'unsubscribe openbios' in the body of the message