summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2023-09-01 16:03:27 +1000
committerDamien George <damien@micropython.org>2023-09-29 16:36:45 +1000
commitda6f1e1d1e2feb4b7aa4ee6c84e7e2c816d2bead (patch)
tree1bb67c86b43a90709e5cb12aacf7fa86e1cc1850
parent61f331374da150f0d9f42d694d56b6b0dc9ee498 (diff)
rp2/msc_disk: Allow configuring the USB MSC inquiry response.
This was previously hard-coded to "Micropy" / "Mass Storage" / "1.0". Now allow it to be overridden by a board. Also change "Micropy" to "MicroPy" and "1.0" to "1.00" to match stm32. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
-rw-r--r--ports/rp2/msc_disk.c10
-rw-r--r--shared/tinyusb/tusb_config.h12
2 files changed, 15 insertions, 7 deletions
diff --git a/ports/rp2/msc_disk.c b/ports/rp2/msc_disk.c
index 24bd51cec..0937eeddf 100644
--- a/ports/rp2/msc_disk.c
+++ b/ports/rp2/msc_disk.c
@@ -44,13 +44,9 @@ static bool ejected = false;
// Invoked when received SCSI_CMD_INQUIRY
// Application fill vendor id, product id and revision with string up to 8, 16, 4 characters respectively
void tud_msc_inquiry_cb(uint8_t lun, uint8_t vendor_id[8], uint8_t product_id[16], uint8_t product_rev[4]) {
- const char vid[] = "Micropy";
- const char pid[] = "Mass Storage";
- const char rev[] = "1.0";
-
- strncpy((char *)vendor_id, vid, 8);
- strncpy((char *)product_id, pid, 16);
- strncpy((char *)product_rev, rev, 4);
+ memcpy(vendor_id, MICROPY_HW_USB_MSC_INQUIRY_VENDOR_STRING, MIN(strlen(MICROPY_HW_USB_MSC_INQUIRY_VENDOR_STRING), 8));
+ memcpy(product_id, MICROPY_HW_USB_MSC_INQUIRY_PRODUCT_STRING, MIN(strlen(MICROPY_HW_USB_MSC_INQUIRY_PRODUCT_STRING), 16));
+ memcpy(product_rev, MICROPY_HW_USB_MSC_INQUIRY_REVISION_STRING, MIN(strlen(MICROPY_HW_USB_MSC_INQUIRY_REVISION_STRING), 4));
}
// Invoked when received Test Unit Ready command.
diff --git a/shared/tinyusb/tusb_config.h b/shared/tinyusb/tusb_config.h
index 96e883fc8..266cb88cc 100644
--- a/shared/tinyusb/tusb_config.h
+++ b/shared/tinyusb/tusb_config.h
@@ -43,6 +43,18 @@
#define MICROPY_HW_USB_CDC_INTERFACE_STRING "Board CDC"
#endif
+#ifndef MICROPY_HW_USB_MSC_INQUIRY_VENDOR_STRING
+#define MICROPY_HW_USB_MSC_INQUIRY_VENDOR_STRING "MicroPy"
+#endif
+
+#ifndef MICROPY_HW_USB_MSC_INQUIRY_PRODUCT_STRING
+#define MICROPY_HW_USB_MSC_INQUIRY_PRODUCT_STRING "Mass Storage"
+#endif
+
+#ifndef MICROPY_HW_USB_MSC_INQUIRY_REVISION_STRING
+#define MICROPY_HW_USB_MSC_INQUIRY_REVISION_STRING "1.00"
+#endif
+
#ifndef CFG_TUSB_RHPORT0_MODE
#define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE)
#endif