I'm attempting to port the 2.6.9 example driver from Philips to 2.6.14 and have
run up against HALT condition when attempting to register the internal hub.
I have found one PXA example for 2.6.17 and have adopted the
platform_driver/device framework. I have found one reference to ISP116x which
has some info on platform-specific things to watch out for but I've run out of
ideas and wanted to pick the brains of linux-usb-users.
Configuration:
- MPC8548 connected via Local Bus to ISP1761
- Port Mode 3 (P1:PDC P2 & 3: HC) (no OTG support)
- Driver functionality hasn't changed: polled on SOF interrupt then attempts
submitting QTDs one at a time.
Success so far:
- have Host Controller registered & configured
- root hub is configured
- internal hub is detected
Problems:
- not sure if nsec delay is 'required' for back-to-back reg/memory acces to teh
ISP1761 - the ISP116x seems to require 150-300ns. The spec sheet on the
ISP1761 suggests 90ns. I seem to only need delays when reading from
0x400-0xFFFF memory space. I have inserted delays but it seems to make no
difference. I believe there is no delays being introduced via the LBC/Memory
Controller.
- Trying either 'old' or 'new' mode in port_init in USB Core the ISP1761 halts
on first QTD (of 3) on the first message sent to the internal hub.
For old behaviour, it is sending a SET_ADDRESS request. This halts. For new,
it is first sending out a request. This halts.
When it halts, there is no Xerr or Babble set. As far as I can determine this
may happen if the device (internal hub) doesn't like the command.
Here are the two respective commands it halts on... I believe they are present
in Shared Mem for the ISP1761 and valid USB2.0 control messages... (big endian
display)...
USB_REQ_GET_DESCRIPTOR - 0x80060001 0x00004000
USB_REQ_SET_ADDRESS - 0x00050200 0x00000000
a) Does anyone know why the internal hub would be refusing these messages...
and stalling?
b) Does anyone believe this is related to changes between 2.6.9 and 2.6.14?
c) Does anyone have any recommendations on where to start checking from a
platform-specific configuration perspective?
d) Does anyone know of a PPC implementation on any version of linux 2.6.9 or
newer?
e) Can you attached a USB Bus Analyser to the external ports of the hub and see
USB Bus activity of the Internal Hub to Host Controller?
Thanks!
Mike.
NEW style Device discovery:
-----------------------------------------------------------------------------
usb 1-1: New high speed USB device (0xc247b800) using "ISP1761" driver has been
given device-address 2 on USB Bus (retry_counter: 0)
drivers/usb/core/hub.c: [0/3] usb_ctrl_msg to dev(0xc247b800) to find MaxPktSize
(usb_control_msg) Usb Control Request... value:256 index:0 size:64
Dir: 0 Recp: 0 ReqType: USB_TYPE_STANDARD USB_RECIP_DEVICE
USB_REQ_GET_DESCRIPTOR
- req:0x00000006 le:wValue:0x00000001 le:wIndex:0x00000000
le:wLength:0x00004000
PEHCI_CHECK: qtd at mapLoc: 1 is being scheduled c2477a80, device 2,map 1
pehci_hcd_dump_qha : (pehci_hcd_schedule_pending_ptds) ---------------------
td_info1 (DW0):0x21000041
V: 1 NrBytesToTrans : 00000008 MaxPacketLength: 00000064 Multi: 1
td_info2 (DW1):0x00000000
Split: 0000 TransType :0000 Token :0000 DevAddr:0000 EP:0000
td_info3 (DW2):0x1e018000
RL : 15
Data Start Addr: 0x00000180 (0x00001000)
td_info4 (DW3):0x82780000
Active :0001 Halt :0000 Babble :0000 XactErr:0000
DToggle:0001 Cerr :0000 NakCnt :0015 NrB Tx :0000
----------------------------------
ISP1761 Register Dump...
- HC_CHIP_ID_REG (0x0304) : 0x00011761 (=0x00011761)
- HC_HW_MODE_REG (0x0300) : 0x00000107
- HC_USBCMD_REG (0x0020) : 0x00000001
- HC_USBSTS_REG (0x0024) : 0x00000004
- HC_CONFIGFLAG_REG (0x0060) : 0x00000001
- HC_PORTSC1_REG (0x0064) : 0x00001005
- HC_INTERRUPT_REG_EHCI (0x0028) : 0x00000000
- HC_FRINDEX_REG (0x002c) : 0x00001fd7
- HC_INTERRUPT_REG (0x0310) : 0x00000053
- HC_INTENABLE_REG (0x0314) : 0x00000002
- HC_DMACONFIG_REG (0x0330) : 0x00000000
- HC_TRANS_COUNT_REG (0x0334) : 0x00000000
- HC_BUFFER_STAT_REG (0x0338) : 0x00000000
- HC_MEM_READ_REG (0x033c) : 0x00000000
- OTG_CTRL_REG (0x0374) : 0x04800480
----------------------------------
Dumping ISP1761 Shared Memory Region from 0x00000ff0 for 64 bytes (BE
format)...
0x00000ff0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00001000: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001010: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001020: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
dev(0xc0359c80) - Writing QHA Header(0xc0c416c0) to ISP1761 0xc00...
Dumping ISP1761 Shared Memory Region from 0x00000bf0 for 64 bytes (BE
format)...
0x00000bf0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00000c00: 0x21000041 0x00000000 0x1e018000 0x82780000
0x00000c10: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000c20: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
Dumping ISP1761 Shared Memory Region from 0x00000ff0 for 64 bytes (BE
format)...
0x00000ff0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00001000: 0x80060001 0x00004000 0x00000000 0x00000000
0x00001010: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001020: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
PEHCI_CHECK: QTD read from ISP1761 @ 0x00000c00
Pending map: 0x00000000, donemap 0x00000001, tempskipmap 0x00000000
PEHCI_CHECK: skip:0xffffffff done:0x00000001 maps updated
drivers/usb/pehcd/host/pehci.c: PEHCI (ISP1761: ptdstatus:42780000 -
PTD_STATUS_HALTED - locIdx:2
PEHCI_CHECK: protocol error
QHA (PTD Hdr Dump) after error-status check (0x00000c00)...
pehci_hcd_dump_qha : (pehci_hcd_atl_worker) ---------------------
td_info1 (DW0):0x21000040
V: 0 NrBytesToTrans : 00000008 MaxPacketLength: 00000064 Multi: 1
td_info2 (DW1):0x00000000
Split: 0000 TransType :0000 Token :0000 DevAddr:0000 EP:0000
td_info3 (DW2):0x1e018000
RL : 15
Data Start Addr: 0x00000180 (0x00001000)
td_info4 (DW3):0x42780000
Active :0000 Halt :0001 Babble :0000 XactErr:0000
DToggle:0001 Cerr :0000 NakCnt :0015 NrB Tx :0000
----------------------------------
ISP1761 Register Dump...
- HC_CHIP_ID_REG (0x0304) : 0x00011761 (=0x00011761)
- HC_HW_MODE_REG (0x0300) : 0x00000107
- HC_USBCMD_REG (0x0020) : 0x00000001
- HC_USBSTS_REG (0x0024) : 0x0000000c
- HC_CONFIGFLAG_REG (0x0060) : 0x00000001
- HC_PORTSC1_REG (0x0064) : 0x00001005
- HC_INTERRUPT_REG_EHCI (0x0028) : 0x00000000
- HC_FRINDEX_REG (0x002c) : 0x000027f9
- HC_INTERRUPT_REG (0x0310) : 0x00000153
- HC_INTENABLE_REG (0x0314) : 0x00000002
- HC_DMACONFIG_REG (0x0330) : 0x00000000
- HC_TRANS_COUNT_REG (0x0334) : 0x00000001
- HC_BUFFER_STAT_REG (0x0338) : 0x00000000
- HC_MEM_READ_REG (0x033c) : 0x00000c00
- OTG_CTRL_REG (0x0374) : 0x04800480
----------------------------------
Dumping ISP1761 Shared Memory Region from 0x00000ff0 for 64 bytes (BE
format)...
0x00000ff0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00001000: 0x80060001 0x00004000 0x00000000 0x00000000
0x00001010: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001020: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
complete the td , length: 8
OLD style Device discovery:
-----------------------------------------------------------------------------
usb 1-1: New high speed USB device (0xc247b800) using "ISP1761" driver has been
given device-address 2 on USB Bus (retry_counter: 0)
(usb_control_msg) Usb Control Request... value:2 index:0 size:0
Dir: 0 Recp: 0 ReqType: USB_TYPE_STANDARD USB_RECIP_DEVICE USB_REQ_SET_ADDRESS
- req:0x00000005 le:wValue:0x00000200 le:wIndex:0x00000000
le:wLength:0x00000000
PEHCI_CHECK: qtd at mapLoc: 1 is being scheduled c2477a80, device 2,map 1
pehci_hcd_dump_qha : (pehci_hcd_schedule_pending_ptds) ---------------------
td_info1 (DW0):0x21000041
V: 1 NrBytesToTrans : 00000008 MaxPacketLength: 00000064 Multi: 1
td_info2 (DW1):0x00000000
Split: 0000 TransType :0000 Token :0000 DevAddr:0000 EP:0000
td_info3 (DW2):0x1e018000
RL : 15
Data Start Addr: 0x00000180 (0x00001000)
td_info4 (DW3):0x82780000
Active :0001 Halt :0000 Babble :0000 XactErr:0000
DToggle:0001 Cerr :0000 NakCnt :0015 NrB Tx :0000
----------------------------------
ISP1761 Register Dump...
- HC_CHIP_ID_REG (0x0304) : 0x00011761 (=0x00011761)
- HC_HW_MODE_REG (0x0300) : 0x00000107
- HC_USBCMD_REG (0x0020) : 0x00000001
- HC_USBSTS_REG (0x0024) : 0x00000004
- HC_CONFIGFLAG_REG (0x0060) : 0x00000001
- HC_PORTSC1_REG (0x0064) : 0x00001005
- HC_INTERRUPT_REG_EHCI (0x0028) : 0x00000000
- HC_FRINDEX_REG (0x002c) : 0x00001f97
- HC_INTERRUPT_REG (0x0310) : 0x00000053
- HC_INTENABLE_REG (0x0314) : 0x00000002
- HC_DMACONFIG_REG (0x0330) : 0x00000000
- HC_TRANS_COUNT_REG (0x0334) : 0x00000000
- HC_BUFFER_STAT_REG (0x0338) : 0x00000000
- HC_MEM_READ_REG (0x033c) : 0x00000000
- OTG_CTRL_REG (0x0374) : 0x04800480
----------------------------------
Dumping ISP1761 Shared Memory Region from 0x00000ff0 for 64 bytes (BE
format)...
0x00000ff0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00001000: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001010: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001020: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
dev(0xc0359c80) - Writing QHA Header(0xc0c41690) to ISP1761 0xc00...
Dumping ISP1761 Shared Memory Region from 0x00000bf0 for 64 bytes (BE
format)...
0x00000bf0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00000c00: 0x21000041 0x00000000 0x1e018000 0x82780000
0x00000c10: 0x00000000 0x00000000 0x00000000 0x00000000
0x00000c20: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
Dumping ISP1761 Shared Memory Region from 0x00000ff0 for 64 bytes (BE
format)...
0x00000ff0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00001000: 0x00050200 0x00000000 0x00000000 0x00000000
0x00001010: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001020: 0x00000000 0x00000000 0x00000000 0x00000000
----------------------------------
PEHCI_CHECK: QTD read from ISP1761 @ 0x00000c00
Pending map: 0x00000000, donemap 0x00000001, tempskipmap 0x00000000
PEHCI_CHECK: skip:0xffffffff done:0x00000001 maps updated
drivers/usb/pehcd/host/pehci.c: PEHCI (ISP1761: ptdstatus:42780000 -
PTD_STATUS_HALTED - locIdx:2
PEHCI_CHECK: protocol error
QHA (PTD Hdr Dump) after error-status check (0x00000c00)...
pehci_hcd_dump_qha : (pehci_hcd_atl_worker) ---------------------
td_info1 (DW0):0x21000040
V: 0 NrBytesToTrans : 00000008 MaxPacketLength: 00000064 Multi: 1
td_info2 (DW1):0x00000000
Split: 0000 TransType :0000 Token :0000 DevAddr:0000 EP:0000
td_info3 (DW2):0x1e018000
RL : 15
Data Start Addr: 0x00000180 (0x00001000)
td_info4 (DW3):0x42780000
Active :0000 Halt :0001 Babble :0000 XactErr:0000
DToggle:0001 Cerr :0000 NakCnt :0015 NrB Tx :0000
----------------------------------
ISP1761 Register Dump...
- HC_CHIP_ID_REG (0x0304) : 0x00011761 (=0x00011761)
- HC_HW_MODE_REG (0x0300) : 0x00000107
- HC_USBCMD_REG (0x0020) : 0x00000001
- HC_USBSTS_REG (0x0024) : 0x0000000c
- HC_CONFIGFLAG_REG (0x0060) : 0x00000001
- HC_PORTSC1_REG (0x0064) : 0x00001005
- HC_INTERRUPT_REG_EHCI (0x0028) : 0x00000000
- HC_FRINDEX_REG (0x002c) : 0x000027b9
- HC_INTERRUPT_REG (0x0310) : 0x00000153
- HC_INTENABLE_REG (0x0314) : 0x00000002
- HC_DMACONFIG_REG (0x0330) : 0x00000000
- HC_TRANS_COUNT_REG (0x0334) : 0x00000001
- HC_BUFFER_STAT_REG (0x0338) : 0x00000000
- HC_MEM_READ_REG (0x033c) : 0x00000c00
- OTG_CTRL_REG (0x0374) : 0x04800480
----------------------------------
Dumping ISP1761 Shared Memory Region from 0x00000ff0 for 64 bytes (BE
format)...
0x00000ff0: 0x00000000 0x00000000 0x00000000 0x00000000
->0x00001000: 0x00050200 0x00000000 0x00000000 0x00000000
0x00001010: 0x00000000 0x00000000 0x00000000 0x00000000
0x00001020: 0x00000000 0x00000000 0x00000000 0x00000000
____________________________________________________________________________________
8:00? 8:25? 8:40? Find a flick in no time
with the Yahoo! Search movie showtime shortcut.
http://tools.search.yahoo.com/shortcuts/#news
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users