hn.today

Bringing USB 3 and USB4/Thunderbolt to Windows 98 to 7

yeokhengmeng.com3 points0 comments
Screenshot of Bringing USB 3 and USB4/Thunderbolt to Windows 98 to 7

xHCI98 is a complete reimplementation of the Windows host controller driver stack that brings true USB 3.x speeds and USB4/Thunderbolt support to Windows 98 SE through Windows 7. The earlier approach used a usbport.sys miniport and intentionally limited controllers to USB 2.0 because usbport.sys has no SuperSpeed concept, which forced awkward workarounds like virtual hubs and speed misreporting. Version 2 replaces usbport.sys, usbhub.sys and related helpers with a single bus driver (xhci98.sys), an xhciuas.sys UAS class driver and a small x86 helper so one binary supports Win98 SE-7 (with a separate x64 build for 64-bit OSes). The new stack powers SuperSpeed ports, supports UAS for modern storage, and preserves compatibility with existing class drivers so third-party drivers still work; Device Manager still labels devices "High Speed" because older OS interfaces predate SuperSpeed.

Real-world hardware revealed many edge cases that shaped the implementation. Shared Intel ports that boot on EHCI are flipped to xHCI by writing USB3_PSSEN and XUSB2PR PCI registers; BIOS IRQ routing bugs (e.g., Dell E7250) required polled event delivery and use of MSI on Vista/7; Sunrise Point controllers publish nonstandard speed tables that needed fallback handling; and many controllers require Linux-style tolerance and vendor-specific quirks (Fresco, ASMedia, AMD, TI, Etron, VIA, etc.). For USB4/Thunderbolt the approach included building an emulator, capturing the laptop’s controller behavior, and writing Stor98 to support hot-pluggable NVMe devices. AI was used for diagrams and build assistance.

Read on yeokhengmeng.com0 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Hardware

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.