From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-2?Q?=A3ukasz_Da=B3ek?= Date: Wed, 03 Oct 2012 21:25:07 +0200 Subject: [U-Boot] [PATCH v6] h2200: Add USB CDC ethernet support In-Reply-To: <201210032122.09896.marex@denx.de> References: <506C0A82.5050301@gmail.com> <201210032034.53144.marex@denx.de> <506C8BAE.4020108@gmail.com> <201210032122.09896.marex@denx.de> Message-ID: <506C9113.5010408@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 >>>> --- >>>> >>>> Changes for v6: >>>> - Defined only one entire for board >>>> >>>> Changes for v5: >>>> - Surrendered #include 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 >>>> #include >>>> #include >>>> >>>> +#ifdef CONFIG_H2200_USBETH >>> It's always defined, remove it. >>> >>>> +# include >>>> +#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