I'm working on a raw, x86 real-mode USB access project. This involves a custom bootsector, 2nd stage bootloader, and some trivial hardware drivers.
End goal is to provide a product that boots, sends data over USB interface, receives data over USB interface, and prints result value to screen. I have everything but USB access finished.
I've already discovered that BIOS does NOT provide access to onboard USB. I've been through dozens of sites from osdevver to brokenthorn. I've even looked at the USB 2.0 specification.
Nobody, nowhere, gives any relevant or useful information about directly accessing a USB Root Hub using x86 Assembly in x86 Real Mode without going through some preexisting operating system.
Isn't there a standard IN/OUT port set for USB Root Hubs? And if there is, where exactly is the documentation specifying the standard communication that allows software to tell the Hub what data to send and what connected device to send that data to?