From f57954ab87d27a96183782b9e72633943e6fc597 Mon Sep 17 00:00:00 2001 From: Guillaume Revaillot Date: Tue, 31 Mar 2020 14:52:45 +0200 Subject: [PATCH 1/2] add usb pid for st-link v2.1, found on nucleo l432kc and nucleo l552ze. --- include/stlink/usb.h | 1 + src/usb.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/stlink/usb.h b/include/stlink/usb.h index 4bf28c355..239c5b4ef 100644 --- a/include/stlink/usb.h +++ b/include/stlink/usb.h @@ -23,6 +23,7 @@ extern "C" { #define STLINK_USB_PID_STLINK_32L 0x3748 #define STLINK_USB_PID_STLINK_32L_AUDIO 0x374a #define STLINK_USB_PID_STLINK_NUCLEO 0x374b +#define STLINK_USB_PID_STLINK_V2_1 0x3752 #define STLINK_USB_PID_STLINK_V3_USBLOADER 0x374d #define STLINK_USB_PID_STLINK_V3E_PID 0x374e #define STLINK_USB_PID_STLINK_V3S_PID 0x374f diff --git a/src/usb.c b/src/usb.c index 7832612cf..c5a314d45 100644 --- a/src/usb.c +++ b/src/usb.c @@ -941,6 +941,7 @@ stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[ST if ((desc.idProduct == STLINK_USB_PID_STLINK_32L) || (desc.idProduct == STLINK_USB_PID_STLINK_NUCLEO) || (desc.idProduct == STLINK_USB_PID_STLINK_32L_AUDIO) || + (desc.idProduct == STLINK_USB_PID_STLINK_V2_1) || (desc.idProduct == STLINK_USB_PID_STLINK_V3_USBLOADER) || (desc.idProduct == STLINK_USB_PID_STLINK_V3E_PID) || (desc.idProduct == STLINK_USB_PID_STLINK_V3S_PID) || @@ -957,7 +958,8 @@ stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[ST if ((desc.idProduct == STLINK_USB_PID_STLINK_32L) || (desc.idProduct == STLINK_USB_PID_STLINK_NUCLEO) - || (desc.idProduct == STLINK_USB_PID_STLINK_32L_AUDIO)) { + || (desc.idProduct == STLINK_USB_PID_STLINK_32L_AUDIO) + || (desc.idProduct == STLINK_USB_PID_STLINK_V2_1)) { sl->version.stlink_v = 2; } else if ((desc.idProduct == STLINK_USB_PID_STLINK_V3_USBLOADER) || (desc.idProduct == STLINK_USB_PID_STLINK_V3E_PID) @@ -1032,6 +1034,7 @@ stlink_t *stlink_open_usb(enum ugly_loglevel verbose, bool reset, char serial[ST slu->ep_rep = 1 /* ep rep */ | LIBUSB_ENDPOINT_IN; if (desc.idProduct == STLINK_USB_PID_STLINK_NUCLEO || desc.idProduct == STLINK_USB_PID_STLINK_32L_AUDIO || + desc.idProduct == STLINK_USB_PID_STLINK_V2_1 || desc.idProduct == STLINK_USB_PID_STLINK_V3_USBLOADER || desc.idProduct == STLINK_USB_PID_STLINK_V3E_PID || desc.idProduct == STLINK_USB_PID_STLINK_V3S_PID || @@ -1115,6 +1118,7 @@ static size_t stlink_probe_usb_devs(libusb_device **devs, stlink_t **sldevs[]) { if (desc.idProduct != STLINK_USB_PID_STLINK_32L && desc.idProduct != STLINK_USB_PID_STLINK_32L_AUDIO && desc.idProduct != STLINK_USB_PID_STLINK_NUCLEO && + desc.idProduct != STLINK_USB_PID_STLINK_V2_1 && desc.idProduct != STLINK_USB_PID_STLINK_V3_USBLOADER && desc.idProduct != STLINK_USB_PID_STLINK_V3E_PID && desc.idProduct != STLINK_USB_PID_STLINK_V3S_PID && From 140a03e7fd230798806328fe05bea5cda614a047 Mon Sep 17 00:00:00 2001 From: Guillaume Revaillot Date: Tue, 31 Mar 2020 15:26:27 +0200 Subject: [PATCH 2/2] update udev rules for stlinkv2-1 --- etc/udev/rules.d/49-stlinkv2-1.rules | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etc/udev/rules.d/49-stlinkv2-1.rules b/etc/udev/rules.d/49-stlinkv2-1.rules index 15a797a05..b89b84012 100644 --- a/etc/udev/rules.d/49-stlinkv2-1.rules +++ b/etc/udev/rules.d/49-stlinkv2-1.rules @@ -10,6 +10,10 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \ MODE:="0666", \ SYMLINK+="stlinkv2-1_%n" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", \ + MODE:="0666", \ + SYMLINK+="stlinkv2-1_%n" + # If you share your linux system with other users, or just don't like the # idea of write permission for everybody, you can replace MODE:="0666" with # OWNER:="yourusername" to create the device owned by you, or with