[coreboot] IOAPIC Initialisation - How much do you have to do ??

Harrison, Jon (SELEX GALILEO, UK) jon.harrison at selexgalileo.com
Fri Jul 24 11:04:29 CEST 2009

Ahh Haa !!

Finally, I have managed to get the IRQs through to the processor.

Proper setup for APIC Serial Bus delivery.

Now I get an smp_error_interrupt during kernel init, with a "received
illegal vector" status.

I'll call this progress though. 

Guessing that either in Serial Bus mode the IRQs should be disabled from
boot (Current VT8237R IOAPIC init emables IRQ 0 from boot, but is in FSB
mode...) until the kernel has time to sort out IRQ vectors or there is
something else missing (perhaps in the MP tables to allow things to get
setup properly ?)


-----Original Message-----
From: Rudolf Marek [mailto:r.marek at assembler.cz] 
Sent: 23 July 2009 17:05
To: Harrison, Jon (SELEX GALILEO, UK)
Cc: coreboot at coreboot.org
Subject: Re: [coreboot] IOAPIC Initialisation - How much do you have to
do ??

                    *** WARNING ***

 This message has originated outside your organisation,
  either from an external partner or the Global Internet. 
      Keep this in mind if you answer this message.

Hash: SHA1


I will leave for a holiday today. Its difficult to answer that without
the patch
 at hand.

The ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
..MP-BIOS bug: 8254 timer not connected to IO-APIC

Means that:

ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)

For some reason this is wrong. You have same line in the orig bios?
If yes there is still smth wrong with APIC. Please check:

Assigned: PCI: 00:10.4 10 *  [0xfebffd00 - 0xfebffdff] mem
Assigned: PCI: 00:10.5 10 *  [0xfebffe00 - 0xfebffeff] mem
Assigned: PCI: 00:12.0 14 *  [0xfebfff00 - 0xfebfffff] mem
PCI_DOMAIN: 0000 allocate_resources_mem: next_base: fec00000 size: 300
align: 8
gran: 0 done

This looks like the mem resources are setup from too high overlaping the
with some hardware. No good. Move all resource bases bellow f0000000.
You will
need to adjust the northbridge.c and put the PCI resource limit to the
above most likely. Others can help here.

Also it seems that you created something in half:

ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 6 7 *10 11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 6 7 10 *11 12)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 6 7 10 11 *12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 6 7 10 *11 12), disabled.
ACPI: PCI Interrupt Link [ATAI] (IRQs *20)
ACPI: PCI Interrupt Link [USBI] (IRQs *21)
ACPI: PCI Interrupt Link [VT8I] (IRQs *22)
ACPI: PCI Interrupt Link [NICI] (IRQs *23)

This means you route half of IRQs through APIC and second half through
the 8259.
Why not route all of them through APIC. Check M2V-MX se board _PRT

INTA# to IRQ16
INTB# to IRQ17
INTC# to IRQ18
INTD# to IRQ19

uhci_hcd 0000:00:10.0: Unlink after no-IRQ?  Controller is probably
using the wrong IRQ.  <<---- Whoops !!

Yes maybe but I think all USBs are routed to IRQ21 so it must be smth
else. Like
the resource conflict I mentioned above. If VT8237R apic is enabled (and
it is)
this is routed like this:

IDE (Native Mode)/SATA IRQ & INTE to IRQ20
USB IRQ (all 5 functions) and INTF to IRQ21
AC'97 / MC'97 IRQ and INTG to IRQ22

So I would recommend to boot now with init=/bin/bash
and provide

cat /proc/iomem
cat /proc/interrupts
lspci -vvvxxx

I'm going to be most likely AFK for a week so hopefully others can try
to help.

Most likely is the resource conflict in game. Also check if the APIC
should be routed by extra bus or as part of FSB messages (there is some
bit for
that on 0xfec000smth) I think FSB routing is fine for VIA CPU too but
not sure.

rest looks OK to me. Please provide the WIP patch next time so one can
see how
you set things up.



Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


SELEX Sensors and Airborne Systems Limited
Registered Office: Sigma House, Christopher Martin Road, Basildon, Essex SS14 3EL
A company registered in England & Wales.  Company no. 02426132
This email and any attachments are confidential to the intended
recipient and may also be privileged. If you are not the intended
recipient please delete it from your system and notify the sender.
You should not copy it or use it for any purpose nor disclose or
distribute its contents to any other person.

More information about the coreboot mailing list