47 virtual bool sendCommand(
size_t nUnit, uintptr_t pCommand, uint8_t nCommandSize,
48 uintptr_t pRespBuffer, uint16_t nRespBytes,
bool bWrite);
50 virtual void getUsbDeviceName(
String& str) {
51 str.assign(
"USB Mass Storage Device", 24);
63#if (HOSTED && PEDIGREE_HOSTED_SMOKE_TESTS) || PEDIGREE_USB_SMOKE_TESTS
67 enum class BotStatus { Passed, Failed, RecoveryRequired };
69 bool massStorageReset();
71 MUST_USE_RESULT BotStatus readStatus(uint32_t tag, uint32_t expectedBytes);
73 enum MassStorageRequests {
74 MassStorageRequest =
static_cast<uint8_t
>(
static_cast<uint8_t
>(UsbRequestType::Class) |
75 static_cast<uint8_t
>(UsbRequestRecipient::Interface)),
77 MassStorageReset = 0xFF,
78 MassStorageGetMaxLUN = 0xFE
81 enum MassStorageSigs {
82 CbwSig = HOST_TO_LITTLE32(0x43425355),
83 CswSig = HOST_TO_LITTLE32(0x53425355)
103 static_assert(
sizeof(
Cbw) == 31,
"BOT CBW wire size changed");
104 static_assert(
sizeof(
Csw) == 13,
"BOT CSW wire size changed");
111 bool m_ResetRecoveryRequired;
112 bool m_DeviceAvailable;
115 virtual size_t getNumUnits() {