Skip to main content

Module usb

Module usb 

Source

Modulesยง

frame_sched

Structsยง

Align64 ๐Ÿ”’
DmaBuffer ๐Ÿ”’
EnumeratedDevice
RndisPacketMsg
UsbHidDevice ๐Ÿ”’
UsbSetupPacket

Enumsยง

UsbDeviceKind

Constantsยง

GAHBCFG ๐Ÿ”’
GHWCFG2 ๐Ÿ”’
GINTMSK ๐Ÿ”’
GINTSTS ๐Ÿ”’
GNPTXFSIZ ๐Ÿ”’
GNPTXSTS ๐Ÿ”’
GOTGCTL ๐Ÿ”’
GOTGINT ๐Ÿ”’
GRSTCTL ๐Ÿ”’
GRXFSIZ ๐Ÿ”’
GRXSTSR ๐Ÿ”’
GSNPSID ๐Ÿ”’
GUSBCFG ๐Ÿ”’
HAINT ๐Ÿ”’
HAINTMSK ๐Ÿ”’
HCFG ๐Ÿ”’
HC_BASE ๐Ÿ”’
HFIR ๐Ÿ”’
HFNUM ๐Ÿ”’
HPRT0 ๐Ÿ”’
HPTXFSIZ ๐Ÿ”’
HUB_DESCRIPTOR_TYPE ๐Ÿ”’
HUB_FEATURE_C_PORT_CONNECTION ๐Ÿ”’
HUB_FEATURE_C_PORT_RESET ๐Ÿ”’
HUB_FEATURE_PORT_POWER ๐Ÿ”’
HUB_FEATURE_PORT_RESET ๐Ÿ”’
MAX_HID_DEVICES ๐Ÿ”’
PCGCCTL ๐Ÿ”’
USB_BASE ๐Ÿ”’

Staticsยง

CURRENT_HUB_PORT ๐Ÿ”’
CURRENT_HUB_PORT_SPEED ๐Ÿ”’
DEV_ADDR ๐Ÿ”’
DEV_HUB_ADDRS ๐Ÿ”’
DEV_HUB_PORTS ๐Ÿ”’
DEV_SPEED ๐Ÿ”’
DEV_SPEEDS ๐Ÿ”’
DMA_BUF ๐Ÿ”’
EP0_MPS ๐Ÿ”’
ETH_BULK_IN_TOGGLE ๐Ÿ”’
ETH_BULK_OUT_TOGGLE ๐Ÿ”’
ETH_POLL_CALLS
ใ€2026-08-05 ่จบๆ–ญใ€‘poll_ethernet_data_plane_only ใŒๅฎŸ้š›ใซๅƒใ„ใŸๅ›žๆ•ฐใ€‚
ETH_POLL_LOCK_MISS
USB_LOCK ใŒๅ–ใ‚Œใšใซ่ซฆใ‚ใŸๅ›žๆ•ฐใ€‚HID ๅดใจ็ซถใฃใฆใ„ใ‚‹ใ‹ใ‚’่ฆ‹ใ‚‹ใ€‚
ETH_POLL_US
ใใฎๅ†…ๅดใง่ฒปใ‚„ใ—ใŸใƒžใ‚คใ‚ฏใƒญ็ง’ใฎ็ดฏ่จˆใ€‚ๅ–ๅพ—ๆ™‚้–“ใจๆฏ”ในใฆๅพ‹้€Ÿใฎๅœจใ‚Šๅ‡ฆใ‚’ๆฑบใ‚ใ‚‹ใ€‚
ETH_RX_BUF ๐Ÿ”’
ETH_RX_LEN ๐Ÿ”’
HID_DEVICES ๐Ÿ”’
HID_DEVICE_COUNT ๐Ÿ”’
HID_EP_SIZE ๐Ÿ”’
HID_ETH_US
Core 1 ใฎ poll() ใŒ Ethernet ๅŽ็ฉซใซ่ฒปใ‚„ใ—ใŸใƒžใ‚คใ‚ฏใƒญ็ง’ใฎ็ดฏ่จˆใ€‚
HID_POLL_CALLS
ใ€2026-08-05 ่จบๆ–ญใ€‘Core 1 ใฎ poll() ใŒๅ›žใฃใŸๅ›žๆ•ฐใ€‚
HID_POLL_US
ใใฎใ†ใก HID ่ปข้€ใซ่ฒปใ‚„ใ—ใŸใƒžใ‚คใ‚ฏใƒญ็ง’ใฎ็ดฏ่จˆ๏ผˆUSB_LOCK ใ‚’ๆกใฃใŸใพใพ๏ผ‰ใ€‚
HUB_ADDR ๐Ÿ”’
HUB_EP0_MPS ๐Ÿ”’
HUB_PORT_COUNT ๐Ÿ”’
NEXT_DEVICE_ADDR ๐Ÿ”’
POLL_DIVIDER ๐Ÿ”’
POLL_THREAD_ACTIVE
RX_DMA_BUF ๐Ÿ”’
Ethernet bulk IN ๅฐ‚็”จ DMA ใƒใƒƒใƒ•ใ‚กใ€‚ RX ใฏใ€Œๅผตใ‚Šใฃใฑใชใ—ใ€(async) ้‹็”จใฎใŸใ‚ใ€TX/HID ใจๅ…ฑ็”จใ™ใ‚‹ใจไฟ็•™ไธญใฎ DMA ๆ›ธใ่พผใฟใจ่ก็ชใ™ใ‚‹ใ€‚
RX_FRAME_COUNT
RX_IN_FLIGHT_POLLS ๐Ÿ”’
ใ€2026-07-29่จบๆ–ญใ€‘USB Ethernet ใŒๅ—ไฟกใ—ใŸใƒ•ใƒฌใƒผใƒ ็ทๆ•ฐใ€‚ ใ€Œ1 ๅ›ž็›ฎใฏๆˆๅŠŸใ™ใ‚‹ใŒ 2 ๅ›ž็›ฎไปฅ้™ใŒๅคฑๆ•—ใ™ใ‚‹ใ€ไปถใงใ€ ใƒ•ใƒฌใƒผใƒ ใŒใใ‚‚ใใ‚‚ๅฑŠใ„ใฆใ„ใชใ„ใฎใ‹ใ‚’ๅˆ‡ใ‚Šๅˆ†ใ‘ใ‚‹ใŸใ‚ใซๆ•ฐใˆใ‚‹ใ€‚ ่ปข้€ไธญใฎใพใพใƒใƒผใƒชใƒณใ‚ฐใ—ใŸๅ›žๆ•ฐใ€‚ไธŠ้™ใ‚’่ถ…ใˆใŸใ‚‰ๅผทๅˆถๅ†ใ‚ขใƒผใƒ ใ™ใ‚‹ใ€‚
SETUP_BUF ๐Ÿ”’
TX_USB_FAIL
TX_USB_OK
ใ€2026-08-05 ่จบๆ–ญใ€‘USB ้€ไฟก๏ผˆใ‚คใƒผใ‚ตใƒใƒƒใƒˆใƒ•ใƒฌใƒผใƒ ๏ผ‰ใฎๆˆๅฆใ€‚
USB_LOCK ๐Ÿ”’

