diff mbox

[U-Boot,v1,1/2] odroid: Update README with USB host information

Message ID 1416414090-4058-1-git-send-email-suriyan.r@gmail.com
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Commit Message

Suriyan Ramasami Nov. 19, 2014, 4:21 p.m. UTC
Add information wrt the USB host side of things for the Odroid-U2/U3 and the
Odroid-X/X2

Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
---

Changes in v1:
- Add USB host notes for the Odroid

 doc/README.odroid | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

Comments

Przemyslaw Marczak Nov. 19, 2014, 5:39 p.m. UTC | #1
Hello,
On 11/19/2014 05:21 PM, Suriyan Ramasami wrote:
> Add information wrt the USB host side of things for the Odroid-U2/U3 and the
> Odroid-X/X2
>
> Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
> ---
>
> Changes in v1:
> - Add USB host notes for the Odroid
>
>   doc/README.odroid | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 48 insertions(+)
>
> diff --git a/doc/README.odroid b/doc/README.odroid
> index 528bb95..0eaf3ff 100644
> --- a/doc/README.odroid
> +++ b/doc/README.odroid
> @@ -141,3 +141,51 @@ And the boot sequence is:
>   - boot_fit - if "Image.itb" exists
>   - boot_zimg - if "zImage" exists
>   - boot_uimg - if "uImage" exists
> +
> +11. USB host support
> +====================
> +The Odroid-X/X2 have the below schematics wrt USB:
> +
> +Exynos USB_HOST1 -> USB3503 HUB ----> LAN9514 USB HUB -----> LAN9514 Ethernet
> +			|		|
> +			|		+-------Host1---------> USB port
> +			|		|
> +			|		+-------Host2---------> USB port
> +			|		|
> +			|		+-------Host3---------> USB port
> +			|		|
> +			|		+-------Host4---------> USB port
> +			|
> +			+-------------------------------------> USB port
> +			|
> +			+-------------------------------------> USB port
> +
> +The Odroid-U2/U3 have the below schematics wrt USB:
> +
> +Exynos HSIC1 -----------------------------------------------> LAN9514 Ethernet
> +
> +Exynos HSIC2 -----> USB3503A HUB ---------------Host1---------> USB port
> +			|
> +			+-----------------------Host2---------> USB port
> +			|
> +			+-----------------------HOst3---------> USB port (U3)
> +
> +The HSICs are used in the case of the Odroid-Us and the USB Host in the SoC
> +is used in the case of the Odroid-Xs.
> +
> +In drivers/usb/host/ehci-exynos.c, function names starting with exysno4412*
> +have been added to initialize the HSICs and the PHYs.
> +
> +In board/samsung/odroid/odroid.c, function board_usb_init() adds code to
> +initialize the USB3503 hub.
> +The initializing of the USB3503 hub is as defined in the USB3503A spec sheet.
> +Please refer to Figure 4.1 in the Datasheet.
> +a) Set the INT_N (X30) low (Odroid-Us) or high (Odroid-Xs). This is so that the
> +correct REFCLK frequency is selected. 24MHz for Odroid Us and 26MHz for Odroid
> +Xs.
> +b) Disconnect the HUB (Set HUB_CONNECT (X34) to 0)
> +c) Reset the HUB (Set RESET_N (X35) to 0 and then to 1)
> +d) HUB waits for REF_CLK (which we have set appropriately)
> +e) Timeout waiting for HUB configuration stage
> +f) Connect the HUB (Set HUB_CONNECT (X34) to 1)
> +g) Power recycle the LAN9730 which is connected to BUCK8 (Odroid Us)
>

Suriyan, you quite misunderstand my intention. You added really useful 
part of code - now user can read/write data to USB mass storage or boot 
over the Ethernet. Probably you are using this feature. And this is a 
usage of the USB for the user.

For the user - it's not important how it works in the hardware - I would 
like to get some simple instructions, e.g. How to boot Odroid over the 
Ethernet, or how to write data to USB stick. I believe that users read 
this documentation when they starting use of Odroid with the mainline 
U-Boot, and a description of another boot option is welcome here.
It should be "How to start with this board", rather than how to develop 
USB hub driver on it.

Best regards,
Suriyan Ramasami Nov. 19, 2014, 6:29 p.m. UTC | #2
Hello Przemyslaw,

