Subject: Re: PPC405EP Custom Board. Question for PCI init.

From: Stefan Roese <[email-masked]>
Date: Fri, 9 Mar 2007 09:49:29 +0100

On Thursday 08 March 2007 17:08, powerpc440 wrote:
> /* Some IRQs unique to the board
>  * Used by the generic 405 PCI setup functions in ppc4xx_pci.c
>  */
> int __init
> ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin)
> {
>     static char pci_irq_table[][4] =
>         /*
>          *      PCI IDSEL/INTPIN->INTLINE
>          *      A       B       C       D
>          */
>     {
>         /*{25, 26, 27, 28},    *//* IDSEL 1 - PCI slot 1 */
>         /*{26, 27, 28, 25},    *//* IDSEL 2 - PCI slot 2 */
>     };
>
>     const long min_idsel = 6, max_idsel = 7, irqs_per_slot = 4;
>     return PCI_IRQ_TABLE_LOOKUP;
> };
>
> My question is what exactly means these values {25, 26, 27, 28},

Those are the interrupt numbers. Please take a look at the 405EP users manual 
and read the description of the UIC and it's external interrupts. In your 
board design you most likely have connected the PCI interrupts to some 
external PPC interrupts, right? This configuration is totally board 
dependant. And please don't forget to configure the external interrupts 
correctly (level, edge...).

> and how 
> I can determinate and complete the correct config for my board.
> The PCI slot IDSEL pin is connected to PCI_AD11 (CPU);
> SATA IDSEL - to PCI_AD12;
> USB IDSEL - to PCI_AD13

Since I can't remember how to "calculate" the idsel number from the connected 
AD signal, I'm just adding a printk() in this function to point the idsel 
number here.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================