Functionsยง

delay_ms ๐Ÿ”’
enumerate_default_address_device ๐Ÿ”’ โš 
enumerate_hub_children ๐Ÿ”’ โš 
enumerate_root_device ๐Ÿ”’ โš 
force_release_locks
ใƒ‘ใƒ‹ใƒƒใ‚ฏๅ›žๅพฉ: ใ‚ณใ‚ข cid ใŒ USB_LOCK ใ‚’ไฟๆŒใ—ใฆใ„ใ‚Œใฐๅผทๅˆถ่งฃๆ”พใ™ใ‚‹ใ€‚
handle_keyboard_packet ๐Ÿ”’ โš 
handle_mouse_packet ๐Ÿ”’ โš 
handle_tablet_packet ๐Ÿ”’ โš 
hc_char ๐Ÿ”’
hc_dma ๐Ÿ”’
hc_int ๐Ÿ”’
hc_intmsk ๐Ÿ”’
hc_splt ๐Ÿ”’
hc_tsiz ๐Ÿ”’
hid_to_ps2 ๐Ÿ”’
USB HID ใ‚นใ‚ญใƒฃใƒณใ‚ณใƒผใƒ‰ใ‹ใ‚‰ PS/2 Set 1 ใ‚นใ‚ญใƒฃใƒณใ‚ณใƒผใƒ‰ใธใฎใƒžใƒƒใƒ”ใƒณใ‚ฐ
hub_clear_port_feature ๐Ÿ”’ โš 
hub_get_port_count ๐Ÿ”’ โš 
hub_get_port_status ๐Ÿ”’ โš 
hub_reset_port ๐Ÿ”’ โš 
hub_set_port_feature ๐Ÿ”’ โš 
init
DWC2 USBใƒ›ใ‚นใƒˆใ‚ณใƒณใƒˆใƒญใƒผใƒฉใฎๅˆๆœŸๅŒ–ใจใƒ‡ใƒใ‚คใ‚นๆคœๅ‡บ
parse_config_descriptor ๐Ÿ”’ โš 
poll
ๅฎšๆœŸ็š„ใซUSBใƒ‡ใƒใ‚คใ‚นใ‚’ใƒใƒผใƒชใƒณใ‚ฐใ—ใ€ๅ…ฅๅŠ›ใƒ‘ใ‚ฑใƒƒใƒˆใ‚’ INPUT_FIFO ใซ่ปข้€ใ—ใพใ™ ใ“ใฎ้–ขๆ•ฐใฏ main.rs ใฎใƒซใƒผใƒ—ๅ†…ใงๆฏŽใƒ•ใƒฌใƒผใƒ ๅฎŸ่กŒใ•ใ‚Œใพใ™
poll_ethernet_data_plane_only
ๅฎŸๆธฌ๏ผˆ2026-08-05ใ€sugi-lab.net ใฎ 3.7MB JPEG ๅ–ๅพ—ไธญ๏ผ‰
poll_usb_ethernet_data_plane ๐Ÿ”’ โš 
read_hprt0_safe ๐Ÿ”’ โš 
HPRT0 ใƒฌใ‚ธใ‚นใ‚ฟใ‚’ๅฎ‰ๅ…จใซ่ชญใฟๅ–ใ‚‹ใ€‚ HPRT0 ใซใฏ W1C (Write-1-to-Clear) ใƒ“ใƒƒใƒˆใŒๅซใพใ‚ŒใฆใŠใ‚Šใ€read-modify-write ใง ใ“ใ‚Œใ‚‰ใฎใƒ“ใƒƒใƒˆใ‚’ไธ็”จๆ„ใซๆ›ธใๆˆปใ™ใจใƒใƒผใƒˆใŒ็„กๅŠนๅŒ–ใ•ใ‚Œใ‚‹ใ€‚ bit1=PrtConnDet, bit2=PrtEna, bit3=PrtEnChng, bit5=PrtOvrCurrChng
register_hid_device ๐Ÿ”’ โš 
reset_device_state ๐Ÿ”’ โš 
resolve_split_target ๐Ÿ”’ โš 
ใ‚นใƒ—ใƒชใƒƒใƒˆ่ปข้€ใฎๅฎ›ๅ…ˆ (Transaction Translator ใ‚’ๆŒใค็›ด่ฟ‘ใฎ HS ใƒใƒ–) ใ‚’่งฃๆฑบใ™ใ‚‹ใ€‚ USB ใฎใƒˆใƒใƒญใ‚ธ่ฆๅ‰‡ไธŠใ€้ž HS (FS/LS) ใงๅ‹•ไฝœใ—ใฆใ„ใ‚‹ใƒใƒ–ใฏ TT ใ‚’ๆŒใŸใชใ„ใŸใ‚ใ€ ใใฎ้…ไธ‹ใฎใƒ‡ใƒใ‚คใ‚นใธใฎใ‚นใƒ—ใƒชใƒƒใƒˆ่ปข้€ใฏใ€ใใฎใƒใƒ–ใงใฏใชใใ•ใ‚‰ใซไธŠๆตใฎ็›ด่ฟ‘ใฎ HS ใƒใƒ–ใ‚’ๅฎ›ๅ…ˆใซใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใ€‚ไธญ้–“ใƒใƒ–ใ‚’่พฟใฃใฆ HS ใƒใƒ–ใซๅˆฐ้”ใ™ใ‚‹ใพใง้กใ‚‹ใ€‚
select_control_target ๐Ÿ”’ โš 
usb_control_transfer ๐Ÿ”’ โš 
USBใ‚ณใƒณใƒˆใƒญใƒผใƒซ่ปข้€ใฎๅฎŸ่กŒ (SETUP, DATA, STATUSใฎ3ใ‚นใƒ†ใƒผใ‚ธ)
usb_transfer ๐Ÿ”’ โš 
ใƒ›ใ‚นใƒˆใƒใƒฃใƒใƒซใ‚’ไฝฟใฃใŸ1ใคใฎUSB่ปข้€๏ผˆใƒˆใƒฉใƒณใ‚ถใ‚ฏใ‚ทใƒงใƒณ๏ผ‰ใฎ็™บ่กŒ ch: ใƒใƒฃใƒใƒซ็•ชๅท, ep: ใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆ, dev_addr: ใƒ‡ใƒใ‚คใ‚นใ‚ขใƒ‰ใƒฌใ‚น, pid: PID(0=DATA0, 2=DATA1, 3=SETUP), dir_in: ่ปข้€ๆ–นๅ‘(true=IN, false=OUT), len: ่ปข้€ใ‚ตใ‚คใ‚บ
wait_bit_clear ๐Ÿ”’ โš 
ๆŒ‡ๅฎšใƒฌใ‚ธใ‚นใ‚ฟใฎ mask ใƒ“ใƒƒใƒˆใŒใ™ในใฆใ‚ฏใƒชใ‚ขใ•ใ‚Œใ‚‹ใพใงๅฎŸๆ™‚้–“ใงๅพ…ใคใ€‚
wait_bit_set ๐Ÿ”’ โš 
ๆŒ‡ๅฎšใƒฌใ‚ธใ‚นใ‚ฟใฎ mask ใƒ“ใƒƒใƒˆใŒใ™ในใฆใ‚ปใƒƒใƒˆใ•ใ‚Œใ‚‹ใพใงๅฎŸๆ™‚้–“ใงๅพ…ใคใ€‚ timeout_ms ไปฅๅ†…ใซๆˆ็ซ‹ใ™ใ‚Œใฐ trueใ€ใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆใชใ‚‰ false๏ผˆuspi ใฎ WaitForBit ็›ธๅฝ“๏ผ‰ใ€‚ ๅๅพฉๅ›žๆ•ฐใƒ™ใƒผใ‚นใฎๅพ…ใกใฏ CPU ใ‚ฏใƒญใƒƒใ‚ฏไพๅญ˜ใงๅฎŸๆฉŸ 1.4GHz ใงใฏๆ—ฉๆœŸใซๅฐฝใใ‚‹ใŸใ‚ไฝฟใ‚ใชใ„ใ€‚