On Wed, Nov 19, 2014 at 9:39 AM, Przemyslaw Marczak
<p.marczak@samsung.com> wrote:
> Hello,
>
> On 11/19/2014 05:21 PM, Suriyan Ramasami wrote:
>>
>> Add information wrt the USB host side of things for the Odroid-U2/U3 and
>> the
>> Odroid-X/X2
>>
>> Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
>> ---
>>
>> Changes in v1:
>> - Add USB host notes for the Odroid
>>
>>   doc/README.odroid | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 48 insertions(+)
>>
>> diff --git a/doc/README.odroid b/doc/README.odroid
>> index 528bb95..0eaf3ff 100644
>> --- a/doc/README.odroid
>> +++ b/doc/README.odroid
>> @@ -141,3 +141,51 @@ And the boot sequence is:
>>   - boot_fit - if "Image.itb" exists
>>   - boot_zimg - if "zImage" exists
>>   - boot_uimg - if "uImage" exists
>> +
>> +11. USB host support
>> +====================
>> +The Odroid-X/X2 have the below schematics wrt USB:
>> +
>> +Exynos USB_HOST1 -> USB3503 HUB ----> LAN9514 USB HUB -----> LAN9514
>> Ethernet
>> +                       |               |
>> +                       |               +-------Host1---------> USB port
>> +                       |               |
>> +                       |               +-------Host2---------> USB port
>> +                       |               |
>> +                       |               +-------Host3---------> USB port
>> +                       |               |
>> +                       |               +-------Host4---------> USB port
>> +                       |
>> +                       +-------------------------------------> USB port
>> +                       |
>> +                       +-------------------------------------> USB port
>> +
>> +The Odroid-U2/U3 have the below schematics wrt USB:
>> +
>> +Exynos HSIC1 -----------------------------------------------> LAN9514
>> Ethernet
>> +
>> +Exynos HSIC2 -----> USB3503A HUB ---------------Host1---------> USB port
>> +                       |
>> +                       +-----------------------Host2---------> USB port
>> +                       |
>> +                       +-----------------------HOst3---------> USB port
>> (U3)
>> +
>> +The HSICs are used in the case of the Odroid-Us and the USB Host in the
>> SoC
>> +is used in the case of the Odroid-Xs.
>> +
>> +In drivers/usb/host/ehci-exynos.c, function names starting with
>> exysno4412*
>> +have been added to initialize the HSICs and the PHYs.
>> +
>> +In board/samsung/odroid/odroid.c, function board_usb_init() adds code to
>> +initialize the USB3503 hub.
>> +The initializing of the USB3503 hub is as defined in the USB3503A spec
>> sheet.
>> +Please refer to Figure 4.1 in the Datasheet.
>> +a) Set the INT_N (X30) low (Odroid-Us) or high (Odroid-Xs). This is so
>> that the
>> +correct REFCLK frequency is selected. 24MHz for Odroid Us and 26MHz for
>> Odroid
>> +Xs.
>> +b) Disconnect the HUB (Set HUB_CONNECT (X34) to 0)
>> +c) Reset the HUB (Set RESET_N (X35) to 0 and then to 1)
>> +d) HUB waits for REF_CLK (which we have set appropriately)
>> +e) Timeout waiting for HUB configuration stage
>> +f) Connect the HUB (Set HUB_CONNECT (X34) to 1)
>> +g) Power recycle the LAN9730 which is connected to BUCK8 (Odroid Us)
>>
>
> Suriyan, you quite misunderstand my intention. You added really useful part
> of code - now user can read/write data to USB mass storage or boot over the
> Ethernet. Probably you are using this feature. And this is a usage of the
> USB for the user.
>
> For the user - it's not important how it works in the hardware - I would
> like to get some simple instructions, e.g. How to boot Odroid over the
> Ethernet, or how to write data to USB stick. I believe that users read this
> documentation when they starting use of Odroid with the mainline U-Boot, and
> a description of another boot option is welcome here.
> It should be "How to start with this board", rather than how to develop USB
> hub driver on it.
>

Ah! I see. You are right, I totally misunderstood you. I shall get rid
of the hardware part of things, and add the sections that you have
mentioned, viz:
- How to boot Odroid over Ethernet
- How to boot Odroid over USB storage etc

Thanks
- Suriyan

> Best regards,
> --
> Przemyslaw Marczak
> Samsung R&D Institute Poland
> Samsung Electronics
> p.marczak@samsung.com
Przemyslaw Marczak Nov. 19, 2014, 6:40 p.m. UTC | #3
Hi,

