Problem regrading EP405, PCI and IRQ

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi,
    Currently, I am using Embedded Planet's EP405 development board.  I
would like to use a USB device with it, but there is no USB connection on
the EP405 board.  So I connect a PCI to PC104-plus adapter to the EP405,
then connnect a PCI to USB 2.0 card.  But right now the USB driver is
complain about it can't not get a irq.

    I have tried to move the jumper on the adapter to different setting, but
there is no use.  Also, I have changed the register on the EP405 board to
the appropriate setting, like enable local PCI IRQ controller and changed
the PCI  (INTA compliment) to enable.  But it still not working.

    Have anyone does anything similar to this or can give me hint or
pointer?  I am running out of idea.

The following is the info and the bootup log

kernel version : 2.4.23-pre5 download from http://penguinppc.org /
USB 2.0 board is using VIA chipset
the PCI to PC104-plus adapter is Sensoray's Model 328.


PCI: Probing PCI hardware
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch ( snipped-for-privacy@atnf.csiro.au)
devfs: devfs_debug: 0x0
devfs: boot_options: 0x1
i2c-core.o: i2c core module
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI ISAPNP enabled
ttyS00 at 0xef600300 (irq = 0) is a 16550A
ttyS01 at 0xef600400 (irq = 1) is a 16550A
Generic RTC Driver v1.07
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
emac: IBM OCP EMAC Ethernet driver, version 2.0
mal0: Initialized, 2 tx channels, 1 rx channels
eth0: IBM emac, MAC 00:10:ec:00:2f:81
eth0: Found Generic MII PHY (0x00)
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
hcd.c: Found HC with no IRQ.  Check BIOS/PCI 00:0a.2 setup!
host/usb-uhci.c: $Revision: 1.275 $ time 18:49:57 Sep 16 2003
host/usb-uhci.c: High bandwidth mode enabled
host/usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
host/usb-ohci.c: found OHCI device with no IRQ assigned. check BIOS
settings!
host/usb-ohci.c: found OHCI device with no IRQ assigned. check BIOS
settings!
usb.c: registered new driver hiddev
usb.c: registered new driver hid
hid-core.c: USB HID support drivers
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.

The following is the info I got from /proc after it boots up.

PCI devices found:
  Bus  0, device  10, function  0:
    USB Controller: NEC Corporation USB (rev 65).
      Master Capable.  Latency12%8.  Min Gnt=1.Max Lat42%.
      Non-prefetchable 32 bit memory at 0xbffff000 [0xbfffffff].
  Bus  0, device  10, function  1:
    USB Controller: NEC Corporation USB (#2) (rev 65).
      Master Capable.  Latency12%8.  Min Gnt=1.Max Lat42%.
      Non-prefetchable 32 bit memory at 0xbfffe000 [0xbfffefff].
  Bus  0, device  10, function  2:
    USB Controller: NEC Corporation USB 2.0 (rev 2).
      Master Capable.  Latency12%8.  Min Gnt16%.Max Lat34%.
      Non-prefetchable 32 bit memory at 0xbfffdf00 [0xbfffdfff].

and the following is the info I get after I mount the usbfs and look at the
driver file
         usbdevfs
         hub
 96-111: hiddev
         hid
         usb-storage

Thank you very much

Shih-Ying Chou



Re: Problem regrading EP405, PCI and IRQ

Quoted text here. Click to load it

Who does the PCI interrupt routing setup? Your kernel or your firmware?
Maybe your firmware/kernel can't handle interrupt assignment for cards
connected to the pc104plus connector.

If you know which pc104plus interrupt pin is connected to which
interrupt input at you PPC405GP cpu you can do it by your own: Change
the table in your platform specific (arch/ppc/platforms/<___>) function
ppc405_map_irq() -> pci_irq_table[][].
This function is called in my kernel to setup a correct PCI interrupt
routing at kernel startup.

Hope it helps
--
Juergen Beisert        email: jbeisert _AT_ eurodsn _DOT_ de
EuroDesign embedded technologies GmbH  http://www.eurodsn.de

Site Timeline