[U-Boot] [PATCH v6] h2200: Add USB CDC ethernet support

Marek Vasut marex at denx.de
Wed Oct 3 20:34:52 CEST 2012


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 */


More information about the U-Boot mailing list