From 744f59a2f0ed70cad1fdaa55e2b4553132e29317 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 7 Mar 2023 11:25:08 +0100 Subject: [PATCH 1/6] drivers: introduce feture periph_usbdev_hs To be able to define configurations like EP data sizes depending on whether full-speed or high-speed USB device peripherals are used, the feature `periph_usbdev_hs` is introduced. --- drivers/Makefile.dep | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/Makefile.dep b/drivers/Makefile.dep index 66dedfe1c1..7942346088 100644 --- a/drivers/Makefile.dep +++ b/drivers/Makefile.dep @@ -142,10 +142,16 @@ endif ifneq (,$(filter periph_usbdev_hs_ulpi,$(USEMODULE))) FEATURES_REQUIRED += periph_usbdev_hs_ulpi + USEMODULE += periph_usbdev_hs endif ifneq (,$(filter periph_usbdev_hs_utmi,$(USEMODULE))) FEATURES_REQUIRED += periph_usbdev_hs_utmi + USEMODULE += periph_usbdev_hs +endif + +ifneq (,$(filter periph_usbdev_hs,$(USEMODULE))) + FEATURES_REQUIRED += periph_usbdev_hs endif ifneq (,$(filter pn532_i2c,$(USEMODULE))) From 16f72dad2a93d7e0338c65bd8d29b32350b1fc02 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 7 Mar 2023 11:26:17 +0100 Subject: [PATCH 2/6] kcfonfigs: introduce feture HAS_PERIPH_USBDEV_HS To be able to define configurations like EP data sizes depending on whether full-speed or high-speed USB device peripherals are used, the feature `HAS_PERIPH_USBDEV_HS` is introduced. --- kconfigs/Kconfig.features | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kconfigs/Kconfig.features b/kconfigs/Kconfig.features index 1d3bc251b4..df855703cf 100644 --- a/kconfigs/Kconfig.features +++ b/kconfigs/Kconfig.features @@ -424,6 +424,11 @@ config HAS_PERIPH_USBDEV help Indicates that an USBDEV peripheral is present. +config HAS_PERIPH_USBDEV_HS + bool + help + Indicates that the USBDEV peripheral supports High-Speed. + config HAS_PERIPH_USBDEV_HS_UTMI bool help From 38de94d243a539fdab8f60f715dcf399508dc75d Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 7 Mar 2023 11:27:13 +0100 Subject: [PATCH 3/6] boards/stm32f723e-disco: add feature periph_usbdev_hs --- boards/stm32f723e-disco/Kconfig | 1 + boards/stm32f723e-disco/Makefile.features | 1 + 2 files changed, 2 insertions(+) diff --git a/boards/stm32f723e-disco/Kconfig b/boards/stm32f723e-disco/Kconfig index 1fc13de566..4621f6a6da 100644 --- a/boards/stm32f723e-disco/Kconfig +++ b/boards/stm32f723e-disco/Kconfig @@ -22,6 +22,7 @@ config BOARD_STM32F723E_DISCO select HAS_PERIPH_UART select HAS_PERIPH_UART_HW_FC select HAS_PERIPH_USBDEV + select HAS_PERIPH_USBDEV_HS select HAS_PERIPH_USBDEV_HS_UTMI # Put other features for this board (in alphabetical order) diff --git a/boards/stm32f723e-disco/Makefile.features b/boards/stm32f723e-disco/Makefile.features index 45efd116ec..7ee69ea0c1 100644 --- a/boards/stm32f723e-disco/Makefile.features +++ b/boards/stm32f723e-disco/Makefile.features @@ -11,6 +11,7 @@ FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += periph_uart_hw_fc FEATURES_PROVIDED += periph_usbdev +FEATURES_PROVIDED += periph_usbdev_hs FEATURES_PROVIDED += periph_usbdev_hs_utmi # Put other features for this board (in alphabetical order) From aa125f50ab89e2fd0c91933bbfbade945cb8599a Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 7 Mar 2023 11:27:30 +0100 Subject: [PATCH 4/6] boards/stm32f746g-disco: add feature periph_usbdev_hs --- boards/stm32f746g-disco/Kconfig | 1 + boards/stm32f746g-disco/features-shared.mk | 1 + 2 files changed, 2 insertions(+) diff --git a/boards/stm32f746g-disco/Kconfig b/boards/stm32f746g-disco/Kconfig index 18fbf0842f..94adb26dbc 100644 --- a/boards/stm32f746g-disco/Kconfig +++ b/boards/stm32f746g-disco/Kconfig @@ -23,6 +23,7 @@ config BOARD_STM32F746G_DISCO select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + select HAS_PERIPH_USBDEV_HS select HAS_PERIPH_USBDEV_HS_ULPI select HAS_TINYUSB_DEVICE diff --git a/boards/stm32f746g-disco/features-shared.mk b/boards/stm32f746g-disco/features-shared.mk index ad20ec6fe5..7678cd7dca 100644 --- a/boards/stm32f746g-disco/features-shared.mk +++ b/boards/stm32f746g-disco/features-shared.mk @@ -9,5 +9,6 @@ FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += periph_usbdev +FEATURES_PROVIDED += periph_usbdev_hs FEATURES_PROVIDED += periph_usbdev_hs_ulpi FEATURES_PROVIDED += tinyusb_device From 4845ed04091f4a8977f8dc5d52a3834b3fee28d8 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 7 Mar 2023 11:27:48 +0100 Subject: [PATCH 5/6] boards/stm32f705-dk: add feature periph_usbdev_hs --- boards/stm32f7508-dk/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/boards/stm32f7508-dk/Kconfig b/boards/stm32f7508-dk/Kconfig index 5573789d53..7c0ee5a55f 100644 --- a/boards/stm32f7508-dk/Kconfig +++ b/boards/stm32f7508-dk/Kconfig @@ -23,6 +23,7 @@ config BOARD_STM32F7508_DK select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + select HAS_PERIPH_USBDEV_HS select HAS_PERIPH_USBDEV_HS_ULPI select HAS_TINYUSB_DEVICE From 4f49fc817c4362a372ef473a9192b08c01665131 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Tue, 7 Mar 2023 11:29:39 +0100 Subject: [PATCH 6/6] usbus/cdc/ecm: increase EP data size in HS mode CDC ECM driver/netdev is only working in High-Speed mode if the EP data size is at least 512 byte. --- sys/include/usb/usbus/cdc/ecm.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/include/usb/usbus/cdc/ecm.h b/sys/include/usb/usbus/cdc/ecm.h index f117a32271..40b46f785f 100644 --- a/sys/include/usb/usbus/cdc/ecm.h +++ b/sys/include/usb/usbus/cdc/ecm.h @@ -75,7 +75,11 @@ extern "C" { * * Used for the transfer of network frames. */ +#ifndef MODULE_PERIPH_USBDEV_HS #define USBUS_CDCECM_EP_DATA_SIZE 64 +#else +#define USBUS_CDCECM_EP_DATA_SIZE 512 +#endif /** * @brief notification state, used to track which information must be send to