mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-17 02:23:49 +01:00
Merge #19358
19358: sys/usbus/cdc/ecm: fix High-Speed mode r=dylad a=gschorcht ### Contribution description This PR provides some changes to fix the USBUS CDC ECM interface in High-Speed mode. In High-Speed mode, the EP data size has to be at least 512 bytes instead of 64 Byte in Full-Speed mode. 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`/`HAD_PERIPH_USBDEV_HS` is introduced. ### Testing procedure Use `tests/usbus_cdc_ecm` and any board with USB HS connector, for example: ``` USEMODULE=periph_usbdev_hs_utmi BOARD=stm32f723e-disco make -j8 -C tests/usbus_cdc_ecm flash ``` `ping` command works with this PR but doesn't work without this PR. ### Issues/PRs references Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
This commit is contained in:
commit
6c1de71606
@ -22,6 +22,7 @@ config BOARD_STM32F723E_DISCO
|
|||||||
select HAS_PERIPH_UART
|
select HAS_PERIPH_UART
|
||||||
select HAS_PERIPH_UART_HW_FC
|
select HAS_PERIPH_UART_HW_FC
|
||||||
select HAS_PERIPH_USBDEV
|
select HAS_PERIPH_USBDEV
|
||||||
|
select HAS_PERIPH_USBDEV_HS
|
||||||
select HAS_PERIPH_USBDEV_HS_UTMI
|
select HAS_PERIPH_USBDEV_HS_UTMI
|
||||||
|
|
||||||
# Put other features for this board (in alphabetical order)
|
# Put other features for this board (in alphabetical order)
|
||||||
|
|||||||
@ -11,6 +11,7 @@ FEATURES_PROVIDED += periph_timer
|
|||||||
FEATURES_PROVIDED += periph_uart
|
FEATURES_PROVIDED += periph_uart
|
||||||
FEATURES_PROVIDED += periph_uart_hw_fc
|
FEATURES_PROVIDED += periph_uart_hw_fc
|
||||||
FEATURES_PROVIDED += periph_usbdev
|
FEATURES_PROVIDED += periph_usbdev
|
||||||
|
FEATURES_PROVIDED += periph_usbdev_hs
|
||||||
FEATURES_PROVIDED += periph_usbdev_hs_utmi
|
FEATURES_PROVIDED += periph_usbdev_hs_utmi
|
||||||
|
|
||||||
# Put other features for this board (in alphabetical order)
|
# Put other features for this board (in alphabetical order)
|
||||||
|
|||||||
@ -23,6 +23,7 @@ config BOARD_STM32F746G_DISCO
|
|||||||
select HAS_PERIPH_TIMER
|
select HAS_PERIPH_TIMER
|
||||||
select HAS_PERIPH_UART
|
select HAS_PERIPH_UART
|
||||||
select HAS_PERIPH_USBDEV
|
select HAS_PERIPH_USBDEV
|
||||||
|
select HAS_PERIPH_USBDEV_HS
|
||||||
select HAS_PERIPH_USBDEV_HS_ULPI
|
select HAS_PERIPH_USBDEV_HS_ULPI
|
||||||
select HAS_TINYUSB_DEVICE
|
select HAS_TINYUSB_DEVICE
|
||||||
|
|
||||||
|
|||||||
@ -9,5 +9,6 @@ FEATURES_PROVIDED += periph_spi
|
|||||||
FEATURES_PROVIDED += periph_timer
|
FEATURES_PROVIDED += periph_timer
|
||||||
FEATURES_PROVIDED += periph_uart
|
FEATURES_PROVIDED += periph_uart
|
||||||
FEATURES_PROVIDED += periph_usbdev
|
FEATURES_PROVIDED += periph_usbdev
|
||||||
|
FEATURES_PROVIDED += periph_usbdev_hs
|
||||||
FEATURES_PROVIDED += periph_usbdev_hs_ulpi
|
FEATURES_PROVIDED += periph_usbdev_hs_ulpi
|
||||||
FEATURES_PROVIDED += tinyusb_device
|
FEATURES_PROVIDED += tinyusb_device
|
||||||
|
|||||||
@ -23,6 +23,7 @@ config BOARD_STM32F7508_DK
|
|||||||
select HAS_PERIPH_TIMER
|
select HAS_PERIPH_TIMER
|
||||||
select HAS_PERIPH_UART
|
select HAS_PERIPH_UART
|
||||||
select HAS_PERIPH_USBDEV
|
select HAS_PERIPH_USBDEV
|
||||||
|
select HAS_PERIPH_USBDEV_HS
|
||||||
select HAS_PERIPH_USBDEV_HS_ULPI
|
select HAS_PERIPH_USBDEV_HS_ULPI
|
||||||
select HAS_TINYUSB_DEVICE
|
select HAS_TINYUSB_DEVICE
|
||||||
|
|
||||||
|
|||||||
@ -142,10 +142,16 @@ endif
|
|||||||
|
|
||||||
ifneq (,$(filter periph_usbdev_hs_ulpi,$(USEMODULE)))
|
ifneq (,$(filter periph_usbdev_hs_ulpi,$(USEMODULE)))
|
||||||
FEATURES_REQUIRED += periph_usbdev_hs_ulpi
|
FEATURES_REQUIRED += periph_usbdev_hs_ulpi
|
||||||
|
USEMODULE += periph_usbdev_hs
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq (,$(filter periph_usbdev_hs_utmi,$(USEMODULE)))
|
ifneq (,$(filter periph_usbdev_hs_utmi,$(USEMODULE)))
|
||||||
FEATURES_REQUIRED += periph_usbdev_hs_utmi
|
FEATURES_REQUIRED += periph_usbdev_hs_utmi
|
||||||
|
USEMODULE += periph_usbdev_hs
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq (,$(filter periph_usbdev_hs,$(USEMODULE)))
|
||||||
|
FEATURES_REQUIRED += periph_usbdev_hs
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq (,$(filter pn532_i2c,$(USEMODULE)))
|
ifneq (,$(filter pn532_i2c,$(USEMODULE)))
|
||||||
|
|||||||
@ -424,6 +424,11 @@ config HAS_PERIPH_USBDEV
|
|||||||
help
|
help
|
||||||
Indicates that an USBDEV peripheral is present.
|
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
|
config HAS_PERIPH_USBDEV_HS_UTMI
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
|
|||||||
@ -76,7 +76,11 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* Used for the transfer of network frames.
|
* Used for the transfer of network frames.
|
||||||
*/
|
*/
|
||||||
|
#ifndef MODULE_PERIPH_USBDEV_HS
|
||||||
#define USBUS_CDCECM_EP_DATA_SIZE 64
|
#define USBUS_CDCECM_EP_DATA_SIZE 64
|
||||||
|
#else
|
||||||
|
#define USBUS_CDCECM_EP_DATA_SIZE 512
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Full ethernet frame rounded up to a whole number of transfers
|
* @brief Full ethernet frame rounded up to a whole number of transfers
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user