aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/src
diff options
context:
space:
mode:
authorDiego Ismirlian <dismirlian (at) google's mail.com>2017-10-29 17:52:54 -0300
committerDiego Ismirlian <dismirlian (at) google's mail.com>2017-10-29 17:52:54 -0300
commitf4cf7e5591c47b978d2141486fe7f98400c3c5bc (patch)
tree5deb523e6f9e4a605d629d35fb889be29b52be81 /os/hal/src
parentdecde2ca4c21220f6daab0880de08cd974dd62ef (diff)
parenta0089c14daa3c5c9ef6e0e30b26efaae2ccda128 (diff)
downloadChibiOS-Contrib-f4cf7e5591c47b978d2141486fe7f98400c3c5bc.tar.gz
ChibiOS-Contrib-f4cf7e5591c47b978d2141486fe7f98400c3c5bc.tar.bz2
ChibiOS-Contrib-f4cf7e5591c47b978d2141486fe7f98400c3c5bc.zip
Merge branch 'master' of https://github.com/ChibiOS/ChibiOS-Contrib
Diffstat (limited to 'os/hal/src')
-rw-r--r--os/hal/src/hal_usb_msd.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/os/hal/src/hal_usb_msd.c b/os/hal/src/hal_usb_msd.c
index 6cc5386..564bad0 100644
--- a/os/hal/src/hal_usb_msd.c
+++ b/os/hal/src/hal_usb_msd.c
@@ -84,6 +84,19 @@ static const scsi_inquiry_response_t default_scsi_inquiry_response = {
{'v',CH_KERNEL_MAJOR+'0','.',CH_KERNEL_MINOR+'0'}
};
+/**
+ * @brief Hardcoded default SCSI unit serial number inquiry response structure.
+ */
+static const scsi_unit_serial_number_inquiry_response_t default_scsi_unit_serial_number_inquiry_response =
+{
+ 0x00,
+ 0x80,
+ 0x00,
+ 0x08,
+ "00000000"
+};
+
+
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
@@ -373,7 +386,8 @@ void msdStop(USBMassStorageDriver *msdp) {
*/
void msdStart(USBMassStorageDriver *msdp, USBDriver *usbp,
BaseBlockDevice *blkdev, uint8_t *blkbuf,
- const scsi_inquiry_response_t *inquiry) {
+ const scsi_inquiry_response_t *inquiry,
+ const scsi_unit_serial_number_inquiry_response_t *serialInquiry) {
osalDbgCheck((msdp != NULL) && (usbp != NULL)
&& (blkdev != NULL) && (blkbuf != NULL));
@@ -393,6 +407,12 @@ void msdStart(USBMassStorageDriver *msdp, USBDriver *usbp,
else {
msdp->scsi_config.inquiry_response = inquiry;
}
+ if (NULL == serialInquiry) {
+ msdp->scsi_config.unit_serial_number_inquiry_response = &default_scsi_unit_serial_number_inquiry_response;
+ }
+ else {
+ msdp->scsi_config.unit_serial_number_inquiry_response = serialInquiry;
+ }
msdp->scsi_config.blkbuf = blkbuf;
msdp->scsi_config.blkdev = blkdev;
msdp->scsi_config.transport = &msdp->scsi_transport;