Skip to content

enable dedicated hwfifo for rp2#3451

Merged
hathach merged 2 commits into
masterfrom
rp2-hwfifo
Jan 12, 2026
Merged

enable dedicated hwfifo for rp2#3451
hathach merged 2 commits into
masterfrom
rp2-hwfifo

Conversation

@hathach
Copy link
Copy Markdown
Owner

@hathach hathach commented Jan 9, 2026

enable dedicated hwfifo for rp2 port

Copilot AI review requested due to automatic review settings January 9, 2026 11:41
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c86cbdc82

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/portable/raspberrypi/rp2040/rp2040_usb.c
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request enables dedicated hardware FIFO support for the RP2040 microcontroller, allowing more efficient USB data transfers by utilizing hardware FIFO buffers with byte-stride access.

Key changes:

  • Adds RP2040-specific hardware FIFO configuration with byte-level access patterns
  • Implements FIFO-based transfer mode alongside existing buffer-based transfers
  • Reorganizes USB IP configuration sections in tusb_option.h for better clarity

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/tusb_option.h Reorganizes USB IP sections and adds RP2040 hardware FIFO configuration with byte-stride access
src/portable/raspberrypi/rp2040/rp2040_usb.h Adds FIFO support to hw_endpoint struct with union for buffer/FIFO modes and updates function signatures
src/portable/raspberrypi/rp2040/rp2040_usb.c Implements custom FIFO read/write functions and updates transfer logic to support both buffer and FIFO modes
src/portable/raspberrypi/rp2040/hcd_rp2040.c Updates hw_endpoint_xfer_start calls to pass NULL for FIFO parameter (buffer mode)
src/portable/raspberrypi/rp2040/dcd_rp2040.c Adds dcd_edpt_xfer_fifo function and updates existing dcd_edpt_xfer to pass NULL for FIFO parameter
src/common/tusb_fifo.c Enhances stride_write/stride_read with byte-level access support and optimizes wrap-around handling for byte-stride

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 9, 2026

Size Difference Report

Because TinyUSB code size varies by port and configuration, the metrics below represent the averaged totals across all example builds.

Note: If there is no change, only one value is shown.

Changes >1% in size

file .text .rodata .data .bss size % diff
rp2040_usb.c 120 ➙ 172 (+52) 75 676 ➙ 718 (+42) 4 875 ➙ 969 (+94) +10.7%
TOTAL 120 ➙ 172 (+52) 75 676 ➙ 718 (+42) 4 875 ➙ 969 (+94) +10.7%

Changes <1% in size

