capsule_driver_usb_msc has no USB transport, so real USB flash drives and external SSDs do not work. Its Cargo.toml has no xhci dependency; it only builds/decodes CBW, CSW and SCSI CDBs into IPC messages (bot/cbw.rs, bot/csw.rs, scsi/*, server/handlers/build_read.rs:30 writes a CBW into the reply and returns). There is no Bulk-Only Transport loop (bulk-OUT CBW, bulk data stage, bulk-IN CSW), no bulk endpoint rings, no clear-stall recovery.
It is a protocol codec waiting for a transport. Widening: add an xhci client like usb_hid's, enumerate the MSC interface, allocate bulk-IN/OUT rings, and drive the CBW/data/CSW state machine (state/ops.rs already models the states) over real transfers.
capsule_driver_usb_msc has no USB transport, so real USB flash drives and external SSDs do not work. Its Cargo.toml has no xhci dependency; it only builds/decodes CBW, CSW and SCSI CDBs into IPC messages (bot/cbw.rs, bot/csw.rs, scsi/*, server/handlers/build_read.rs:30 writes a CBW into the reply and returns). There is no Bulk-Only Transport loop (bulk-OUT CBW, bulk data stage, bulk-IN CSW), no bulk endpoint rings, no clear-stall recovery.
It is a protocol codec waiting for a transport. Widening: add an xhci client like usb_hid's, enumerate the MSC interface, allocate bulk-IN/OUT rings, and drive the CBW/data/CSW state machine (state/ops.rs already models the states) over real transfers.