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 _______________________________________________ Linux-usb-users@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users