[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