Hi Rakesh,

> Hi Subash,
>
> I am using ARC HS-OTG Core with ULPI Interface. Hope the ARC PHY u are
> referring to is this ULPI interface.
That means you do have ULPI tranceiver chip, that actually provides USB
PHY interface. BTW, it's not ARC PHY here.

> My kernel is 2.6.16-11, the thing is that in device controller mode ,
> we are receiving interrupts.
>
> Can u provide some information on the following:-
> 1) What is the device u have used to plug in to the ARC. Since the ARC
> HS Core is OTG in our case, we cannot connect a device with power
> requirements of more that 8mA, and it should be self powered also.
>
I don't get your question! Are you asking, which device I plugged in to
the USB port?

> 2) We have in our docs , only one to reset , that is the ARC
> Controller Core. If the controller u used has an ULPI interface, can u
> tell me how did u reset the PHY.
>
I think you need to reset ULPI tranceiver chip. Check your ULPI tranceiver
chip data sheet to make sure whether you need to reset. (usually in pin
diagram, look for external reset pin). If there is reset pin, then there
should be a some GPIO pin from your main board that drives the ULPI reset
pin.

One more thing, see pins that connect your main board & ULPI chip are
configured correctly. I mean, in some cases those pins are dual-role pins
so you need to configure them for USB operation.

Most of the stuff is platform specific, so I can't say where the problem is.

> 3) The thing is the root hub is getting recognized correctly, that
> means the controller has been properly initialised is what i think.
> Correct me if i am wrong.

See cat /proc/interrupts to make sure you are getting interrupts in normal
device mode. Also post cat /proc/bus/usb/devices before & after plugging
in a device into USB port.

>
> Please help me with ur comments, since u have already worked on this.
>
> Thanks
> Rak

             Subhash

PS: cc'ing to linux-usb-devel@lists.sourceforge.net, so that other
developers can correct us when we go wrong.

>
>
> On 5/19/06, Subhash Reddy Peddamallu <[EMAIL PROTECTED]> wrote:
>> > Hi all,
>> > We are testing EHCI driver for ARC based controller core on a ARM 926
>> > board.
>> > The platform glue has been written. The driver is compiled to the
>> > kernel . When the kernel boots up , the driver is loaded.
>> >
>> I used the similar setup, ARC EHCI core with ARM borad. I implemented
>> bus
>> glue, but in 2.4, its working fine.
>>
>> > We have enabled USB_DEBUG and then going through the prints, its is
>> > observed that the
>> > root hub has been identified and given the address 1.
>>
>> Are you sure EHCI controller started correctly? Check cat
>> /proc/bus/usb/devices if you have usbfs.
>>
>> > But when we plug a High Speed device , the IRQ function is not even
>> > invoked,
>> > the STS register and PCD bit in PORTSCx is not showing any change.
>> >
>> See cat /proc/interrupts to make sure you really getting interrupts, i.e
>> see before plugging any device & after plugging a device.
>>
>> > Those who have worked with ARC USB HS-OTG controllers, have u come
>> > across these problems,  if yes, please help us.
>>
>> I faced the similar problem- with this setup (i.e ARC core on ARM
>> board),
>> at init time you may need to reset USB PHY, probably through GPIO pin or
>> ?? This is just my guess, in my case I forgot to do this & it took hours
>> to figure out this. Check with your data sheet & make sure you are not
>> seeing this problem. I have no other ideas for what might be causing the
>> problem, if you can post your bus glue code.
>>
>> > I am attaching the log of trace i did.
>>
>> It's really difficult to understand this log with your printk's, better
>> if
>> you takeout your own printk's & its enough to have USB_DEBUG enabled.
>>
>> >
>> > Thanks
>> > Rak
>> >
>>
>> Hope this helps!
>>
>>              Subhash
>>
>> >
>> >  Function register_root_hub is called ,root hub device address = 1
>> >  issuing get_descriptor in register_root_hub
>> >  Function usb_get_device_descriptor called
>> >  Function usb_get_descriptor called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 100, wIndex = 0, wLength = 12
>> > Issued usb_control_msg request. result = 18
>> >  Function usb_get_descriptor Returned
>> >  leaving function usb_get_device_descriptor
>> >  Length of received desc is 0x12
>> > 12
>> > 1
>> > 0
>> > 2
>> > 9
>> > 0
>> > 1
>> > 40
>> > 0
>> > 0
>> > 0
>> > 0
>> > 6
>> > 2
>> > 3
>> > 2
>> > 1
>> > 1
>> >  Function usb_new_device called
>> >  Function usb_get_configuration called for root-hub
>> >  No of configurations for root-hub = 1
>> >  Function usb_get_descriptor called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 200, wIndex = 0, wLength = 9
>> > Issued usb_control_msg request. result = 9
>> >  Function usb_get_descriptor Returned
>> >  Function usb_get_descriptor called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 200, wIndex = 0, wLength = 19
>> > Issued usb_control_msg request. result = 25
>> >  Function usb_get_descriptor Returned
>> >  Returned from function usb_get_configuration
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 300, wIndex = 0, wLength = ff
>> > usb usb1: default language 0x0409
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 302, wIndex = 409, wLength = ff
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 303, wIndex = 409, wLength = ff
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8006, wValue = 301, wIndex = 409, wLength = ff
>> > usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1
>> > usb usb1: Product: EHCI Host Controller
>> > usb usb1: Manufacturer: Linux 2.6.16.11 ehci_hcd
>> > usb usb1: SerialNumber: sb3000cs
>> >  function choose_configuration is called
>> >  Function usb_get_status called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8000, wValue = 0, wIndex = 0, wLength = 2
>> > usb usb1: device is self-powered
>> > usb usb1: configuration #1 chosen from 1 choice
>> >  function usb_set_configuration is called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 9, wValue = 1, wIndex = 0, wLength = 0
>> > usb usb1: adding 1-0:1.0 (config #1, interface 0)
>> > hub 1-0:1.0: usb_probe_interface
>> > hub 1-0:1.0: usb_probe_interface - got id
>> >  Function hub_probe called
>> > hub 1-0:1.0: USB hub found
>> >  Function hub_configure called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = a006, wValue = 2900, wIndex = 0, wLength = d
>> >  function ehci_hub_control called: typeReq a006, wValue 2900, wIndex
>> > 0, wLength d
>> >  Function ehci_hub_descriptor called
>> > hub 1-0:1.0: 1 port detected
>> > hub 1-0:1.0: standalone hub
>> > hub 1-0:1.0: individual port power switching
>> > hub 1-0:1.0: individual port over-current protection
>> > hub 1-0:1.0: Single TT
>> > hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
>> > hub 1-0:1.0: power on to power good time: 20ms
>> >  Function usb_get_status called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 8000, wValue = 0, wIndex = 0, wLength = 2
>> > hub 1-0:1.0: 8mA bus power budget for each child
>> >  Function hub_hub_status called
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = a000, wValue = 0, wIndex = 0, wLength = 4
>> >  function ehci_hub_control called: typeReq a000, wValue 0, wIndex 0,
>> > wLength 4
>> > :hub_hub_status: status 0x0, change 0x0
>> > hub 1-0:1.0: local power source is good
>> >  Fucntion hub_power_on called.. calling setportfeat for
>> > USB_PORT_FEAT_POWER
>> > hub 1-0:1.0: enabling power on all ports
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = 2303, wValue = 8, wIndex = 1, wLength = 0
>> >  function ehci_hub_control called: typeReq 2303, wValue 8, wIndex 1,
>> > wLength 0
>> >  Function hub_activate called...
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function kick_khubd called . this wakes up hub_thread process a
>> usb_hub
>> >  Returning from function usb_set_configuration
>> >  Notifier Function usbdev_notify is called
>> > /home/rakesh/linux/sources/linux-2.6.16.11/drivers/usb/core/inode.c:
>> > creating file '001'
>> >  Returning from function usb_new_device
>> >  Returned from function register_root_hub
>> >
>> >
>> >  Function hub_events is called
>> > hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
>> >  Function hub_port_status Called
>> >  Fucntion get_port_status called.. issuing usb_control_msg
>> >  Function usb_submit_urb called
>> >  Function hcd_submit_urb is called
>> >  Calling function rh_urb_enqueue to queue Setup URB to Root Hub
>> >  Function rh_call_control called...This ultimately calls
>> > hc_driver->hub_control
>> >  rh_call_control URB setup_packet contents in rh_call_control typeReq
>> > = a300, wValue = 0, wIndex = 1, wLength = 4
>> >  function ehci_hub_control called: typeReq a300, wValue 0, wIndex 1,
>> > wLength 4
>> >  hub_port_status: port 1, status 0x100, change 0x0
>> >  in hub_events loop hub_event_list is empty
>> >
>> >
>> > -------------------------------------------------------
>> > 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&kid0709&bid&3057&dat1642
>> > _______________________________________________
>> > linux-usb-devel@lists.sourceforge.net
>> > To unsubscribe, use the last form field at:
>> > https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
>> >
>>
>>
>



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

Reply via email to