[U-Boot] [PATCH v6] h2200: Add USB CDC ethernet support
Łukasz Dałek
luk0104 at gmail.com
Wed Oct 3 21:25:07 CEST 2012
On 03.10.2012 21:22, Marek Vasut wrote:
> Dear Łukasz Dałek,
>
>> On 03.10.2012 20:34, Marek Vasut wrote:
>>> Dear Lukasz Dalek,
>>>
>>>> Add support for ethernet over USB which can be used for e.g. booting
>>>> process. It works with tftp and dhcp clients code.
>>>>
>>>> Signed-off-by: Lukasz Dalek<luk0104 at gmail.com>
>>>> ---
>>>>
>>>> Changes for v6:
>>>> - Defined only one entire for board
>>>>
>>>> Changes for v5:
>>>> - Surrendered #include<usb.h> with CONFIGs
>>>>
>>>> board/h2200/h2200.c | 17 +++++++++++++++++
>>>> boards.cfg | 2 +-
>>>> include/configs/h2200.h | 27 +++++++++++++++++++++++++++
>>>> 3 files changed, 45 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/board/h2200/h2200.c b/board/h2200/h2200.c
>>>> index 3076306..617bb04 100644
>>>> --- a/board/h2200/h2200.c
>>>> +++ b/board/h2200/h2200.c
>>>> @@ -22,9 +22,20 @@
>>>>
>>>> #include<asm/arch/pxa.h>
>>>> #include<asm/arch/pxa-regs.h>
>>>> #include<asm/io.h>
>>>>
>>>> +#ifdef CONFIG_H2200_USBETH
>>> It's always defined, remove it.
>>>
>>>> +# include<usb.h>
>>>> +#endif
>>>>
>>>> DECLARE_GLOBAL_DATA_PTR;
>>>>
>>>> +#ifdef CONFIG_H2200_USBETH
>>>> +int board_eth_init(bd_t *bis)
>>>> +{
>>>> + usb_eth_initialize(bis);
>>>> + return 0;
>>>> +}
>>>> +#endif
>>>> +
>>>>
>>>> int board_init(void)
>>>> {
>>>>
>>>> /* We have RAM, disable cache */
>>>>
>>>> @@ -36,6 +47,12 @@ int board_init(void)
>>>>
>>>> /* adress of boot parameters */
>>>> gd->bd->bi_boot_params = 0xa0000100;
>>>>
>>>> + /* Let host see that device is disconnected */
>>>> +#if defined(CONFIG_H2200_USBETH)
>>>> + udc_disconnect();
>>>> + mdelay(500);
>>>> +#endif
>>>> +
>>>>
>>>> return 0;
>>>>
>>>> }
>>>>
>>>> diff --git a/boards.cfg b/boards.cfg
>>>> index ab10938..f557c2b 100644
>>>> --- a/boards.cfg
>>>> +++ b/boards.cfg
>>>> @@ -282,7 +282,7 @@ dvlhost arm ixp
>>>>
>>>> pdnb3 arm ixp pdnb3
>>>>
>>>> prodrive scpu arm ixp pdnb3
>>>>
>>>> prodrive - pdnb3:SCPU balloon3
>>>>
>>>> arm pxa
>>>> -h2200 arm pxa
>>>> +h2200 arm pxa h2200
>>>> -
>>>>
>>>> - h2200:H2200_USBETH lubbock
>>> [...]
>>>
>>> This change isn't needed if you remove CONFIG_H2200_USBETH
>>>
>>>> diff --git a/include/configs/h2200.h b/include/configs/h2200.h
>>>> index de5299b..4c5a1ae 100644
>>>> --- a/include/configs/h2200.h
>>>> +++ b/include/configs/h2200.h
>>>> @@ -153,4 +153,31 @@
>>>>
>>>> #define CONFIG_BOOTARGS "root=/dev/ram0 ro console=ttyS0,115200n8"
>>>>
>>>> +#ifdef CONFIG_H2200_USBETH
>>> ifdef - endif not needed, otherwise good.
>>>
>>>> +# define CONFIG_SYS_CONSOLE_IS_IN_ENV
>>>> +# define CONFIG_USB_DEV_PULLUP_GPIO 33
>>>> +/* USB VBUS GPIO 3 */
>>>> +
>>>> +# define CONFIG_CMD_NET
>>>> +# define CONFIG_CMD_PING
>>>> +
>>>> +# define CONFIG_BOOTDELAY 2
>>>> +# define CONFIG_BOOTCOMMAND \
>>>> + "setenv downloaded 0 ; while test $downloaded -eq 0 ; do " \
>>>> + "if bootp ; then setenv downloaded 1 ; fi ; done ; " \
>>>> + "source :script ; " \
>>>> + "bootm ; "
>>>> +
>>>> +# define CONFIG_USB_GADGET_PXA2XX
>>>> +# define CONFIG_USB_ETHER
>>>> +# define CONFIG_USB_ETH_SUBSET
>>>> +
>>>> +# define CONFIG_USBNET_DEV_ADDR "de:ad:be:ef:00:01"
>>>> +# define CONFIG_USBNET_HOST_ADDR "de:ad:be:ef:00:02"
>>>> +# define CONFIG_EXTRA_ENV_SETTINGS \
>>>> + "stdin=serial\0" \
>>>> + "stdout=serial\0" \
>>>> + "stderr=serial\0"
>>>> +#endif
>>>> +
>>>>
>>>> #endif /* __CONFIG_H */
>> Why do I have to remove CONFIG_H2200_USBETH? If I do so, I'm not be able to
>> disable USB ethernet support.
> Why would you disable it?
Because of other gadgets, e.g. ttyACM
Łukasz Dałek
More information about the U-Boot
mailing list