Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boards: fix USB configuration for stm32f429i-disco #19437

Merged
merged 2 commits into from
Mar 31, 2023

Conversation

gschorcht
Copy link
Contributor

Contribution description

This PR fixes the problem that CDC ECM is not working for stm32f429i-disco.

With PR #19358, the EP data size for CDC ECM bulk endpoints was increased to 512 byte to fix the problem that CDC ECM was not working for boards with USB High-Speed peripherals. Module periph_usbdev_hs was introduced to indicate whether a high-speed peripheral is used.

However, the stm32f429i-disco board uses a mixture of USB OTG HS peripheral together with the on-hip FS PHY. Using the USB OTG HS peripheral together with a FS-PHY and increasing the EP data size for the CDC ECM bulk endpoint to 512 bytes doesn't work. Therefore, module periph_usbdev_hs is not used for now to workaround the problem. Thus, the maximum number of EPs used is that of the USB OTG FS peripheral, which is only 4. This is not sufficient for this test application since the board uses stdio_cdc_acm. The board is therefore blacklisted.

Testing procedure

Use a stm32f429i-disc1 or a stm32f429i-disco board and flash the test app:

USEMODULE=stdio_uart BOARD=stm32f429i-disco make -j8 -C tests/usbus_cdc_ecm flash

With this PR it should be possible to ping the board.

Issues/PRs references

The board uses the USB OTG HS peripheral together with the on-hip FS PHY. Using the `periph_usbdev_hs` module increases the EP data size for the CDC ECM bulk endpoint to 512 bytes, which does not work for the FS interface. Module `periph_usbdev_hs` is therefore not used.
The board no longer uses the `periph_usbdev_hs` module. Therefore, the maximum number of EPs used is that of the USB OTG FS peripheral, which is only 4. This is not sufficient for this test application since the board uses `stdio_cdc_acm`.
@github-actions github-actions bot added Area: boards Area: Board ports Area: Kconfig Area: Kconfig integration Area: tests Area: tests and testing framework labels Mar 31, 2023
@gschorcht gschorcht added Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Mar 31, 2023
@gschorcht gschorcht requested a review from bergzand March 31, 2023 10:33
@riot-ci
Copy link

riot-ci commented Mar 31, 2023

Murdock results

✔️ PASSED

281db4b tests/usbus_cdc_ecm: blacklist stm32f429i-disco

Success Failures Total Runtime
529 0 529 02m:46s

Artifacts

Copy link
Member

@bergzand bergzand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick 'fix'

bors merge

@bors
Copy link
Contributor

bors bot commented Mar 31, 2023

Build succeeded:

@bors bors bot merged commit e112749 into RIOT-OS:master Mar 31, 2023
@MrKevinWeiss MrKevinWeiss added this to the Release 2023.04 milestone Apr 25, 2023
@gschorcht gschorcht deleted the boards/fix_hs_stm32f429i-disco branch April 26, 2023 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports Area: Kconfig Area: Kconfig integration Area: tests Area: tests and testing framework CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants