dde_linux/usb: Support CDC Ethernet

This commit is contained in:
Alexander Senier 2017-10-16 21:47:40 +02:00 committed by Christian Helmuth
parent 6d69f946a8
commit 50ec5c03c1
6 changed files with 55 additions and 3 deletions

View File

@ -4,7 +4,7 @@ SRC_C += usb/core/hcd-pci.c
#
# USB netwpork support
#
SRC_C += $(addprefix net/usb/, usbnet.c ax88179_178a.c)
SRC_C += $(addprefix net/usb/, usbnet.c ax88179_178a.c cdc_ether.c)
# XHCI
SRC_C += usb/host/xhci-pci.c

View File

@ -20,12 +20,13 @@ INC_DIR += $(LX_CONTRIB_DIR)/include $(LX_CONTRIB_DIR)/include/uapi $(LX_CONTRIB
CC_OPT += -U__linux__ -D__KERNEL__
CC_OPT += -DCONFIG_USB_DEVICEFS -DCONFIG_HOTPLUG -DDEBUG -DCONFIG_USB_PHY=1 \
-DCONFIG_GENERIC_PHY=0 -DCONFIG_USB_OTG_WHITELIST=0 \
-DCONFIG_USB_OTG=0
-DCONFIG_USB_OTG=0 -DCONFIG_USB_NET_RNDIS_HOST=1
CC_WARN = -Wall -Wno-unused-variable -Wno-uninitialized \
-Wno-unused-function -Wno-overflow
CC_C_OPT += -std=gnu89 -Wno-unused-but-set-variable -Wno-pointer-sign -Wno-unused-label
CC_C_OPT += -include $(LIB_INC_DIR)/lx_emul.h
CC_CXX_OPT = -fpermissive
@ -39,6 +40,7 @@ CC_OPT += -DMOD_SUFFIX=$(MOD_SUFFIX)
SRC_CC += printf.cc work.cc timer.cc scheduler.cc irq.cc malloc.cc env.cc
# common lib
SRC_C += lib/ctype.c
SRC_C += lib/int_sqrt.c
# USB core
@ -86,6 +88,7 @@ vpath %.cc $(LIB_DIR)/nic
vpath %.cc $(LIB_DIR)/raw
vpath %.c $(LIB_DIR)/raw
vpath lib/int_sqrt.c $(LX_CONTRIB_DIR)
vpath lib/ctype.c $(LX_CONTRIB_DIR)
vpath %.cc $(REP_DIR)/src/lx_kit
# vi: set ft=make :

View File

@ -1 +1 @@
71088fe54dc4e32413dac2c7a124f4e3e6783342
570bd3cf50c3ae2307931ae9eb6bb706423167ef

View File

@ -1036,3 +1036,47 @@ struct workqueue_struct *alloc_workqueue(const char *fmt, unsigned int flags,
#include <lx_emul/impl/wait.h>
/*******************
** lib/hexdump.c **
*******************/
#include <linux/ctype.h>
/**
* hex_to_bin - convert a hex digit to its real value
* @ch: ascii character represents hex digit
*
* hex_to_bin() converts one hex digit to its actual value or -1 in case of bad
* input.
*/
int hex_to_bin(char ch)
{
if ((ch >= '0') && (ch <= '9'))
return ch - '0';
ch = tolower(ch);
if ((ch >= 'a') && (ch <= 'f'))
return ch - 'a' + 10;
return -1;
}
/**
* hex2bin - convert an ascii hexadecimal string to its binary representation
* @dst: binary result
* @src: ascii hexadecimal string
* @count: result length
*
* Return 0 on success, -1 in case of bad input.
*/
int hex2bin(u8 *dst, const char *src, size_t count)
{
while (count--) {
int hi = hex_to_bin(*src++);
int lo = hex_to_bin(*src++);
if ((hi < 0) || (lo < 0))
return -1;
*dst++ = (hi << 4) | lo;
}
return 0;
}

View File

@ -15,6 +15,7 @@
extern "C" void module_ax88179_178a_driver_init();
extern "C" void module_cdc_driver_init();
extern "C" void module_usbnet_init();
extern "C" void module_ehci_hcd_init();
extern "C" void module_ehci_pci_init();
@ -29,6 +30,7 @@ void platform_hcd_init(Services *s)
if (s->nic) {
module_usbnet_init();
module_ax88179_178a_driver_init();
module_cdc_driver_init();
}
if (s->xhci) {

View File

@ -21,6 +21,7 @@ linux-x.x.x/drivers/net/usb/asix_devices.c
linux-x.x.x/drivers/net/usb/asix.h
linux-x.x.x/drivers/net/usb/ax88172a.c
linux-x.x.x/drivers/net/usb/ax88179_178a.c
linux-x.x.x/drivers/net/usb/cdc_ether.c
linux-x.x.x/drivers/net/usb/smsc95xx.h
linux-x.x.x/drivers/net/usb/smsc95xx.c
linux-x.x.x/drivers/net/usb/usbnet.c
@ -130,6 +131,7 @@ linux-x.x.x/include/asm-generic/bitops/__fls.h
linux-x.x.x/include/asm-generic/bitops/fls64.h
linux-x.x.x/include/asm-generic/bitops/non-atomic.h
linux-x.x.x/include/asm-generic/ioctl.h
linux-x.x.x/include/linux/ctype.h
linux-x.x.x/include/linux/hiddev.h
linux-x.x.x/include/linux/hid.h
linux-x.x.x/include/linux/input.h
@ -171,4 +173,5 @@ linux-x.x.x/include/uapi/linux/swab.h
linux-x.x.x/include/uapi/linux/usb/ch11.h
linux-x.x.x/include/uapi/linux/usb/ch9.h
linux-x.x.x/include/uapi/linux/usb/cdc.h
linux-x.x.x/lib/ctype.c
linux-x.x.x/lib/int_sqrt.c