I have a Phillips ISP1561 USB 2.0 Host Controller on an IXP425 (Intel XScale/ARM) based board. When the SEL2PORTS signal is inactive/low all 4 ports work as USB 1.1 ports however only ports 1 & 2 work as USB 2.0 ports. (When SEL2PORTS is active/high ports 3 & 4 of course don't function at all and aren't detected.)
Attached is part of the kernel log of initialization and insertion of a USB 2.0 device and the output of lspci -vv -xxx.
The bootloader (RedBoot) does no setup of the controller so perhaps it's missing some configuration?
The board has no EEPROM for loading configuration data either but there appears to be only vendor ID etc. in it anyway so that doesn't appear to be the problem.
Kernel is 2.4.21-rmk1-ds3 with the following changesets from the linux-usb BK tree applied: 1.1005, 1.1051, 1.1095.1.1, 1.1104, 1.1110, 1.1175 (i.e., all the EHCI related ones since 2.4.21 -- I think.)
David Vrabel -- David Vrabel, Design Engineer
Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/
usb.c: registered new driver usbdevfs usb.c: registered new driver hub ehci_hcd 00:01.2: PCI device 1131:1562 (Philips Semiconductors) ehci_hcd 00:01.2: irq 6, pci mem 4bffdf00 usb.c: new USB bus registered, assigned bus number 1 ehci_hcd 00:01.2: ehci_start hcs_params 0x2214 dbg=0 cc=2 pcc=2 ordered ports=4 ehci_hcd 00:01.2: ehci_start hcc_params 0012 thresh 1 uframes 256/512/1024 ehci_hcd 00:01.2: reset command 080002 (park)=0 ithresh=8 period=1024 Reset HALT PCI: 00:01.2 PCI cache line size set incorrectly (0 bytes) by BIOS/FW. PCI: 00:01.2 PCI cache line size corrected to 32. ehci_hcd 00:01.2: init command 010009 (park)=0 ithresh=1 period=256 RUN ehci_hcd 00:01.2: USB 2.0 enabled, EHCI 0.95, driver 2003-Jun-19/2.4 hcd.c: 00:01.2 root hub device address 1 usb.c: kmalloc IF c03aef60, numif 1 usb.c: new device strings: Mfr=3, Product=2, SerialNumber=1 usb.c: USB device number 1 default language ID 0x0 Manufacturer: Product: SerialNumber: hub.c: USB hub found hub.c: 4 ports detected hub.c: standalone hub hub.c: individual port power switching hub.c: individual port over-current protection hub.c: Single TT hub.c: TT requires at most 8 FS bit times hub.c: Port indicators are not supported hub.c: power on to power good time: 0ms hub.c: hub controller current requirement: 0mA hub.c: port removable status: RRRR hub.c: local power source is good hub.c: no over-current condition exists hub.c: enabling power on all ports usb.c: hub driver claimed interface c03aef60 usb.c: kusbd: /sbin/hotplug add 1 hub.c: port 1, portstatus 100, change 0, 12 Mb/s hub.c: port 2, portstatus 100, change 0, 12 Mb/s ehci_hcd 00:01.2: GetStatus port 3 status 001803 POWER sig=j CSC CONNECT hub.c: port 3, portstatus 501, change 1, 480 Mb/s hub.c: port 3 connection change hub.c: port 3, portstatus 501, change 1, 480 Mb/s hub.c: port 3, portstatus 501, change 0, 480 Mb/s hub.c: port 3, portstatus 501, change 0, 480 Mb/s hub.c: port 3, portstatus 501, change 0, 480 Mb/s hub.c: port 3, portstatus 501, change 0, 480 Mb/s hub.c: port 3, portstatus 511, change 0, 480 Mb/s hub.c: port 3 of hub 1 not reset yet, waiting 10ms hub.c: port 3, portstatus 511, change 0, 480 Mb/s hub.c: port 3 of hub 1 not reset yet, waiting 10ms ehci_hcd 00:01.2: port 3 full speed --> companion ehci_hcd 00:01.2: GetStatus port 3 status 003801 POWER OWNER sig=j CONNECT hub.c: port 3, portstatus 0, change 10, 12 Mb/s ehci_hcd 00:01.2: free_config devnum 0 hub.c: port 4, portstatus 100, change 0, 12 Mb/s
00:01.2 USB Controller: Philips Semiconductors USB 2.0 Host Controller (rev 30) (prog-if 20 [EHCI]) Subsystem: Philips Semiconductors USB 2.0 Host Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr+ Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 128 (500ns min, 4000ns max), Cache Line Size: 0x08 (32 bytes) Interrupt: pin A routed to IRQ 6 Region 0: Memory at 4bffdf00 (32-bit, non-prefetchable) [size=256] Capabilities: [dc] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=220mA PME(D0+,D1+,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00: 31 11 62 15 57 01 10 02 30 20 03 0c 08 80 80 00 10: 00 df ff 4b 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 31 11 62 15 30: 00 00 00 00 dc 00 00 00 00 00 00 00 06 01 02 10 40: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 20 20 07 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 7f e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00