It's a shame really that ULPI is such a complicated interface, at least compared to RMII or SDIO, otherwise you could just buy a high speed USB ULPI phy and use it with the RP2350 via PIO. Eben even mentioned at some point someone working on a PIO ULPI implementation, but I'm assuming that went nowhere because they couldn't make it work reliably.
An alternative approach I've been considering is using a ch32v305 as a "smart" USB-HS bridge, and connecting the RP2350 via SDIO to it. The problem with that of course is you have to implement most of the USB stack on the ch32v305, and the documentation on those chips isn't great to put it mildly.
edit: whoops, that's bytes not bits per second
It also bears pointing out these microcontrollers have built-in parallel memory interface buses, which are likely compatible with IDE (which is just ISA == the 8088/8086 parallel bus on a cable.) With DMA, ketchup and fries…
cy4611b___usb_2_0_usb_to_ata_reference_design https://www.farnell.com/datasheets/62992.pdf Back around 2005 a lot of USB HDD enclosures used this exact chip.
All the above needs is LBA to CHS translation.
I intentionally did not suggest those because dealing with an 8051 isn't something I'd inflict even on my worst enemy, let alone an open source hobby project.
That said if it's vibe coded I guess the AI can deal with it? shrug
If not, it should be easy to bootstrap one.
surely armed with a C compiler + LLM, this is a non problem nowadays?