Skip to content

usbd_mini: restore FreeUsbd for WoC USB regression (#908) - #911

Open
horizonends wants to merge 1 commit into
ps2dev:masterfrom
horizonends:fix/usbd-mini-freeusbd
Open

usbd_mini: restore FreeUsbd for WoC USB regression (#908)#911
horizonends wants to merge 1 commit into
ps2dev:masterfrom
horizonends:fix/usbd-mini-freeusbd

Conversation

@horizonends

Copy link
Copy Markdown

Summary

  • Restore FreeUsbd (ps2sdk @2dc6b32f, pre-b1f7ff96) as the implementation of usbd_mini only
  • Leave full iop/usb/usbd on the SCE rewrite (HID report descriptors, multi-isochronous, etc.)
  • Keep export table at usbd 1.2 with stubs for usbdReboot / sceUsbdGetReportDescriptor / sceUsbdMultiIsochronousTransfer (USB_RC_NOSUPPORT / no-op)

Fixes the hardware regression in #908: Crash Bandicoot: Wrath of Cortex over USB in OPL (embeds usbd_mini). Symptom: mid-transfer hang with fail_count=0 (TD submitted, completion never wakes). Standalone usbstress does not reproduce.

Isolation

usbd usbmass WoC USB
rewrite modern fail
FreeUsbd (pre-b1f7ff96) old works
FreeUsbd modern works

So modern usbmass_bd is fine; the rewrite’s usbd_mini path is not. Many FreeUsbd-vs-rewrite A/Bs on the rewrite were tried (HCD bring-up, WDH/DoneHead, dual TD queues, embedded ED, hub flush, SetAddress timing, attach/transferedBytes, timer delay-=1, etc.) — none restore play after the cutscene. Dead list on #908.

This does not claim to fix the rewrite; it restores the known-good driver for the mini module OPL actually ships.

Related

Test plan

  • make -C iop/usb/usbd_mini builds
  • OPL Beta-2245 tree + this usbd_mini + SDK usbmass_bd_miniOPNPS2LD-freeusbd-mini.ELF staged for hardware
  • Hardware: WoC USB past cutscene on PAL slim (same as known-good old-usbd pin)
  • Spot-check USB mass still enumerates in OPL menu

OPL embeds usbd_mini; the post-b1f7ff96 rewrite breaks Wrath of Cortex
over USB (TD completes never wake WaitSema). Hardware shows old FreeUsbd
usbd + modern usbmass works. Give usbd_mini its own FreeUsbd sources
(from 2dc6b32) and keep the SCE rewrite for full usbd. Export table
stays 1.2 with stubs for reboot/report/multi-isoc.
@horizonends

Copy link
Copy Markdown
Author

Hardware confirm: OPL with this usbd_mini + current SDK usbmass_bd_mini — Crash Bandicoot: Wrath of Cortex over USB on PAL slim plays past the cutscene (same as the known-good old-usbd pin).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant