[U-Boot] - Help with usb3503 hub enumeration

Vivek Gautam gautamvivek1987 at gmail.com
Tue Sep 24 11:10:08 CEST 2013


Hi,


On Sun, Sep 15, 2013 at 4:55 AM, Suriyan Ramasami <suriyan.r at gmail.com> wrote:
> Hello All and especially Dan Murphy,
>     Reading thru the mailing list Dan seems to have worked on usb3503a +
> LAN9730 enumeration wrt the OMAP5. Hence, I seek his help and anyone else!
>
>    This is with regards to an odroid-u2. It is Exynos 4412 prime based. It
> has a usb3503a hub and also a LAN 9730 - I am guessing pretty much like the
> omap5.
>
>   From the clock source and the PMIC perspective I do see that the usb3503a
> is powered up and gets a REF_CLK. (I can verify this as I can read and
> write via I2C to the usb3503a and get/set its configuration.

Did you also check the basic host operation, if you have any external
port coming out of USB2.0 PHY (not HSIC phy)
where you can connect a mass storage device or n/w device may be and
see if that's getting enumerated.


> Also, I do
> have the correct GPIO pins for the INT_N, RESET_N and HUB_CONNECT wrt the
> usb3503a.

So are you doing a proper reset of USB3503 hub using RESET_N line ?
Basically what i could see from Linaro's git also and they are doing a
pull-down followed by pull-up
of RESET_N and HUB_CONNECT gpios when setting up the HSIC phy.

Please have a look at following patch if this helps:
https://launchpadlibrarian.net/122816176/0001-DRIVERS-USB-Initialize-HSIC-PHYs-and-enable-network-.patch

>
>   In the platform based ehci-exynos.c I do initialize the the USB_PHY,
> HSIC_1_PHY and HSIC2_PHY that is present in the Exynos 4412 SoC. These I
> have copied over from the Linux kernel (which has full usb support and
> works). Once this is done, I can see that the values for hccr and hcor
> appear correct as reported by Linux too.

Can you attach the patch here which you are using for setting up the
required PHY settings.
In the first look there's PHY that is to be suspected.

>
>   When it comes to starting up usb via usb start, I seem to hit the below
> sequence - with debug on ... The u-boot is quite an older u-boot, but I
> have ported most of the usb code over from the arndale port over at
> insignal - which seems to have usb working (they too have a usb3503a but
> with exynos5)
>
> My question is how do I debug this to get it working. Looks like the hcd
> does not see the usb3503a, am I correct?
> ---------------------------- 8< ----------------------------
>    (Re)start USB...
> USB:   Exynos4412-ehci: init hccr 12580000 and hcor 12580010 hc_length 10
> Register 1313 NbrPorts 3
> USB EHCI 1.00
> samsung_gpiolib_4bit_output: base: 11000c60 offset: 5 value: 0
> s3c_gpiolib_set: reg: 11000c64 offset: 5 value: 0
> samsung_gpiolib_4bit_output: base: 11000c60 offset: 0 value: 0
> s3c_gpiolib_set: reg: 11000c64 offset: 0 value: 0
> samsung_gpiolib_4bit_output: base: 11000c60 offset: 4 value: 0
> s3c_gpiolib_set: reg: 11000c64 offset: 4 value: 0
> s3c_gpiolib_set: reg: 11000c64 offset: 5 value: 1
> Read 32 from USB3503 SP_ILOCK
> s3c_gpiolib_set: reg: 11000c64 offset: 4 value: 1
> Wrote 33 to USB3503_SP_ILOCK
> samsung_gpiolib_4bit_input: base: 11000c60 offset: 0
> scanning bus for devices... New Device 0
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0
> length 0x40
> set address 1
> usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length
> 0x0
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0
> length 0x12
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0
> length 0x9
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0
> length 0x19
> get_conf_no 0 Result 25, wLength 25
> if 0, ep 0
> ##EP epmaxpacketin[1] = 8
> set configuration 1
> usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length
> 0x0
> new device strings: Mfr=1, Product=2, SerialNumber=0
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0
> length 0xFF
> USB device number 1 default language ID 0x1
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x1
> length 0xFF
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x1
> length 0xFF
> Manufacturer u-boot
> Product      EHCI Host Controller
> SerialNumber
> Vendor: 0x0000  Product 0x0000 Version 1.0
> USB hub found
> usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0
> length 0x4
> usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0
> length 0x8
> 3 ports detected
> individual port power switching
> standalone hub
> global over-current protection
> power on to power good time: 20ms
> hub controller current requirement: 0mA
> port 1 is removable
> port 2 is removable
> port 3 is removable
> usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0
> length 0x4
> get_hub_status returned status 1, change 103
> local power source is lost (inactive)
> no over-current condition exists
> enabling power on all ports
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x8 index 0x1
> length 0x0
> port 1 returns 0
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x8 index 0x2
> length 0x0
> port 2 returns 0
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x8 index 0x3
> length 0x0
> The request port(2) is not configured
> port 3 returns 80000000
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1
> length 0x4
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2
> length 0x4
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3
> length 0x4
> The request port(2) is not configured
> port 3: get_port_status failed
> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1
> length 0x0
> port 1 returns 0
> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2
> length 0x0
> port 2 returns 0
> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x3
> length 0x0
> The request port(2) is not configured
> port 3 returns 80000000
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1
> length 0x4
> Port 1 Status 500 Change 0
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2
> length 0x4
> Port 2 Status 501 Change 1
> port 2 connection change
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2
> length 0x4
> portstatus 501, change 1, 480 Mb/s
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x2
> length 0x0
> hub_port_reset: resetting port 1...
> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2
> length 0x0
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2
> length 0x4
> portstatus 503, change 10, 480 Mb/s
> STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x2
> length 0x0
> New Device 1
> usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0
> length 0x40
> EHCI timed out on TD - token=0x80008c80
> hub_port_reset: resetting port 1...
> usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2
> length 0x0
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2
> length 0x4
> portstatus 503, change 10, 480 Mb/s
> STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x2
> length 0x0
> set address 2
> usb_control_msg: request: 0x5, requesttype: 0x0, value 0x2 index 0x0 length
> 0x0
> EHCI fail timeout STS_ASS set
>
>       USB device not accepting new address (error=80000000)
> hub: disabling port 2
> usb_control_msg: request: 0x1, requesttype: 0x23, value 0x1 index 0x2
> length 0x0
> usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3
> length 0x4
> The request port(2) is not configured
> get_port_status failed
> 2 USB Device(s) found
> scan end
>        scanning bus for storage devices... 0 Storage Device(s) found
>        scanning bus for ethernet devices... [0] IntIdVendor: 1060
> IntIdProdcut: 60416 IdVendor: 0 IdProduct: 0
> [1] IntIdVendor: 1060 IntIdProdcut: 38144 IdVendor: 0 IdProduct: 0
> [0] IntIdVendor: 1060 IntIdProdcut: 60416 IdVendor: 0 IdProduct: 0
> [1] IntIdVendor: 1060 IntIdProdcut: 38144 IdVendor: 0 IdProduct: 0
> 0 Ethernet Device(s) found
> -----------------------------------------------------------------
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>



-- 
Best Regards
Vivek


More information about the U-Boot mailing list