Prusa MINI Firmware overview
|
Go to the documentation of this file.
29 #ifndef MS_WANT_PARSER
30 #define MS_WANT_PARSER 0
35 #define bmREQ_MASSOUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
36 #define bmREQ_MASSIN USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
39 #define MASS_SUBCLASS_SCSI_NOT_REPORTED 0x00 // De facto use
40 #define MASS_SUBCLASS_RBC 0x01
41 #define MASS_SUBCLASS_ATAPI 0x02 // MMC-5 (ATAPI)
42 #define MASS_SUBCLASS_OBSOLETE1 0x03 // Was QIC-157
43 #define MASS_SUBCLASS_UFI 0x04 // Specifies how to interface Floppy Disk Drives to USB
44 #define MASS_SUBCLASS_OBSOLETE2 0x05 // Was SFF-8070i
45 #define MASS_SUBCLASS_SCSI 0x06 // SCSI Transparent Command Set
46 #define MASS_SUBCLASS_LSDFS 0x07 // Specifies how host has to negotiate access before trying SCSI
47 #define MASS_SUBCLASS_IEEE1667 0x08
50 #define MASS_PROTO_CBI 0x00 // CBI (with command completion interrupt)
51 #define MASS_PROTO_CBI_NO_INT 0x01 // CBI (without command completion interrupt)
52 #define MASS_PROTO_OBSOLETE 0x02
53 #define MASS_PROTO_BBB 0x50 // Bulk Only Transport
54 #define MASS_PROTO_UAS 0x62
57 #define MASS_REQ_ADSC 0x00
58 #define MASS_REQ_GET 0xFC
59 #define MASS_REQ_PUT 0xFD
60 #define MASS_REQ_GET_MAX_LUN 0xFE
61 #define MASS_REQ_BOMSR 0xFF // Bulk-Only Mass Storage Reset
63 #define MASS_CBW_SIGNATURE 0x43425355
64 #define MASS_CSW_SIGNATURE 0x53425355
66 #define MASS_CMD_DIR_OUT 0 // (0 << 7)
67 #define MASS_CMD_DIR_IN 0x80 //(1 << 7)
77 #define SCSI_CMD_TEST_UNIT_READY 0x00
78 #define SCSI_CMD_REQUEST_SENSE 0x03
79 #define SCSI_CMD_FORMAT_UNIT 0x04
80 #define SCSI_CMD_READ_6 0x08
81 #define SCSI_CMD_WRITE_6 0x0A
82 #define SCSI_CMD_INQUIRY 0x12
83 #define SCSI_CMD_MODE_SELECT_6 0x15
84 #define SCSI_CMD_MODE_SENSE_6 0x1A
85 #define SCSI_CMD_START_STOP_UNIT 0x1B
86 #define SCSI_CMD_PREVENT_REMOVAL 0x1E
88 #define SCSI_CMD_READ_FORMAT_CAPACITIES 0x23
89 #define SCSI_CMD_READ_CAPACITY_10 0x25
90 #define SCSI_CMD_READ_10 0x28
91 #define SCSI_CMD_WRITE_10 0x2A
92 #define SCSI_CMD_SEEK_10 0x2B
93 #define SCSI_CMD_ERASE_10 0x2C
94 #define SCSI_CMD_WRITE_AND_VERIFY_10 0x2E
95 #define SCSI_CMD_VERIFY_10 0x2F
96 #define SCSI_CMD_SYNCHRONIZE_CACHE 0x35
97 #define SCSI_CMD_WRITE_BUFFER 0x3B
98 #define SCSI_CMD_READ_BUFFER 0x3C
99 #define SCSI_CMD_READ_SUBCHANNEL 0x42
100 #define SCSI_CMD_READ_TOC 0x43
101 #define SCSI_CMD_READ_HEADER 0x44
102 #define SCSI_CMD_PLAY_AUDIO_10 0x45
103 #define SCSI_CMD_GET_CONFIGURATION 0x46
104 #define SCSI_CMD_PLAY_AUDIO_MSF 0x47
105 #define SCSI_CMD_PLAY_AUDIO_TI 0x48
106 #define SCSI_CMD_PLAY_TRACK_REL_10 0x49
107 #define SCSI_CMD_GET_EVENT_STATUS 0x4A
108 #define SCSI_CMD_PAUSE_RESUME 0x4B
109 #define SCSI_CMD_READ_DISC_INFORMATION 0x51
110 #define SCSI_CMD_READ_TRACK_INFORMATION 0x52
111 #define SCSI_CMD_RESERVE_TRACK 0x53
112 #define SCSI_CMD_SEND_OPC_INFORMATION 0x54
113 #define SCSI_CMD_MODE_SELECT_10 0x55
114 #define SCSI_CMD_REPAIR_TRACK 0x58
115 #define SCSI_CMD_MODE_SENSE_10 0x5A
116 #define SCSI_CMD_CLOSE_TRACK_SESSION 0x5B
117 #define SCSI_CMD_READ_BUFFER_CAPACITY 0x5C
118 #define SCSI_CMD_SEND_CUE_SHEET 0x5D
120 #define SCSI_CMD_REPORT_LUNS 0xA0
121 #define SCSI_CMD_BLANK 0xA1
122 #define SCSI_CMD_SECURITY_PROTOCOL_IN 0xA2
123 #define SCSI_CMD_SEND_KEY 0xA3
124 #define SCSI_CMD_REPORT_KEY 0xA4
125 #define SCSI_CMD_PLAY_AUDIO_12 0xA5
126 #define SCSI_CMD_LOAD_UNLOAD 0xA6
127 #define SCSI_CMD_SET_READ_AHEAD 0xA7
128 #define SCSI_CMD_READ_12 0xA8
129 #define SCSI_CMD_PLAY_TRACK_REL_12 0xA9
130 #define SCSI_CMD_WRITE_12 0xAA
131 #define SCSI_CMD_READ_MEDIA_SERIAL_12 0xAB
132 #define SCSI_CMD_GET_PERFORMANCE 0xAC
133 #define SCSI_CMD_READ_DVD_STRUCTURE 0xAD
134 #define SCSI_CMD_SECURITY_PROTOCOL_OUT 0xB5
135 #define SCSI_CMD_SET_STREAMING 0xB6
136 #define SCSI_CMD_READ_MSF 0xB9
137 #define SCSI_CMD_SET_SPEED 0xBB
138 #define SCSI_CMD_MECHANISM_STATUS 0xBD
139 #define SCSI_CMD_READ_CD 0xBE
140 #define SCSI_CMD_SEND_DISC_STRUCTURE 0xBF
142 #define SCSI_CMD_CD_PLAYBACK_STATUS 0xC4
143 #define SCSI_CMD_PLAYBACK_CONTROL 0xC9
144 #define SCSI_CMD_READ_CDDA 0xD8
145 #define SCSI_CMD_READ_CDXA 0xDB
146 #define SCSI_CMD_READ_ALL_SUBCODES 0xDF
149 #define SCSI_S_NOT_READY 0x02
150 #define SCSI_S_MEDIUM_ERROR 0x03
151 #define SCSI_S_ILLEGAL_REQUEST 0x05
152 #define SCSI_S_UNIT_ATTENTION 0x06
153 #define SCSI_ASC_LBA_OUT_OF_RANGE 0x21
154 #define SCSI_ASC_MEDIA_CHANGED 0x28
155 #define SCSI_ASC_MEDIUM_NOT_PRESENT 0x3A
158 #define MASS_ERR_SUCCESS 0x00
159 #define MASS_ERR_PHASE_ERROR 0x02
160 #define MASS_ERR_UNIT_NOT_READY 0x03
161 #define MASS_ERR_UNIT_BUSY 0x04
162 #define MASS_ERR_STALL 0x05
163 #define MASS_ERR_CMD_NOT_SUPPORTED 0x06
164 #define MASS_ERR_INVALID_CSW 0x07
165 #define MASS_ERR_NO_MEDIA 0x08
166 #define MASS_ERR_BAD_LBA 0x09
167 #define MASS_ERR_MEDIA_CHANGED 0x0A
168 #define MASS_ERR_DEVICE_DISCONNECTED 0x11
169 #define MASS_ERR_UNABLE_TO_RECOVER 0x12 // Reset recovery error
170 #define MASS_ERR_INVALID_LUN 0x13
171 #define MASS_ERR_WRITE_STALL 0x14
172 #define MASS_ERR_READ_NAKS 0x15
173 #define MASS_ERR_WRITE_NAKS 0x16
174 #define MASS_ERR_WRITE_PROTECTED 0x17
175 #define MASS_ERR_NOT_IMPLEMENTED 0xFD
176 #define MASS_ERR_GENERAL_SCSI_ERROR 0xFE
177 #define MASS_ERR_GENERAL_USB_ERROR 0xFF
178 #define MASS_ERR_USER 0xA0 // For subclasses to define their own error codes
180 #define MASS_TRANS_FLG_CALLBACK 0x01 // Callback is involved
181 #define MASS_TRANS_FLG_NO_STALL_CHECK 0x02 // STALL condition is not checked
182 #define MASS_TRANS_FLG_NO_PHASE_CHECK 0x04 // PHASE_ERROR is not checked
184 #define MASS_MAX_ENDPOINTS 3
411 for (
int i = 0;
i < 16;
i++)
CBWCB[
i] = 0;
419 for (
int i = 0;
i < 16;
i++)
CBWCB[
i] = 0;
432 memcpy(&
CBWCB, cdb, 6);
439 memcpy(&
CBWCB, cdb, 10);
uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)
unsigned MCHNGR
Definition: masstorage.h:357
#define hrNAK
Definition: max3421e.h:228
#define hrSTALL
Definition: max3421e.h:229
#define SCSI_ASC_LBA_OUT_OF_RANGE
Definition: masstorage.h:153
#define hrSUCCESS
Definition: max3421e.h:224
uint8_t ProductID[16]
Definition: masstorage.h:373
#define MASS_ERR_UNIT_NOT_READY
Definition: masstorage.h:160
uint8_t Opcode
Definition: masstorage.h:282
uint8_t Misc
Definition: masstorage.h:308
uint8_t data[8]
Definition: masstorage.h:187
#define MASS_ERR_WRITE_PROTECTED
Definition: masstorage.h:174
Definition: masstorage.h:281
unsigned R1
Definition: masstorage.h:355
uint32_t dCSWTag
Definition: masstorage.h:445
#define USB_SETUP_TYPE_STANDARD
Definition: usb_ch9.h:60
uint8_t bIface
Definition: masstorage.h:478
uint8_t CBWCB[16]
Definition: masstorage.h:404
Definition: masstorage.h:469
virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0
unsigned Service_Action
Definition: masstorage.h:266
Definition: UsbCore.h:137
unsigned R2
Definition: masstorage.h:356
CommandBlockWrapper()
Definition: masstorage.h:296
#define SCSI_CMD_READ_CAPACITY_10
Definition: masstorage.h:89
unsigned Reserved
Definition: masstorage.h:333
bool error
Definition: auto_build.py:637
uint8_t LBA_L_L_LB
Definition: masstorage.h:271
uint8_t bmSndToggle
Definition: address.h:46
uint8_t LBA_L_L_MB
Definition: masstorage.h:237
uint8_t bResponseCode
Definition: masstorage.h:451
unsigned RelAddr
Definition: masstorage.h:370
uint8_t bCSWStatus
Definition: masstorage.h:447
bool lowspeed
Definition: address.h:204
#define NotifyFail(...)
Definition: message.h:64
unsigned Service_Action
Definition: masstorage.h:284
unsigned Misc
Definition: masstorage.h:267
bool lowspeed
Definition: address.h:83
#define USB_TRANSFER_TYPE_INTERRUPT
Definition: usb_ch9.h:92
uint8_t AdditionalLength
Definition: masstorage.h:344
uint8_t LBA_M_M_MB
Definition: masstorage.h:310
uint8_t ALC_M_LB
Definition: masstorage.h:273
virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0
uint32_t CurrentCapacity[MASS_MAX_SUPPORTED_LUN]
Definition: masstorage.h:490
unsigned BQUE
Definition: masstorage.h:361
uint8_t LBA_L_L_MB
Definition: masstorage.h:317
#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE
Definition: UsbCore.h:101
uint8_t bMaxLUN
Definition: masstorage.h:488
Definition: masstorage.h:263
#define MASS_CBW_SIGNATURE
Definition: masstorage.h:63
#define USB_SETUP_HOST_TO_DEVICE
Definition: usb_ch9.h:58
#define NotifyFailSetDevTblEntry(...)
Definition: message.h:60
static const uint8_t epDataInIndex
Definition: masstorage.h:471
uint8_t ALC_L_LB
Definition: masstorage.h:323
CDB10(uint8_t _Opcode, uint8_t _LUN)
Definition: masstorage.h:248
uint8_t CmdSpecificInformation[4]
Definition: masstorage.h:462
unsigned TrmTsk
Definition: masstorage.h:341
CDB12 CDB12_t
Definition: masstorage.h:279
CommandBlockWrapper(uint32_t tag, uint32_t xflen, CDB10_t *cdb, uint8_t dir)
Definition: masstorage.h:436
uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)
uint8_t LBA_L_L_MB
Definition: masstorage.h:289
CDB6(uint8_t _Opcode, uint8_t _LUN, uint8_t _AllocationLength, uint8_t _Control)
Definition: masstorage.h:221
unsigned LUN
Definition: masstorage.h:233
uint8_t Opcode
Definition: masstorage.h:193
Definition: masstorage.h:392
unsigned Reserved4
Definition: masstorage.h:365
Definition: confdescparser.h:31
uint32_t dCBWTag
Definition: masstorage.h:281
uint8_t bmFileMark
Definition: masstorage.h:458
#define NotifyFailGetConfDescr(...)
Definition: message.h:61
bool boolean __attribute__((deprecated))
Definition: wiring_constants.h:110
static const uint8_t epInterruptInIndex
Definition: masstorage.h:473
uint8_t ALC_LB
Definition: masstorage.h:243
uint8_t SCSITransaction10(CDB10_t *cdb, uint16_t buf_size, void *buf, uint8_t dir)
uint8_t A_M_M_LB
Definition: masstorage.h:293
uint8_t Version
Definition: masstorage.h:336
uint8_t i
Definition: screen_test_graph.c:72
uint8_t LBA_L_L_LB
Definition: masstorage.h:290
#define BGRAB0(__usi__)
Definition: macros.h:57
unsigned MULTIP
Definition: masstorage.h:358
bool bPollEnable
Definition: masstorage.h:481
#define MASS_ERR_DEVICE_DISCONNECTED
Definition: masstorage.h:168
uint8_t Opcode
Definition: masstorage.h:204
#define USBTRACE(s)
Definition: macros.h:83
uint8_t epAddr
Definition: address.h:39
uint8_t bmReserved1
Definition: masstorage.h:396
uint32_t millis(void)
Definition: wiring_time.c:29
uint8_t LBA_L_M_LB
Definition: masstorage.h:269
#define MASS_ERR_INVALID_LUN
Definition: masstorage.h:170
#define MASS_REQ_BOMSR
Definition: masstorage.h:61
uint8_t ALC_L_LB
Definition: masstorage.h:300
uint8_t LBA_M_M_LB
Definition: masstorage.h:311
uint8_t bNumEP
Definition: masstorage.h:479
#define BGRAB3(__usi__)
Definition: macros.h:60
#define Notify(...)
Definition: message.h:53
unsigned unused
Definition: masstorage.h:195
uint32_t dCBWTag
Definition: masstorage.h:485
uint8_t Control
Definition: masstorage.h:245
uint8_t bAdditionalSenseCode
Definition: masstorage.h:463
static const uint8_t epDataOutIndex
Definition: masstorage.h:472
unsigned ACC
Definition: masstorage.h:351
uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)
CommandBlockWrapper()
Definition: masstorage.h:409
#define MASS_ERR_STALL
Definition: masstorage.h:162
uint8_t ALC_L_MB
Definition: masstorage.h:322
uint8_t Misc2
Definition: masstorage.h:240
#define bmREQ_MASSIN
Definition: masstorage.h:36
unsigned SCCS
Definition: masstorage.h:352
unsigned WideBus16Bit
Definition: masstorage.h:368
uint8_t bTheLUN
Definition: masstorage.h:489
#define NotifyFailGetDevDescr(...)
Definition: message.h:59
Definition: UsbCore.h:208
uint8_t ALC_M_MB
Definition: masstorage.h:320
#define CP_MASK_COMPARE_SUBCLASS
Definition: confdescparser.h:41
uint8_t GetbMaxLUN()
Definition: masstorage.h:505
uint8_t bmNakPower
Definition: address.h:48
#define MASS_ERR_WRITE_STALL
Definition: masstorage.h:171
uint32_t dCBWSignature
Definition: masstorage.h:378
#define SCSI_CMD_START_STOP_UNIT
Definition: masstorage.h:85
uint8_t Read(uint8_t lun, uint32_t addr, uint16_t bsize, uint8_t blocks, uint8_t *buf)
uint8_t Information[4]
Definition: masstorage.h:460
unsigned AERC
Definition: masstorage.h:342
#define hrTOGERR
Definition: max3421e.h:230
unsigned VS
Definition: masstorage.h:359
uint8_t Opcode
Definition: masstorage.h:230
uint8_t ALC_MB
Definition: masstorage.h:242
uint8_t LBA_M_L_LB
Definition: masstorage.h:313
#define MASS_ERR_CMD_NOT_SUPPORTED
Definition: masstorage.h:163
uint8_t bAddress
Definition: masstorage.h:476
uint8_t VendorID[8]
Definition: masstorage.h:372
uint8_t PeripheralQualifier
Definition: masstorage.h:331
uint8_t Control
Definition: masstorage.h:276
uint8_t LBA_L_M_MB
Definition: masstorage.h:315
uint8_t getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)
#define PSTR(str)
Definition: pgmspace.h:31
bool WriteProtected(uint8_t lun)
unsigned Res
Definition: masstorage.h:348
unsigned Misc
Definition: masstorage.h:285
uint8_t LBALB
Definition: masstorage.h:210
uint8_t LBA_L_M_LB
Definition: masstorage.h:236
uint8_t ALC_L_MB
Definition: masstorage.h:274
unsigned Service_Action
Definition: masstorage.h:232
CDB10 CDB10_t
Definition: masstorage.h:261
uint8_t bmILI
Definition: masstorage.h:456
uint32_t qNextPollTime
Definition: masstorage.h:480
uint8_t LBA_L_L_MB
Definition: masstorage.h:270
unsigned Linked
Definition: masstorage.h:366
#define SCSI_CMD_PREVENT_REMOVAL
Definition: masstorage.h:86
#define CP_MASK_COMPARE_PROTOCOL
Definition: confdescparser.h:42
uint8_t A_M_L_LB
Definition: masstorage.h:295
#define MASS_ERR_BAD_LBA
Definition: masstorage.h:166
unsigned WideBus32Bit
Definition: masstorage.h:369
#define MS_WANT_PARSER
Definition: masstorage.h:30
uint32_t dCSWSignature
Definition: masstorage.h:444
#define BGRAB2(__usi__)
Definition: macros.h:59
uint8_t LockMedia(uint8_t lun, uint8_t lock)
uint8_t bSegmentNumber
Definition: masstorage.h:452
uint8_t Misc2
Definition: masstorage.h:302
uint8_t LBA_L_L_LB
Definition: masstorage.h:238
#define bmUSB_TRANSFER_TYPE
Definition: usb_ch9.h:93
unsigned NormACA
Definition: masstorage.h:340
CDB10(uint8_t _Opcode, uint8_t _LUN, uint16_t xflen, uint32_t _LBA)
Definition: masstorage.h:254
uint8_t RevisionID[4]
Definition: masstorage.h:374
unsigned ThreePC
Definition: masstorage.h:349
void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)
#define CP_MASK_COMPARE_CLASS
Definition: confdescparser.h:40
bool WriteOk[MASS_MAX_SUPPORTED_LUN]
Definition: masstorage.h:493
Definition: masstorage.h:192
#define USBTRACE2(s, r)
Definition: macros.h:85
#define SCSI_CMD_REQUEST_SENSE
Definition: masstorage.h:78
#define MASS_ERR_GENERAL_SCSI_ERROR
Definition: masstorage.h:176
uint8_t bmRcvToggle
Definition: address.h:47
unsigned HISUP
Definition: masstorage.h:339
#define USB_REQUEST_CLEAR_FEATURE
Definition: usb_ch9.h:41
uint8_t ALC_L_LB
Definition: masstorage.h:275
#define MASS_ERR_NOT_IMPLEMENTED
Definition: masstorage.h:175
unsigned SoftReset
Definition: masstorage.h:363
uint8_t Control
Definition: masstorage.h:303
uint8_t LBA_L_M_MB
Definition: masstorage.h:235
unsigned PROTECT
Definition: masstorage.h:347
uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)
Definition: masstorage.h:229
void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)
uint8_t Opcode
Definition: masstorage.h:307
CommandBlockWrapperBase()
Definition: masstorage.h:384
#define SCSI_S_ILLEGAL_REQUEST
Definition: masstorage.h:151
unsigned ResponseDataFormat
Definition: masstorage.h:338
uint32_t dCSWDataResidue
Definition: masstorage.h:446
uint8_t DeviceType
Definition: masstorage.h:330
#define BGRAB1(__usi__)
Definition: macros.h:58
#define hrJERR
Definition: max3421e.h:237
#define hrTIMEOUT
Definition: max3421e.h:238
#define MASS_ERR_NO_MEDIA
Definition: masstorage.h:165
uint8_t bmCBWFlags
Definition: masstorage.h:381
Definition: UsbCore.h:213
uint8_t epAddr
Definition: address.h:201
uint32_t GetCapacity(uint8_t lun)
#define L(CODE)
Definition: macros.h:76
uint16_t GetSectorSize(uint8_t lun)
uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data, uint8_t bInterval=0)
uint8_t A_M_M_MB
Definition: masstorage.h:292
#define bmREQ_MASSOUT
Definition: masstorage.h:35
uint8_t bAdditionalSenseQualifier
Definition: masstorage.h:464
uint8_t bAdditionalLength
Definition: masstorage.h:461
CommandBlockWrapper(uint32_t tag, uint32_t xflen, uint8_t flgs, uint8_t lu, uint8_t cmdlen, uint8_t cmd)
Definition: masstorage.h:416
uint32_t dCBWTag
Definition: masstorage.h:379
#define SCSI_CMD_INQUIRY
Definition: masstorage.h:82
const uint8_t[]
Definition: 404_html.c:3
uint8_t LBA_L_L_LB
Definition: masstorage.h:318
unsigned Sync
Definition: masstorage.h:367
#define MASS_ERR_UNIT_BUSY
Definition: masstorage.h:161
unsigned LBAMSB
Definition: masstorage.h:206
#define MASS_ERR_MEDIA_CHANGED
Definition: masstorage.h:167
#define USB_ERROR_EPINFO_IS_NULL
Definition: UsbCore.h:99
uint16_t CurrentSectorSize[MASS_MAX_SUPPORTED_LUN]
Definition: masstorage.h:491
#define SCSI_CMD_TEST_UNIT_READY
Definition: masstorage.h:77
CommandBlockWrapper(uint32_t tag, uint32_t xflen, CDB6_t *cdb, uint8_t dir)
Definition: masstorage.h:429
uint8_t Opcode
Definition: masstorage.h:264
uint8_t info[12]
Definition: masstorage.h:198
void delay(uint32_t ms)
Definition: wiring_time.c:42
uint8_t bmCBWLUN
Definition: masstorage.h:395
uint8_t bFieldReplaceableUnitCode
Definition: masstorage.h:465
#define USB_NAK_DEFAULT
Definition: address.h:34
#define SCSI_CMD_MODE_SENSE_6
Definition: masstorage.h:84
Definition: masstorage.h:186
#define MASS_ERR_SUCCESS
Definition: masstorage.h:158
uint8_t Misc2
Definition: masstorage.h:325
#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL
Definition: UsbCore.h:98
uint8_t LBA_L_M_MB
Definition: masstorage.h:287
bool LUNOk[MASS_MAX_SUPPORTED_LUN]
Definition: masstorage.h:492
uint8_t bLastUsbError
Definition: masstorage.h:487
uint32_t dCBWDataTransferLength
Definition: masstorage.h:380
uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)
static status_t status
Definition: filament_sensor.c:37
Definition: confdescparser.h:48
Definition: masstorage.h:450
uint8_t bmSenseKey
Definition: masstorage.h:454
unsigned ADDR16
Definition: masstorage.h:354
Definition: masstorage.h:329
uint8_t LBAHB
Definition: masstorage.h:209
#define USB_SETUP_RECIPIENT_ENDPOINT
Definition: usb_ch9.h:65
uint8_t LBA_L_M_LB
Definition: masstorage.h:288
#define SCSI_CMD_READ_10
Definition: masstorage.h:90
#define MASS_CMD_DIR_OUT
Definition: masstorage.h:66
virtual uint8_t OnInit()
Definition: masstorage.h:498
Definition: masstorage.h:203
unsigned CmdQue
Definition: masstorage.h:364
#define BMAKE32(__usc3__, __usc2__, __usc1__, __usc0__)
Definition: macros.h:76
bool LUNIsGood(uint8_t lun)
unsigned TPGS
Definition: masstorage.h:350
EpInfo epInfo[MASS_MAX_ENDPOINTS]
Definition: masstorage.h:483
uint8_t Write(uint8_t lun, uint32_t addr, uint16_t bsize, uint8_t blocks, const uint8_t *buf)
virtual uint8_t GetAddress()
Definition: masstorage.h:526
uint8_t LBA_L_M_LB
Definition: masstorage.h:316
unsigned ENCSERV
Definition: masstorage.h:360
#define MASS_TRANS_FLG_CALLBACK
Definition: masstorage.h:180
#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL
Definition: UsbCore.h:96
uint8_t LBA_M_L_MB
Definition: masstorage.h:312
Definition: masstorage.h:377
#define NotifyFailSetConfDescr(...)
Definition: message.h:62
unsigned unused
Definition: masstorage.h:51
uint8_t bConfNum
Definition: masstorage.h:477
unsigned Removable
Definition: masstorage.h:334
#define SCSI_ASC_MEDIUM_NOT_PRESENT
Definition: masstorage.h:155
virtual void FreeAddress(uint8_t addr)=0
#define USB_ERROR_FailGetDevDescr
Definition: UsbCore.h:105
#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED
Definition: UsbCore.h:93
uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)
CDB6 CDB6_t
Definition: masstorage.h:227
uint8_t maxPktSize
Definition: address.h:40
uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)
uint8_t bmReserved
Definition: masstorage.h:455
#define SCSI_ASC_MEDIA_CHANGED
Definition: masstorage.h:154
uint8_t Control
Definition: masstorage.h:212
uint8_t ALC_M_LB
Definition: masstorage.h:298
CommandBlockWrapperBase(uint32_t tag, uint32_t xflen, uint8_t flgs)
Definition: masstorage.h:387
#define hrBUSY
Definition: max3421e.h:225
#define USB_FEATURE_ENDPOINT_HALT
Definition: usb_ch9.h:52
#define MASS_ERR_GENERAL_USB_ERROR
Definition: masstorage.h:177
#define MASS_MAX_SUPPORTED_LUN
Definition: settings.h:103
uint8_t MediaCTL(uint8_t lun, uint8_t ctl)
#define MASS_SUBCLASS_SCSI
Definition: masstorage.h:45
uint8_t AllocationLength
Definition: masstorage.h:211
#define MASS_PROTO_BBB
Definition: masstorage.h:53
Definition: masstorage.h:443
Definition: masstorage.h:306
uint8_t Control
Definition: masstorage.h:326
#define SCSI_CMD_WRITE_10
Definition: masstorage.h:91
#define MASS_ERR_INVALID_CSW
Definition: masstorage.h:164
uint8_t ALC_M_LB
Definition: masstorage.h:321
BASICCDB BASICCDB_t
Definition: masstorage.h:201
#define SCSI_S_NOT_READY
Definition: masstorage.h:149
uint8_t bmReserved2
Definition: masstorage.h:401
#define MASS_REQ_GET_MAX_LUN
Definition: masstorage.h:60
#define MASS_CSW_SIGNATURE
Definition: masstorage.h:64
unsigned LUN
Definition: masstorage.h:196
#define MASS_CMD_DIR_IN
Definition: masstorage.h:67
static int write(struct _reent *_r, void *pv, const char *pc, int n)
Definition: gcode_file.cpp:17
uint8_t bmCBWCBLength
Definition: masstorage.h:400
CDB6(uint8_t _Opcode, uint8_t _LUN, uint32_t LBA, uint8_t _AllocationLength, uint8_t _Control)
Definition: masstorage.h:216
uint8_t SCSITransaction6(CDB6_t *cdb, uint16_t buf_size, void *buf, uint8_t dir)
uint8_t ALC_L_MB
Definition: masstorage.h:299
USB * pUsb
Definition: masstorage.h:475
uint8_t SenseKeySpecific[3]
Definition: masstorage.h:466
#define USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET
Definition: UsbCore.h:104
uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)
#define USB_TRANSFER_TYPE_BULK
Definition: usb_ch9.h:91
uint8_t GetbTheLUN()
Definition: masstorage.h:506
uint8_t GetLastUsbError()
Definition: masstorage.h:503
#define SCSI_S_UNIT_ATTENTION
Definition: masstorage.h:152
unsigned LUN
Definition: masstorage.h:207
uint8_t bmEOM
Definition: masstorage.h:457
static png_bytep size_t size
Definition: pngwrite.c:2170
uint8_t A_M_L_MB
Definition: masstorage.h:294
uint8_t ALC_M_MB
Definition: masstorage.h:297
#define MASS_MAX_ENDPOINTS
Definition: masstorage.h:184
unsigned LUN
Definition: masstorage.h:52
AddressPool & GetAddressPool()
Definition: UsbCore.h:229
virtual bool DEVCLASSOK(uint8_t klass)
Definition: masstorage.h:531
EpInfo * epinfo
Definition: address.h:80
#define USB_CLASS_MASS_STORAGE
Definition: UsbCore.h:79