hello,
I'm trying to make vt8237r ioapic work, but kernel cannot boot.
Kernel seems to have problems about 8254 timer: ENABLING IO-APIC IRQs ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=0 pin2=0 ..MP-BIOS bug: 8254 timer not connected to IO-APIC ...trying to set up timer (IRQ0) through the 8259A ... ..... (found pin 0) ... failed. ...trying to set up timer as Virtual Wire IRQ... works. Using local APIC timer interrupts.
And kernel hangs at: scsi0 : pata_via scsi1 : pata_via ata1: PATA max UDMA/133 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x00011ce0 irq 14 ata2: PATA max UDMA/133 cmd 0x00010170 ctl 0x00010376 bmdma 0x00011ce8 irq 15 usb 1-2: configuration #1 chosen from 1 choice input: HID 04d9:0499 as /class/input/input1 input: USB HID v1.10 Mouse [HID 04d9:0499] on usb-0000:00:10.0-2 ata1.00: qc timeout (cmd 0x27) ata1.00: ata_hpa_resize 1: hpa sectors (0) is smaller than sectors (156301488) ata1.00: failed to set xfermode (err_mask=0x40) ata1.00: limiting speed to UDMA/33:PIO3 ata1: failed to recover some devices, retrying in 5 secs ata1.00: qc timeout (cmd 0x27) ata1.00: ata_hpa_resize 1: hpa sectors (0) is smaller than sectors (156301488) ata1.00: failed to set xfermode (err_mask=0x40) ata1.00: disabled ata1: EH pending after completion, repeating EH (cnt=4) ata1: soft resetting port ata1: EH complete Waiting for driver initialization. Loading ata_generic.ko module Trying to resume from /dev/sda7 Unable to access resume device (/dev/sda7) CreKernel panic - not syncing: Attempted to kill init!
I've created floating table in mptable.c and tried both factory bios config table and the one created by mptable in util directory. same result. the kernel parameter I passed is acpi=off apic=debug. local apic should be setup in lapic.c, this is a c7 cpu and CONFIG_IOAPIC is set to1.
so what's left to be setup? thanks.
Hi,
What northbridge it is? I think you need two things:
/* Set APIC to FSB message bus. */
l[0] = 0x3;
val = l[4];
l[4] = (val & 0xFFFFFE) | 1;
(this is in the vt8237r_lpc.c) so If you use this you should be safe.
Second thing you need is to route the APIC messages through chipset correctly. I think this is D0F7/D11F7 0x7c bit 3. In fact you need to have correct values there for the whole 0x70-0x7f range.
Also, it seems you will need some timer overrides:
/* IRQ0 -> APIC IRQ2. */
current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
current, 0, 0, 2, 0x0);
Thanks,
Rudolf
On Sat, Apr 19, 2008 at 5:01 AM, Rudolf Marek r.marek@assembler.cz wrote:
Hi,
What northbridge it is? I think you need two things:
/* Set APIC to FSB message bus. */ l[0] = 0x3; val = l[4]; l[4] = (val & 0xFFFFFE) | 1;
(this is in the vt8237r_lpc.c) so If you use this you should be safe.
Second thing you need is to route the APIC messages through chipset correctly. I think this is D0F7/D11F7 0x7c bit 3. In fact you need to have correct values there for the whole 0x70-0x7f range.
Also, it seems you will need some timer overrides:
/* IRQ0 -> APIC IRQ2. */ current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *) current, 0, 0, 2, 0x0);
Thanks,
Rudolf
The northbridge is CN700. I'll try this on Monday, thanks.