[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