[U-Boot] [PATCH v6] h2200: Add USB CDC ethernet support
Łukasz Dałek
luk0104 at gmail.com
Wed Oct 3 21:02:06 CEST 2012
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.
Łukasz Dałek
More information about the U-Boot
mailing list