Myles Watson napsal(a):
On Mon, Mar 16, 2009 at 1:23 PM, Rudolf Marek <[email protected]> wrote:
Hi,

All of the other interrupts from 0x0-0xf are set as Edge triggered in
the mptable, so that seems likely.
Fine. Second reason might be that the ExtInt pin is wrong for the APIC. I
mean it is set wrongly. To which pin sets the original BIOS the ExtInt IRQ?

Do I need to decode the mptable to know that?  Is there a utility to
do that?  I've gotten as far as "ISA is bus 86", but I'm struggling to
find ExtINT in there.  I don't see anything that matches what I
expect.


It should be the interrupt type 3 maybe you can dump the table somewhere?

mp_ExtINT Looking into the mptable for yhe 2895 seems that extint is not pin0 but pin2!

Maybe you can change the code here:

--- ck804_lpc.c (revision 3613)
+++ ck804_lpc.c (working copy)
@@ -43,9 +43,9 @@
 #define INT            (1 << 8)
        /* IO-APIC virtual wire mode configuration */
        /* mask, trigger, polarity, destination, delivery, vector */
-       {   0, ENABLED | TRIGGER_EDGE | POLARITY_HIGH | PHYSICAL_DEST | ExtINT, 
NONE},
+       {   0, DISABLED, NONE},
        {   1, DISABLED, NONE},
-       {   2, DISABLED, NONE},
+       {   2, ENABLED | TRIGGER_EDGE | POLARITY_HIGH | PHYSICAL_DEST | ExtINT, 
NONE},
        {   3, DISABLED, NONE},
        {   4, DISABLED, NONE},
        {   5, DISABLED, NONE},


04d0: 20 0c

IRQ 7, IRQ a, IRQ b are edge?

Nope IRQ5 and IRQ10 and IRQ11 are edge.

But I think that linux trusts more the APIC conf and not the MPTable so, after you fix it it may actually start to work.

Rudolf



--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to