Hi, I’m investigating USB boot from JetKVM on a Raspberry Pi 5 with U-Boot v2026.10-rc3. JetKVM is a KVM-over-IP device that presents keyboard/mouse HID interfaces and virtual mass storage over a single composite USB connection.
In the device layout that comes stock with the JetKVM, storage is at interface 4. The Pi firmware can load U-Boot from it, but U-Boot doesn’t discover the storage. Moving storage to interface 0 allows USB EFI boot. In usb_scan_device(), both usb_find_child() and usb_find_and_bind_driver() receive the first interface descriptor, and one driver is bound to the device. I found the Apple keyboard workaround for selecting a later interface, but haven’t found an example of binding both keyboard and storage drivers to one composite device. Is supporting these functions together within the intended scope of U-Boot’s USB host stack? The storage driver also assumes interface 0, and xHCI initializes only the first two interfaces, but I’d like to understand the intended binding model first. AI tools assisted in the investigation and drafting of this message. I have personally read and understood relevant parts of the code mentioned above. Kalle Ahlström
