diff options
author | Uladzimir Pylinski <barthess@yandex.ru> | 2017-10-13 10:10:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-13 10:10:32 +0300 |
commit | 921d233cdd43e6fff867f80a89b43f07154b3f9a (patch) | |
tree | e97a6b41e4ec39e38f1f7b7a26506b5e289d6098 /os/various/lib_scsi.c | |
parent | f392dfa223310ab3bc17dce73a949d3a80b12b04 (diff) | |
parent | 39487df4de8aadb22ccdeb984a5ac8c74080905b (diff) | |
download | ChibiOS-Contrib-921d233cdd43e6fff867f80a89b43f07154b3f9a.tar.gz ChibiOS-Contrib-921d233cdd43e6fff867f80a89b43f07154b3f9a.tar.bz2 ChibiOS-Contrib-921d233cdd43e6fff867f80a89b43f07154b3f9a.zip |
Merge pull request #129 from kimmoli/scsi-serial-number
SCSI: Respond to unit serial number inquiry
Diffstat (limited to 'os/various/lib_scsi.c')
-rw-r--r-- | os/various/lib_scsi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/os/various/lib_scsi.c b/os/various/lib_scsi.c index 55aeb7e..1ece954 100644 --- a/os/various/lib_scsi.c +++ b/os/various/lib_scsi.c @@ -175,7 +175,12 @@ static bool cmd_ignored(SCSITarget *scsip, const uint8_t *cmd) { */ static bool inquiry(SCSITarget *scsip, const uint8_t *cmd) { - if ((cmd[1] & 0b11) || cmd[2] != 0) { + if ((cmd[1] & 0b1) && cmd[2] == 0x80) { + /* Unit serial number page */ + return transmit_data(scsip, (const uint8_t *)scsip->config->unit_serial_number_inquiry_response, + sizeof(scsi_unit_serial_number_inquiry_response_t)); + } + else if ((cmd[1] & 0b11) || cmd[2] != 0) { set_sense(scsip, SCSI_SENSE_KEY_ILLEGAL_REQUEST, SCSI_ASENSE_INVALID_FIELD_IN_CDB, SCSI_ASENSEQ_NO_QUALIFIER); |