Problem with EP405's PCI
Shih-Ying Chou
sschou at mtu.edu
Sat Oct 18 04:55:01 EST 2003
Thank you for your advise, but I have check that, too. It is normal.
the ppc405_map_irq uses the value from ep405_devtable[], but it is empty if
I did not use CONFIG_EP405PC
the original
static struct {
u8 cpld_xirq_select;
int pci_idsel;
int irq;
} ep405_devtable[] = {
#ifdef CONFIG_EP405PC
{0x07, 0x0E, 25}, /* EP405PC: USB */
#endif
};
So I changed it, so it can take make the PCI work.
static struct {
u8 cpld_xirq_select;
int pci_idsel;
int irq;
} ep405_devtable[] = {
{0x01, 0x0A, 25},
};
which I copy from the Timesys Linux version of the ep405.c
Now it pass 25 as the irq number, but it still does not work.
When I do a cat /proc/interrupts
CPU0
0: 263 IBM UIC Level serial
9: 0 IBM UIC Level OCP EMAC Wakeup
10: 0 IBM UIC Level MAL SERR
11: 915 IBM UIC Level MAL TX EOB
12: 1891 IBM UIC Level MAL RX EOB
13: 0 IBM UIC Level MAL TX DE
14: 0 IBM UIC Level MAL RX DE
15: 0 IBM UIC Level OCP EMAC MAC
25: 0 IBM UIC Level usb-ohci, usb-ohci
BAD: 0
When I do a cat /proc/pci
PCI devices found:
Bus 0, device 10, function 0:
USB Controller: NEC Corporation USB (rev 65).
IRQ 25
Master Capable. Latency=128. Min Gnt=1.Max Lat=42.
Non-prefetchable 32 bit memory at 0xbffff000 [0xbfffffff].
Bus 0, device 10, function 1:
USB Controller: NEC Corporation USB (#2) (rev 65).
IRQ 25
Master Capable. Latency=128. Min Gnt=1.Max Lat=42.
Non-prefetchable 32 bit memory at 0xbfffe000 [0xbfffefff].
Bus 0, device 10, function 2:
USB Controller: NEC Corporation USB 2.0 (rev 2).
IRQ 25
Master Capable. Latency=128. Min Gnt=16.Max Lat=34.
Non-prefetchable 32 bit memory at 0xbfffdf00 [0xbfffdfff].
When I plug in a device into the USB card, it will complain about can't
accept the address which indicate that the interrupt is not set correctly on
the PCI side. Am I right about this?
Thank you
Shih-Ying Chou
----- Original Message -----
From: "Steven Blakeslee" <BlakesleeS at embeddedplanet.com>
To: "'Shih-Ying Chou'" <sschou at mtu.edu>
Sent: Friday, October 17, 2003 12:13 PM
Subject: RE: Problem with EP405's PCI
> check to see if the function ppc405_map_irq in ep405.c ever returns a -1.
> If that happens you may not have the correct value for the device ID in
the
> ep405_devtable.
>
> -----Original Message-----
> From: Shih-Ying Chou [mailto:sschou at mtu.edu]
> Sent: Friday, October 17, 2003 11:57 AM
> To: Jacky Lam
> Cc: linuxppc-embedded at lists.linuxppc.org
> Subject: Re: Problem with EP405's PCI
>
>
>
> Thank you very much for your input. I have read the previous post but it
is
> not very useful to me.
> Because I am not using u-boot as my bootloader, since u-boot does not
> support EP405 board.
> I am using the Planet Core from Embedded Planet which does not do any
> initialization on the PCI.
>
> Does anyone have any other idea?
>
> Thanks in advance
>
> Shih-Ying Chou
>
> ----- Original Message -----
> From: "Jacky Lam" <jackylam at astri.org>
> To: <linuxppc-embedded at lists.linuxppc.org>
> Sent: Friday, October 17, 2003 1:56 AM
> Subject: Re: Problem with EP405's PCI
>
>
> >
> > Please see my previous post and the reply from xzuo at vinesystech.com
.
> > Hope it can help.
> >
> > Jacky
> > ----- Original Message -----
> > From: "Shih-Ying Chou" <sschou at mtu.edu>
> > To: <linuxppc-embedded at lists.linuxppc.org>
> > Sent: Friday, October 17, 2003 12:58 PM
> > Subject: Problem with EP405's PCI
> >
> >
> > >
> > > Hi All,
> > > Have anyone successfully made the EP405's PCI (through PC/104
plus)
> > > work? If anyone does, please help me, I have struggle with it for
over
> a
> > > month now.
> > > Right now I am using the linuxppc_2_4_devel kernel, and I can get
> the
> > > EP405 to boot successfully. But I can get the PCI interface to work
> > right.
> > > When booting up, the kernel can recognize the card weither USB or
Sound
> > > card, but it can seem to assign the right irq to the card. Because
USB
> > card
> > > always complain about no IRQ assign and ask to check BIOS.
> > > I have look at the ep405.c and ppc405_pci.c and ppc4xx_pic.c
files,
> > but
> > > I cannot find out what is wrong. I know that I need to modify the
> > > ppc405_devtable [] in the ep405.c file. I also check the registers
such
> as
> > > DCRN_UIC_PR, DCRN_UIC_TR, and DCRN_UIC_SR and all the value seems to
be
> > > correct, except DCRN_UIC_PR. In the ep405.c DCRN_UIC_PR is set to be
> > > 0xffffff80 which makes the PCI interrupt to be high, so as the User
> manual
> > > stated. But isn't PCI's interrupt should be active low?
> > >
> > > Any pointer will be helpful, thank you in advance!
> > >
> > > Shih-Ying Chou
> > >
> > >
> >
> >
> >
>
>
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list