AmigaOne PPC Linux: Problems with Interrupts

Gerhard Pircher gerhard_pircher at gmx.net
Wed Feb 22 06:07:10 EST 2006


Hi,

I encountered some problems with Linux PPC on the AmigaOne. As you can see
in the /proc/interrupts output below, the AmigaOne has a i8259 PIC (no
OpenPIC). The first problem is, that the interrupts 7 and 10 are shown as
"Edge" triggered, but they're set to "Level" in the u-boot (firmware)
preferences. I'm not sure, if u-boot setups the interrupts, therefore I
added this code to the platform PCI initialisation code (copied from
prep_pci.c):

void __init
amigaone_pcibios_fixup(void)
{
	/* IRQ 7 is level triggered. */
	unsigned char irq_edge_mask_lo = 0x80;
	/* IRQ, 9, 10, 11 is level triggered. */
	unsigned char irq_edge_mask_hi = 0x07;

	outb(inb(0x04d0)|irq_edge_mask_lo, 0x4d0);	/* primary 8259 */
	outb(inb(0x04d1)|irq_edge_mask_hi, 0x4d1);	/* cascaded 8259 */
}

Unortunately this didn't help and the interrupts seem to be still "edge"
triggered.

/proc/interrupts:
           CPU0
  1:        189   i8259     Edge      i8042
  2:          0   i8259     Edge      82c59 secondary cascade
  5:          0   i8259     Edge      uhci_hcd, uhci_hcd
  7:        546   i8259     Edge      eth0
 10:          0   i8259     Edge      EMU10K1
 12:       8217   i8259     Edge      i8042
 14:      19597   i8259     Edge      ide0
 15:      18951   i8259     Edge      ide1
BAD:          2

The other issue are the 2 BAD interrupts shown above. Does this have to do
something with the "edge" or "level" triggered mode or is it a interrupt
routing problem?

Thanks!

Gerhard

Other infos:

/proc/ioports
00000000-00bfffff : PCI host bridge
  00000000-0000001f : dma1
  00000020-00000021 : 8259 (master)
  00000040-0000005f : timer
  00000060-0000006f : i8042
  00000080-0000008f : dma page reg
  000000a0-000000a1 : 8259 (slave)
  000000c0-000000df : dma2
  00000170-00000177 : ide1
  000001f0-000001f7 : ide0
  00000278-0000027a : parport2
  000002f8-000002ff : serial
  00000376-00000376 : ide1
  00000378-0000037a : parport0
  000003bc-000003be : parport1
  000003c0-000003df : vga+
  000003e8-000003ef : serial
  000003f6-000003f6 : ide0
  000003f8-000003ff : serial
  000004d0-000004d1 : 8259 edge control
  00002000-00002fff : PCI Bus #01
    00002000-000020ff : 0000:01:00.0
  0000cc00-0000cc0f : 0000:00:07.1
    0000cc00-0000cc07 : ide0
    0000cc08-0000cc0f : ide1
  00802000-0080207f : 0000:00:06.0
    00802000-0080207f : 0000:00:06.0
  00802080-0080209f : 0000:00:07.2
    00802080-0080209f : uhci_hcd
  008020a0-008020bf : 0000:00:07.3
    008020a0-008020bf : uhci_hcd
  00802100-008021ff : 0000:00:07.5
  00802200-00802203 : 0000:00:07.5
  00802204-00802207 : 0000:00:07.5
  00802300-008023ff : 0000:00:07.6
  00802400-0080241f : 0000:00:09.0
    00802400-0080241f : EMU10K1
  00802420-00802427 : 0000:00:09.1
    00802420-00802427 : emu10k1-gp

-- 
10 GB Mailbox, 100 FreeSMS/Monat http://www.gmx.net/de/go/topmail
+++ GMX - die erste Adresse für Mail, Message, More +++



More information about the Linuxppc-dev mailing list