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@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@freiburg.linux.de with 'unsubscribe openbios' in the body of the message