file .text .rodata .data .bss size % diff
audio_device.c 2850 ➙ 2849 (-1) 0 1248 1677 ➙ 1673 (-4) 4522 ➙ 4518 (-4) -0.1%
cdc_device.c 1328 16 19 664 ➙ 661 (-3) 1991 ➙ 1988 (-3) -0.2%
dcd_rp2040.c 838 ➙ 859 (+21) 20 604 655 2117 ➙ 2138 (+21) +1.0%
hcd_rp2040.c 988 ➙ 976 (-12) 73 416 384 1861 ➙ 1849 (-12) -0.6%
midi_device.c 1127 0 991 591 ➙ 589 (-2) 1716 ➙ 1714 (-2) -0.1%
tusb_fifo.c 846 ➙ 843 (-3) 0 477 0 840 ➙ 838 (-2) -0.2%
usbd.c 3177 57 89 276 3517 ➙ 3518 (+1) +0.0%
vendor_device.c 634 0 538 466 ➙ 464 (-2) 1099 ➙ 1097 (-2) -0.2%
TOTAL 11788 ➙ 11793 (+5) 166 4382 4713 ➙ 4702 (-11) 17663 ➙ 17660 (-3) -0.0%
No changes
file .text .rodata .data .bss size % diff
cdc_host.c 6596 487 15 1539 8357 +0.0%
dcd_ch32_usbfs.c 1472 0 0 2444 3916 +0.0%
dcd_ch32_usbhs.c 1648 0 0 448 2096 +0.0%
dcd_ci_fs.c 1925 0 0 1290 3215 +0.0%
dcd_ci_hs.c 1762 0 0 1280 2530 +0.0%
dcd_da146xx.c 3067 0 0 144 3211 +0.0%
dcd_dwc2.c 4101 24 0 263 4387 +0.0%
dcd_eptri.c 2270 0 0 259 2529 +0.0%
dcd_khci.c 1953 0 0 1290 3243 +0.0%
dcd_lpc17_40.c 1470 0 0 648 1794 +0.0%
dcd_lpc_ip3511.c 1463 0 0 264 1639 +0.0%
dcd_mm32f327x_otg.c 1478 0 0 1290 2768 +0.0%
dcd_msp430x5xx.c 1796 0 0 176 1972 +0.0%
dcd_musb.c 2079 0 0 160 2239 +0.0%
dcd_nrf5x.c 2919 0 0 292 3211 +0.0%
dcd_nuc120.c 1093 0 0 78 1171 +0.0%
dcd_nuc121.c 1167 0 0 101 1268 +0.0%
dcd_nuc505.c 0 0 1529 157 1686 +0.0%
dcd_rusb2.c 2917 0 0 156 3073 +0.0%
dcd_samd.c 1032 0 0 266 1298 +0.0%
dcd_samg.c 1319 0 0 72 1391 +0.0%
dcd_stm32_fsdev.c 2556 0 0 291 2847 +0.0%
dfu_device.c 744 28 712 183 926 +0.0%
dfu_rt_device.c 156 0 134 0 156 +0.0%
dwc2_common.c 582 29 0 0 597 +0.0%
ecm_rndis_device.c 1037 0 1 2272 3310 +0.0%
ehci.c 2761 0 0 5970 7537 +0.0%
fsdev_common.c 180 0 0 0 180 +0.0%
hcd_ch32_usbfs.c 2484 0 0 498 2982 +0.0%
hcd_ci_hs.c 190 0 0 0 190 +0.0%
hcd_dwc2.c 4893 30 0 512 5434 +0.0%
hcd_khci.c 2442 0 0 449 2891 +0.0%
hcd_musb.c 3073 0 0 157 3230 +0.0%
hcd_pio_usb.c 262 0 240 0 502 +0.0%
hcd_rusb2.c 2923 0 0 245 3168 +0.0%
hcd_samd.c 2220 0 0 324 2544 +0.0%
hcd_stm32_fsdev.c 3282 0 1 420 3703 +0.0%
hid_device.c 1118 44 997 115 1233 +0.0%
hid_host.c 1206 0 0 1250 2456 +0.0%
hub.c 1235 8 8 29 1268 +0.0%
midi_host.c 1353 7 7 3740 5097 +0.0%
msc_device.c 2503 108 2274 538 3041 +0.0%
msc_host.c 1589 0 0 394 1984 +0.0%
mtp_device.c 1619 22 1385 579 2205 +0.0%
ncm_device.c 1514 28 1408 5830 7358 +0.0%
ohci.c 1942 0 0 2414 4356 +0.0%
rusb2_common.c 160 0 16 0 176 +0.0%
tusb.c 417 0 359 3 419 +0.0%
typec_stm32.c 820 8 2 12 842 +0.0%
usbc.c 420 2 20 166 608 +0.0%
usbd_control.c 523 0 474 78 600 +0.0%
usbh.c 4374 60 63 954 5415 +0.0%
usbtmc_device.c 2176 24 69 291 2500 +0.0%
video_device.c 4391 5 1851 472 4855 +0.0%
TOTAL 100672 914 11565 40803 141604 +0.0%

@hathach hathach merged commit 80b2078 into master Jan 12, 2026
156 checks passed
@hathach hathach deleted the rp2-hwfifo branch January 12, 2026 03:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants