-
Notifications
You must be signed in to change notification settings - Fork 398
C5: Enable UHCI #4967
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
base: main
Are you sure you want to change the base?
C5: Enable UHCI #4967
Conversation
3fdac84 to
c426a36
Compare
|
/hil esp32c5 |
|
Triggered HIL run for #4967 (chips: esp32c5). Run: https://github.com/esp-rs/esp-hal/actions/runs/21954484302 Status update: ✅ HIL (per-chip) run succeeded. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Enables UHCI support for ESP32-C5 by adding UHCI device metadata (including C5’s combined UART selector field behavior) and updating the HAL/test gating to use a new uhci_driver_supported cfg.
Changes:
- Add UHCI driver metadata + per-chip support status, including a C5-specific
combined_uart_selector_fieldproperty. - Extend
for_each_uart!metadata to include a numeric UART ID and update UHCI UART-selection logic to use either bitflags or a combined selector field depending on chip cfg. - Enable the UHCI0 peripheral/clock on ESP32-C5 and adjust HIL UART test gating to the new UHCI driver cfg.
Reviewed changes
Copilot reviewed 24 out of 25 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| hil-test/src/bin/uart.rs | Gates UHCI HIL tests on uhci_driver_supported. |
| esp-metadata/src/cfg/uart.rs | Adds $id:literal (enumerated index) to for_each_uart! token list + docs. |
| esp-metadata/src/cfg.rs | Introduces UhciProperties config group and property schema. |
| esp-metadata/devices/esp32s3.toml | Adds [device.uhci] support status. |
| esp-metadata/devices/esp32s2.toml | Adds [device.uhci] support status. |
| esp-metadata/devices/esp32h2.toml | Adds [device.uhci] support status. |
| esp-metadata/devices/esp32c6.toml | Adds [device.uhci] support status. |
| esp-metadata/devices/esp32c5.toml | Enables UHCI0 peripheral + clock node; adds [device.uhci] with C5 selector property. |
| esp-metadata/devices/esp32c3.toml | Adds [device.uhci] support status. |
| esp-metadata/devices/esp32.toml | Adds [device.uhci] support status. |
| esp-metadata-generated/src/_generated_esp32s3.rs | Regenerates properties + for_each_uart! signature including $id. |
| esp-metadata-generated/src/_generated_esp32s2.rs | Regenerates properties + for_each_uart! signature including $id. |
| esp-metadata-generated/src/_generated_esp32h2.rs | Regenerates properties + for_each_uart! signature including $id. |
| esp-metadata-generated/src/_generated_esp32c6.rs | Regenerates properties + for_each_uart! signature including $id. |
| esp-metadata-generated/src/_generated_esp32c5.rs | Adds UHCI peripheral/clock plumbing + properties + updated for_each_uart!. |
| esp-metadata-generated/src/_generated_esp32c3.rs | Regenerates properties + for_each_uart! signature including $id. |
| esp-metadata-generated/src/_generated_esp32c2.rs | Regenerates for_each_uart! signature including $id (no UHCI properties). |
| esp-metadata-generated/src/_generated_esp32.rs | Regenerates properties + for_each_uart! signature including $id. |
| esp-metadata-generated/src/_build_script_utils.rs | Emits new cfgs (uhci_driver_supported, soc_has_uhci0, uhci_combined_uart_selector_field). |
| esp-hal/src/uart/uhci.rs | Updates UART selection logic to handle combined selector field via cfg. |
| esp-hal/src/uart/mod.rs | Moves UHCI module behind unstable_driver! + #[cfg(uhci_driver_supported)]; updates for_each_uart! matcher signature. |
| esp-hal/src/lib.rs | Re-exports unstable_driver macro for use as crate::unstable_driver!. |
| esp-hal/src/dma/mod.rs | Adjusts expect(dead_code) cfg for DmaTxFuture::new. |
| esp-hal/README.md | Updates machine-generated peripheral support table to include UHCI (currently mislabeled). |
| esp-hal/CHANGELOG.md | Adds PR reference to “C5: Initial UART support” entry. |
C5 has a slightly different UART selector (single field contains UART ID instead of one bit per UART). PR marks UHCI support as a separate line in the readme.