On 11/19/2014 07:29 PM, Suriyan Ramasami wrote:
> Hello Przemyslaw,
>
> On Wed, Nov 19, 2014 at 9:39 AM, Przemyslaw Marczak
> <p.marczak@samsung.com> wrote:
>> Hello,
>>
>> On 11/19/2014 05:21 PM, Suriyan Ramasami wrote:
>>>
>>> Add information wrt the USB host side of things for the Odroid-U2/U3 and
>>> the
>>> Odroid-X/X2
>>>
>>> Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
>>> ---
>>>
>>> Changes in v1:
>>> - Add USB host notes for the Odroid
>>>
>>>    doc/README.odroid | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>>>    1 file changed, 48 insertions(+)
>>>
>>> diff --git a/doc/README.odroid b/doc/README.odroid
>>> index 528bb95..0eaf3ff 100644
>>> --- a/doc/README.odroid
>>> +++ b/doc/README.odroid
>>> @@ -141,3 +141,51 @@ And the boot sequence is:
>>>    - boot_fit - if "Image.itb" exists
>>>    - boot_zimg - if "zImage" exists
>>>    - boot_uimg - if "uImage" exists
>>> +
>>> +11. USB host support
>>> +====================
>>> +The Odroid-X/X2 have the below schematics wrt USB:
>>> +
>>> +Exynos USB_HOST1 -> USB3503 HUB ----> LAN9514 USB HUB -----> LAN9514
>>> Ethernet
>>> +                       |               |
>>> +                       |               +-------Host1---------> USB port
>>> +                       |               |
>>> +                       |               +-------Host2---------> USB port
>>> +                       |               |
>>> +                       |               +-------Host3---------> USB port
>>> +                       |               |
>>> +                       |               +-------Host4---------> USB port
>>> +                       |
>>> +                       +-------------------------------------> USB port
>>> +                       |
>>> +                       +-------------------------------------> USB port
>>> +
>>> +The Odroid-U2/U3 have the below schematics wrt USB:
>>> +
>>> +Exynos HSIC1 -----------------------------------------------> LAN9514
>>> Ethernet
>>> +
>>> +Exynos HSIC2 -----> USB3503A HUB ---------------Host1---------> USB port
>>> +                       |
>>> +                       +-----------------------Host2---------> USB port
>>> +                       |
>>> +                       +-----------------------HOst3---------> USB port
>>> (U3)
>>> +
>>> +The HSICs are used in the case of the Odroid-Us and the USB Host in the
>>> SoC
>>> +is used in the case of the Odroid-Xs.
>>> +
>>> +In drivers/usb/host/ehci-exynos.c, function names starting with
>>> exysno4412*
>>> +have been added to initialize the HSICs and the PHYs.
>>> +
>>> +In board/samsung/odroid/odroid.c, function board_usb_init() adds code to
>>> +initialize the USB3503 hub.
>>> +The initializing of the USB3503 hub is as defined in the USB3503A spec
>>> sheet.
>>> +Please refer to Figure 4.1 in the Datasheet.
>>> +a) Set the INT_N (X30) low (Odroid-Us) or high (Odroid-Xs). This is so
>>> that the
>>> +correct REFCLK frequency is selected. 24MHz for Odroid Us and 26MHz for
>>> Odroid
>>> +Xs.
>>> +b) Disconnect the HUB (Set HUB_CONNECT (X34) to 0)
>>> +c) Reset the HUB (Set RESET_N (X35) to 0 and then to 1)
>>> +d) HUB waits for REF_CLK (which we have set appropriately)
>>> +e) Timeout waiting for HUB configuration stage
>>> +f) Connect the HUB (Set HUB_CONNECT (X34) to 1)
>>> +g) Power recycle the LAN9730 which is connected to BUCK8 (Odroid Us)
>>>
>>
>> Suriyan, you quite misunderstand my intention. You added really useful part
>> of code - now user can read/write data to USB mass storage or boot over the
>> Ethernet. Probably you are using this feature. And this is a usage of the
>> USB for the user.
>>
>> For the user - it's not important how it works in the hardware - I would
>> like to get some simple instructions, e.g. How to boot Odroid over the
>> Ethernet, or how to write data to USB stick. I believe that users read this
>> documentation when they starting use of Odroid with the mainline U-Boot, and
>> a description of another boot option is welcome here.
>> It should be "How to start with this board", rather than how to develop USB
>> hub driver on it.
>>
>
> Ah! I see. You are right, I totally misunderstood you. I shall get rid
> of the hardware part of things, and add the sections that you have
> mentioned, viz:
> - How to boot Odroid over Ethernet
> - How to boot Odroid over USB storage etc

Yes, this will be full enough, but I'm not sure if those both cases will 
not require additional environment variables, like setting special bootargs?

>
> Thanks
> - Suriyan
>
>> Best regards,
>> --
>> Przemyslaw Marczak
>> Samsung R&D Institute Poland
>> Samsung Electronics
>> p.marczak@samsung.com
>

Thank you,
Suriyan Ramasami Nov. 19, 2014, 6:47 p.m. UTC | #4
Hello Przemyslaw,

On Wed, Nov 19, 2014 at 10:40 AM, Przemyslaw Marczak
<p.marczak@samsung.com> wrote:
> Hi,
>
>
> On 11/19/2014 07:29 PM, Suriyan Ramasami wrote:
>>
>> Hello Przemyslaw,
>>
>> On Wed, Nov 19, 2014 at 9:39 AM, Przemyslaw Marczak
>> <p.marczak@samsung.com> wrote:
>>>
>>> Hello,
>>>
>>> On 11/19/2014 05:21 PM, Suriyan Ramasami wrote:
>>>>
>>>>
>>>> Add information wrt the USB host side of things for the Odroid-U2/U3 and
>>>> the
>>>> Odroid-X/X2
>>>>
>>>> Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
>>>> ---
>>>>
>>>> Changes in v1:
>>>> - Add USB host notes for the Odroid
>>>>
>>>>    doc/README.odroid | 48
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++
>>>>    1 file changed, 48 insertions(+)
>>>>
>>>> diff --git a/doc/README.odroid b/doc/README.odroid
>>>> index 528bb95..0eaf3ff 100644
>>>> --- a/doc/README.odroid
>>>> +++ b/doc/README.odroid
>>>> @@ -141,3 +141,51 @@ And the boot sequence is:
>>>>    - boot_fit - if "Image.itb" exists
>>>>    - boot_zimg - if "zImage" exists
>>>>    - boot_uimg - if "uImage" exists
>>>> +
>>>> +11. USB host support
>>>> +====================
>>>> +The Odroid-X/X2 have the below schematics wrt USB:
>>>> +
>>>> +Exynos USB_HOST1 -> USB3503 HUB ----> LAN9514 USB HUB -----> LAN9514
>>>> Ethernet
>>>> +                       |               |
>>>> +                       |               +-------Host1---------> USB port
>>>> +                       |               |
>>>> +                       |               +-------Host2---------> USB port
>>>> +                       |               |
>>>> +                       |               +-------Host3---------> USB port
>>>> +                       |               |
>>>> +                       |               +-------Host4---------> USB port
>>>> +                       |
>>>> +                       +-------------------------------------> USB port
>>>> +                       |
>>>> +                       +-------------------------------------> USB port
>>>> +
>>>> +The Odroid-U2/U3 have the below schematics wrt USB:
>>>> +
>>>> +Exynos HSIC1 -----------------------------------------------> LAN9514
>>>> Ethernet
>>>> +
>>>> +Exynos HSIC2 -----> USB3503A HUB ---------------Host1---------> USB
>>>> port
>>>> +                       |
>>>> +                       +-----------------------Host2---------> USB port
>>>> +                       |
>>>> +                       +-----------------------HOst3---------> USB port
>>>> (U3)
>>>> +
>>>> +The HSICs are used in the case of the Odroid-Us and the USB Host in the
>>>> SoC
>>>> +is used in the case of the Odroid-Xs.
>>>> +
>>>> +In drivers/usb/host/ehci-exynos.c, function names starting with
>>>> exysno4412*
>>>> +have been added to initialize the HSICs and the PHYs.
>>>> +
>>>> +In board/samsung/odroid/odroid.c, function board_usb_init() adds code
>>>> to
>>>> +initialize the USB3503 hub.
>>>> +The initializing of the USB3503 hub is as defined in the USB3503A spec
>>>> sheet.
>>>> +Please refer to Figure 4.1 in the Datasheet.
>>>> +a) Set the INT_N (X30) low (Odroid-Us) or high (Odroid-Xs). This is so
>>>> that the
>>>> +correct REFCLK frequency is selected. 24MHz for Odroid Us and 26MHz for
>>>> Odroid
>>>> +Xs.
>>>> +b) Disconnect the HUB (Set HUB_CONNECT (X34) to 0)
>>>> +c) Reset the HUB (Set RESET_N (X35) to 0 and then to 1)
>>>> +d) HUB waits for REF_CLK (which we have set appropriately)
>>>> +e) Timeout waiting for HUB configuration stage
>>>> +f) Connect the HUB (Set HUB_CONNECT (X34) to 1)
>>>> +g) Power recycle the LAN9730 which is connected to BUCK8 (Odroid Us)
>>>>
>>>
>>> Suriyan, you quite misunderstand my intention. You added really useful
>>> part
>>> of code - now user can read/write data to USB mass storage or boot over
>>> the
>>> Ethernet. Probably you are using this feature. And this is a usage of the
>>> USB for the user.
>>>
>>> For the user - it's not important how it works in the hardware - I would
>>> like to get some simple instructions, e.g. How to boot Odroid over the
>>> Ethernet, or how to write data to USB stick. I believe that users read
>>> this
>>> documentation when they starting use of Odroid with the mainline U-Boot,
>>> and
>>> a description of another boot option is welcome here.
>>> It should be "How to start with this board", rather than how to develop
>>> USB
>>> hub driver on it.
>>>
>>
>> Ah! I see. You are right, I totally misunderstood you. I shall get rid
>> of the hardware part of things, and add the sections that you have
>> mentioned, viz:
>> - How to boot Odroid over Ethernet
>> - How to boot Odroid over USB storage etc
>
>
> Yes, this will be full enough, but I'm not sure if those both cases will not
> require additional environment variables, like setting special bootargs?
>
I shall go through the whole setup including bootarg changes if any to
accomplish the said method of booting.
For example I could walk through an  example of just getting ping to work:

