J-Link WinUSB driver selection
Historically, J-Link needed to use SEGGER-specific USB BULK driver by default. This is because initially Microsoft Windows did not come with a generic USB BULK driver. Starting with Windows 8, Microsoft included the generic USB BULK driver driver, called WinUSB, in Windows installations, so that vendor-specific drivers are no longer required for new products.
While current J-Link models and hardware versions are shipped to use WinUSB by default (aka driverless mode), there are still plenty of older versions of J-Link out there that are WinUSB capable but were shipped use the SEGGER driver.
Also, for some older setups in the field, when replacing a J-Link in that setup, it may be desirable or even necessary to have a current hardware model running with SEGGER driver selection instead of driverless mode.
In order to check and change the USB driver selection of J-Link, J-Link Configurator can be used.
Configuring USB driver selection
- Connect the J-Link to a machine that is able to detect it (ideally some state of the art PC)
- Make sure the most recent version of the J-Link software package is installed
- Start J-Link Configurator
- Make sure that the J-Link firmware is up-to-date by right-clicking it in the overview and selecting "Update firmware"
- Open the configuration dialog (right click on the unit -> Configure)
- Under USB Driver (Windows) select WinUSB (driverless) or SEGGER (SEGGER-specific legacy USB driver)
- Click OK
- Power-cycle J-Link
- Exit J-Link Configurator
Changing the USB driver selection also changes the product ID (PID) used on the USB level to enumerate J-Link.
However, this is a change transparent to the majority of users as they do not directly deal with the PID of a USB device
Linux and macOS support
The USB driver selection only has an immediate effect under Windows.
Under Linux and macOS there is no SEGGER-specific driver and always the generic USB driver shipped with the OS is used to communicate with J-Link.
However, the previously mentioned change in the PID depending on the USB driver selection, will also be visible under Linux and macOS.