Odroid # usb start
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
       scanning usb for ethernet devices... 1 Ethernet Device(s) found
Odroid # setenv autoload no
Odroid # setenv usbethaddr 02:de:ad:be:ef:ff
Odroid # dhcp
Waiting for Ethernet connection... done.
BOOTP broadcast 1
DHCP client bound to address 192.168.1.10 (507 ms)
Odroid # ping 192.168.1.1
Waiting for Ethernet connection... done.
Using sms0 device
host 192.168.1.1 is alive
Odroid #

And go on from there to get tftp loading the linux kernel etc.

Thanks
- Suriyan

>>
>> Thanks
>> - Suriyan
>>
>>> Best regards,
>>> --
>>> Przemyslaw Marczak
>>> Samsung R&D Institute Poland
>>> Samsung Electronics
>>> p.marczak@samsung.com
>>
>>
>
> Thank you,
>
> --
> Przemyslaw Marczak
> Samsung R&D Institute Poland
> Samsung Electronics
> p.marczak@samsung.com
Przemyslaw Marczak Nov. 19, 2014, 7:26 p.m. UTC | #5
Hello,

On 11/19/2014 07:47 PM, Suriyan Ramasami wrote:
> Hello Przemyslaw,
>
> On Wed, Nov 19, 2014 at 10:40 AM, Przemyslaw Marczak
> <p.marczak@samsung.com> wrote:
>> Hi,
>>
>>
>> On 11/19/2014 07:29 PM, Suriyan Ramasami wrote:
>>>
>>> Hello Przemyslaw,
>>>
>>> On Wed, Nov 19, 2014 at 9:39 AM, Przemyslaw Marczak
>>> <p.marczak@samsung.com> wrote:
>>>>
>>>> Hello,
>>>>
>>>> On 11/19/2014 05:21 PM, Suriyan Ramasami wrote:
>>>>>
>>>>>
>>>>> Add information wrt the USB host side of things for the Odroid-U2/U3 and
>>>>> the
>>>>> Odroid-X/X2
>>>>>
>>>>> Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
>>>>> ---
>>>>>
>>>>> Changes in v1:
>>>>> - Add USB host notes for the Odroid
>>>>>
>>>>>     doc/README.odroid | 48
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>     1 file changed, 48 insertions(+)
>>>>>
>>>>> diff --git a/doc/README.odroid b/doc/README.odroid
>>>>> index 528bb95..0eaf3ff 100644
>>>>> --- a/doc/README.odroid
>>>>> +++ b/doc/README.odroid
>>>>> @@ -141,3 +141,51 @@ And the boot sequence is:
>>>>>     - boot_fit - if "Image.itb" exists
>>>>>     - boot_zimg - if "zImage" exists
>>>>>     - boot_uimg - if "uImage" exists
>>>>> +
>>>>> +11. USB host support
>>>>> +====================
>>>>> +The Odroid-X/X2 have the below schematics wrt USB:
>>>>> +
>>>>> +Exynos USB_HOST1 -> USB3503 HUB ----> LAN9514 USB HUB -----> LAN9514
>>>>> Ethernet
>>>>> +                       |               |
>>>>> +                       |               +-------Host1---------> USB port
>>>>> +                       |               |
>>>>> +                       |               +-------Host2---------> USB port
>>>>> +                       |               |
>>>>> +                       |               +-------Host3---------> USB port
>>>>> +                       |               |
>>>>> +                       |               +-------Host4---------> USB port
>>>>> +                       |
>>>>> +                       +-------------------------------------> USB port
>>>>> +                       |
>>>>> +                       +-------------------------------------> USB port
>>>>> +
>>>>> +The Odroid-U2/U3 have the below schematics wrt USB:
>>>>> +
>>>>> +Exynos HSIC1 -----------------------------------------------> LAN9514
>>>>> Ethernet
>>>>> +
>>>>> +Exynos HSIC2 -----> USB3503A HUB ---------------Host1---------> USB
>>>>> port
>>>>> +                       |
>>>>> +                       +-----------------------Host2---------> USB port
>>>>> +                       |
>>>>> +                       +-----------------------HOst3---------> USB port
>>>>> (U3)
>>>>> +
>>>>> +The HSICs are used in the case of the Odroid-Us and the USB Host in the
>>>>> SoC
>>>>> +is used in the case of the Odroid-Xs.
>>>>> +
>>>>> +In drivers/usb/host/ehci-exynos.c, function names starting with
>>>>> exysno4412*
>>>>> +have been added to initialize the HSICs and the PHYs.
>>>>> +
>>>>> +In board/samsung/odroid/odroid.c, function board_usb_init() adds code
>>>>> to
>>>>> +initialize the USB3503 hub.
>>>>> +The initializing of the USB3503 hub is as defined in the USB3503A spec
>>>>> sheet.
>>>>> +Please refer to Figure 4.1 in the Datasheet.
>>>>> +a) Set the INT_N (X30) low (Odroid-Us) or high (Odroid-Xs). This is so
>>>>> that the
>>>>> +correct REFCLK frequency is selected. 24MHz for Odroid Us and 26MHz for
>>>>> Odroid
>>>>> +Xs.
>>>>> +b) Disconnect the HUB (Set HUB_CONNECT (X34) to 0)
>>>>> +c) Reset the HUB (Set RESET_N (X35) to 0 and then to 1)
>>>>> +d) HUB waits for REF_CLK (which we have set appropriately)
>>>>> +e) Timeout waiting for HUB configuration stage
>>>>> +f) Connect the HUB (Set HUB_CONNECT (X34) to 1)
>>>>> +g) Power recycle the LAN9730 which is connected to BUCK8 (Odroid Us)
>>>>>
>>>>
>>>> Suriyan, you quite misunderstand my intention. You added really useful
>>>> part
>>>> of code - now user can read/write data to USB mass storage or boot over
>>>> the
>>>> Ethernet. Probably you are using this feature. And this is a usage of the
>>>> USB for the user.
>>>>
>>>> For the user - it's not important how it works in the hardware - I would
>>>> like to get some simple instructions, e.g. How to boot Odroid over the
>>>> Ethernet, or how to write data to USB stick. I believe that users read
>>>> this
>>>> documentation when they starting use of Odroid with the mainline U-Boot,
>>>> and
>>>> a description of another boot option is welcome here.
>>>> It should be "How to start with this board", rather than how to develop
>>>> USB
>>>> hub driver on it.
>>>>
>>>
>>> Ah! I see. You are right, I totally misunderstood you. I shall get rid
>>> of the hardware part of things, and add the sections that you have
>>> mentioned, viz:
>>> - How to boot Odroid over Ethernet
>>> - How to boot Odroid over USB storage etc
>>
>>
>> Yes, this will be full enough, but I'm not sure if those both cases will not
>> require additional environment variables, like setting special bootargs?
>>
> I shall go through the whole setup including bootarg changes if any to
> accomplish the said method of booting.
> For example I could walk through an  example of just getting ping to work:
>
> Odroid # usb start
> (Re)start USB...
> USB0:   USB EHCI 1.00
> scanning bus 0 for devices... 3 USB Device(s) found
>         scanning usb for storage devices... 0 Storage Device(s) found
>         scanning usb for ethernet devices... 1 Ethernet Device(s) found
> Odroid # setenv autoload no
> Odroid # setenv usbethaddr 02:de:ad:be:ef:ff
> Odroid # dhcp
> Waiting for Ethernet connection... done.
> BOOTP broadcast 1
> DHCP client bound to address 192.168.1.10 (507 ms)
> Odroid # ping 192.168.1.1
> Waiting for Ethernet connection... done.
> Using sms0 device
> host 192.168.1.1 is alive
> Odroid #
>
> And go on from there to get tftp loading the linux kernel etc.
>
> Thanks
> - Suriyan
>

That's great. And if you have a time for it, then you could add required 
changes to CONFIG_EXTRA_ENV_SETTINGS or if no, then the above example of 
usage is also helpful.

>>>
>>> Thanks
>>> - Suriyan
>>>
>>>> Best regards,
>>>> --
>>>> Przemyslaw Marczak
>>>> Samsung R&D Institute Poland
>>>> Samsung Electronics
>>>> p.marczak@samsung.com
>>>
>>>
>>
>> Thank you,
>>
>> --
>> Przemyslaw Marczak
>> Samsung R&D Institute Poland
>> Samsung Electronics
>> p.marczak@samsung.com
>

Best regards,
diff mbox

Patch

diff --git a/doc/README.odroid b/doc/README.odroid
index 528bb95..0eaf3ff 100644
--- a/doc/README.odroid
+++ b/doc/README.odroid
@@ -141,3 +141,51 @@  And the boot sequence is:
 - boot_fit - if "Image.itb" exists
 - boot_zimg - if "zImage" exists
 - boot_uimg - if "uImage" exists
+
+11. USB host support
+====================
+The Odroid-X/X2 have the below schematics wrt USB:
+
+Exynos USB_HOST1 -> USB3503 HUB ----> LAN9514 USB HUB -----> LAN9514 Ethernet
+			|		|
+			|		+-------Host1---------> USB port
+			|		|
+			|		+-------Host2---------> USB port
+			|		|
+			|		+-------Host3---------> USB port
+			|		|
+			|		+-------Host4---------> USB port
+			|
+			+-------------------------------------> USB port
+			|
+			+-------------------------------------> USB port
+
+The Odroid-U2/U3 have the below schematics wrt USB:
+
+Exynos HSIC1 -----------------------------------------------> LAN9514 Ethernet
+
+Exynos HSIC2 -----> USB3503A HUB ---------------Host1---------> USB port
+			|
+			+-----------------------Host2---------> USB port
+			|
+			+-----------------------HOst3---------> USB port (U3)
+
+The HSICs are used in the case of the Odroid-Us and the USB Host in the SoC
+is used in the case of the Odroid-Xs.
+
+In drivers/usb/host/ehci-exynos.c, function names starting with exysno4412*
+have been added to initialize the HSICs and the PHYs.
+
+In board/samsung/odroid/odroid.c, function board_usb_init() adds code to
+initialize the USB3503 hub.
+The initializing of the USB3503 hub is as defined in the USB3503A spec sheet.
+Please refer to Figure 4.1 in the Datasheet.
+a) Set the INT_N (X30) low (Odroid-Us) or high (Odroid-Xs). This is so that the
+correct REFCLK frequency is selected. 24MHz for Odroid Us and 26MHz for Odroid
+Xs.
+b) Disconnect the HUB (Set HUB_CONNECT (X34) to 0)
+c) Reset the HUB (Set RESET_N (X35) to 0 and then to 1)
+d) HUB waits for REF_CLK (which we have set appropriately)
+e) Timeout waiting for HUB configuration stage
+f) Connect the HUB (Set HUB_CONNECT (X34) to 1)
+g) Power recycle the LAN9730 which is connected to BUCK8 (Odroid Us)