Download UWB DFU Driver
So it seems like some:spark: owners want to go slightly advanced but instructions for installing the DFU-driver is a little vague. How to put your core in DFU-mode Press on BOTH buttons Release only the Reset button Release the Mode button once the core start blinking yellow This will be the dfu-mode:smile: Pre-check! If you have somehow done this process previously but is unable to use dfu. Download driver STM Device in DFU Mode Drivers version 3.0.5.0 for Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1 32-bit (x86), 64-bit. 52 views 0 comments Recent Posts. DFU USBDrv Installer-1.1 (DFU USB Tool) DFU USBDrv Installer-1.0 (Old) Powered by Phoca Download. Downloads Force desktop display.
Windows 10 Version 1607 -1909 ONLY: Use file Version Win10.1607 only. DO NOT use file Version Win10.1607 for previous build versions of Windows. Latest Displaylink driver must also be downloaded and installed with the GUWAVKIT4B UWB connection software. Please visit Displaylink.com for the latest Displaylink driver. Not compatible with build 2004.
This article helps to fix an issue in which Windows 10 doesn't install specific drivers for USB audio devices on the first connection.
Original product version: Windows 10, version 1703
Original KB number: 4021854
Symptom
When you connect a USB audio device to a Windows 10 Version 1703-based computer the first time, the operating system detects the device but loads the standard USB audio 2.0 driver (usbaudio2.sys) instead of the specific device driver.
Cause
This issue occurs because the USB audio 2.0 driver (usbaudio2.sys) isn't classified as a generic driver in Windows 10 Version 1703. Therefore, the system assumes that a compatible, nongeneric driver is installed for the device even though the driver is generic.
This issue also causes Windows 10 Version 1703 to postpone the search for other compatible drivers through Windows Update that typically occurs immediately after you install a new device.
Dfu Driver Download
Resolution
To fix this issue, use one of the following methods.
Method 1
To resolve this issue, install update 4022716.
Method 2
If the device-specific driver is distributed through Windows Update, you can manually update the driver by using Device Manager. For more information about how to do this, see update drivers in Windows 10.
Method 3
If the device is not yet connected, first install the device-specific driver, such as by using the appropriate installer. After the device-specific driver is installed, Windows 10 will select that driver instead of the standard USB audio 2.0 driver when you first connect the device.
Usb Dfu Driver
Note
See the device manufacturer's user guide for specific instructions about how to install the driver.
Method 4
If the driver isn't distributed through Windows Update, you can manually reinstall the driver. To do this, follow these steps:
- Install the device-specific driver (see Method 2).
- Open Device Manager.
- Right-click (or tap and hold) the name of the device, and then select Uninstall.
- Restart the computer.
Dfu Driver Fix
When it restarts, Windows will try to reinstall the device by using the device-specific driver.
Apple Dfu Driver
1 | /* |
---|---|
2 | * i1480 Device Firmware Upload |
3 | * |
4 | * Copyright (C) 2005-2006 Intel Corporation |
5 | * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> |
6 | * |
7 | * This program is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU General Public License version |
9 | * 2 as published by the Free Software Foundation. |
10 | * |
11 | * This program is distributed in the hope that it will be useful, |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. |
15 | * |
16 | * You should have received a copy of the GNU General Public License |
17 | * along with this program; if not, write to the Free Software |
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
19 | * 02110-1301, USA. |
20 | * |
21 | * |
22 | * This driver is the firmware uploader for the Intel Wireless UWB |
23 | * Link 1480 device (both in the USB and PCI incarnations). |
24 | * |
25 | * The process is quite simple: we stop the device, write the firmware |
26 | * to its memory and then restart it. Wait for the device to let us |
27 | * know it is done booting firmware. Ready. |
28 | * |
29 | * We might have to upload before or after a phy firmware (which might |
30 | * be done in two methods, using a normal firmware image or through |
31 | * the MPI port). |
32 | * |
33 | * Because USB and PCI use common methods, we just make ops out of the |
34 | * common operations (read, write, wait_init_done and cmd) and |
35 | * implement them in usb.c and pci.c. |
36 | * |
37 | * The flow is (some parts omitted): |
38 | * |
39 | * i1480_{usb,pci}_probe() On enumerate/discovery |
40 | * i1480_fw_upload() |
41 | * i1480_pre_fw_upload() |
42 | * __mac_fw_upload() |
43 | * fw_hdrs_load() |
44 | * mac_fw_hdrs_push() |
45 | * i1480->write() [i1480_{usb,pci}_write()] |
46 | * i1480_fw_cmp() |
47 | * i1480->read() [i1480_{usb,pci}_read()] |
48 | * i1480_mac_fw_upload() |
49 | * __mac_fw_upload() |
50 | * i1480->setup(() |
51 | * i1480->wait_init_done() |
52 | * i1480_cmd_reset() |
53 | * i1480->cmd() [i1480_{usb,pci}_cmd()] |
54 | * ... |
55 | * i1480_phy_fw_upload() |
56 | * request_firmware() |
57 | * i1480_mpi_write() |
58 | * i1480->cmd() [i1480_{usb,pci}_cmd()] |
59 | * |
60 | * Once the probe function enumerates the device and uploads the |
61 | * firmware, we just exit with -ENODEV, as we don't really want to |
62 | * attach to the device. |
63 | */ |
64 | #ifndef__i1480_DFU_H__ |
65 | #define __i1480_DFU_H__ |
66 | |
67 | #include <linux/uwb/spec.h> |
68 | #include <linux/types.h> |
69 | #include <linux/completion.h> |
70 | |
71 | #define i1480_FW_UPLOAD_MODE_MASK (cpu_to_le32(0x00000018)) |
72 | |
73 | #ifi1480_FW > 0x00000302 |
74 | #define i1480_RCEB_EXTENDED |
75 | #endif |
76 | |
77 | structuwb_rccb; |
78 | structuwb_rceb; |
79 | |
80 | /* |
81 | * Common firmware upload handlers |
82 | * |
83 | * Normally you embed this struct in another one specific to your hw. |
84 | * |
85 | * @write Write to device's memory from buffer. |
86 | * @read Read from device's memory to i1480->evt_buf. |
87 | * @setup Setup device after basic firmware is uploaded |
88 | * @wait_init_done |
89 | * Wait for the device to send a notification saying init |
90 | * is done. |
91 | * @cmd FOP for issuing the command to the hardware. The |
92 | * command data is contained in i1480->cmd_buf and the size |
93 | * is supplied as an argument. The command replied is put |
94 | * in i1480->evt_buf and the size in i1480->evt_result (or if |
95 | * an error, a < 0 errno code). |
96 | * |
97 | * @cmd_buf Memory buffer used to send commands to the device. |
98 | * Allocated by the upper layers i1480_fw_upload(). |
99 | * Size has to be @buf_size. |
100 | * @evt_buf Memory buffer used to place the async notifications |
101 | * received by the hw. Allocated by the upper layers |
102 | * i1480_fw_upload(). |
103 | * Size has to be @buf_size. |
104 | * @cmd_complete |
105 | * Low level driver uses this to notify code waiting afor |
106 | * an event that the event has arrived and data is in |
107 | * i1480->evt_buf (and size/result in i1480->evt_result). |
108 | * @hw_rev |
109 | * Use this value to activate dfu code to support new revisions |
110 | * of hardware. i1480_init() sets this to a default value. |
111 | * It should be updated by the USB and PCI code. |
112 | */ |
113 | structi1480 { |
114 | structdevice *dev; |
115 | |
116 | int (*write)(structi1480 *, u32addr, constvoid *, size_t); |
117 | int (*read)(structi1480 *, u32addr, size_t); |
118 | int (*rc_setup)(structi1480 *); |
119 | void (*rc_release)(structi1480 *); |
120 | int (*wait_init_done)(structi1480 *); |
121 | int (*cmd)(structi1480 *, constchar *cmd_name, size_tcmd_size); |
122 | constchar *pre_fw_name; |
123 | constchar *mac_fw_name; |
124 | constchar *mac_fw_name_deprecate; /* FIXME: Will go away */ |
125 | constchar *phy_fw_name; |
126 | u8hw_rev; |
127 | |
128 | size_tbuf_size; /* size of both evt_buf and cmd_buf */ |
129 | void *evt_buf, *cmd_buf; |
130 | ssize_tevt_result; |
131 | structcompletionevt_complete; |
132 | }; |
133 | |
134 | staticinline |
135 | voidi1480_init(structi1480 *i1480) |
136 | { |
137 | i1480->hw_rev = 1; |
138 | init_completion(&i1480->evt_complete); |
139 | } |
140 | |
141 | externinti1480_fw_upload(structi1480 *); |
142 | externinti1480_pre_fw_upload(structi1480 *); |
143 | externinti1480_mac_fw_upload(structi1480 *); |
144 | externinti1480_phy_fw_upload(structi1480 *); |
145 | externssize_ti1480_cmd(structi1480 *, constchar *, size_t, size_t); |
146 | externinti1480_rceb_check(conststructi1480 *, |
147 | conststructuwb_rceb *, constchar *, u8, |
148 | u8, unsigned); |
149 | |
150 | enum { |
151 | /* Vendor specific command type */ |
152 | i1480_CET_VS1 = 0xfd, |
153 | /* i1480 commands */ |
154 | i1480_CMD_SET_IP_MAS = 0x000e, |
155 | i1480_CMD_GET_MAC_PHY_INFO = 0x0003, |
156 | i1480_CMD_MPI_WRITE = 0x000f, |
157 | i1480_CMD_MPI_READ = 0x0010, |
158 | /* i1480 events */ |
159 | #ifi1480_FW > 0x00000302 |
160 | i1480_EVT_CONFIRM = 0x0002, |
161 | i1480_EVT_RM_INIT_DONE = 0x0101, |
162 | i1480_EVT_DEV_ADD = 0x0103, |
163 | i1480_EVT_DEV_RM = 0x0104, |
164 | i1480_EVT_DEV_ID_CHANGE = 0x0105, |
165 | i1480_EVT_GET_MAC_PHY_INFO = i1480_CMD_GET_MAC_PHY_INFO, |
166 | #else |
167 | i1480_EVT_CONFIRM = 0x0002, |
168 | i1480_EVT_RM_INIT_DONE = 0x0101, |
169 | i1480_EVT_DEV_ADD = 0x0103, |
170 | i1480_EVT_DEV_RM = 0x0104, |
171 | i1480_EVT_DEV_ID_CHANGE = 0x0105, |
172 | i1480_EVT_GET_MAC_PHY_INFO = i1480_EVT_CONFIRM, |
173 | #endif |
174 | }; |
175 | |
176 | |
177 | structi1480_evt_confirm { |
178 | structuwb_rcebrceb; |
179 | #ifdefi1480_RCEB_EXTENDED |
180 | __le16wParamLength; |
181 | #endif |
182 | u8bResultCode; |
183 | } __attribute__((packed)); |
184 | |
185 | |
186 | structi1480_rceb { |
187 | structuwb_rcebrceb; |
188 | #ifdefi1480_RCEB_EXTENDED |
189 | __le16wParamLength; |
190 | #endif |
191 | } __attribute__((packed)); |
192 | |
193 | |
194 | /** |
195 | * Get MAC & PHY Information confirm event structure |
196 | * |
197 | * Confirm event returned by the command. |
198 | */ |
199 | structi1480_evt_confirm_GMPI { |
200 | #ifi1480_FW > 0x00000302 |
201 | structuwb_rcebrceb; |
202 | __le16wParamLength; |
203 | __le16status; |
204 | u8mac_addr[6]; /* EUI-64 bit IEEE address [still 8 bytes?] */ |
205 | u8dev_addr[2]; |
206 | __le16mac_fw_rev; /* major = v >> 8; minor = v & 0xff */ |
207 | u8hw_rev; |
208 | u8phy_vendor; |
209 | u8phy_rev; /* major v = >> 8; minor = v & 0xff */ |
210 | __le16mac_caps; |
211 | u8phy_caps[3]; |
212 | u8key_stores; |
213 | __le16mcast_addr_stores; |
214 | u8sec_mode_supported; |
215 | #else |
216 | struct uwb_rceb rceb; |
217 | u8 status; |
218 | u8 mac_addr[8]; /* EUI-64 bit IEEE address [still 8 bytes?] */ |
219 | u8 dev_addr[2]; |
220 | __le16 mac_fw_rev; /* major = v >> 8; minor = v & 0xff */ |
221 | __le16 phy_fw_rev; /* major v = >> 8; minor = v & 0xff */ |
222 | __le16 mac_caps; |
223 | u8 phy_caps; |
224 | u8 key_stores; |
225 | __le16 mcast_addr_stores; |
226 | u8 sec_mode_supported; |
227 | #endif |
228 | } __attribute__((packed)); |
229 | |
230 | |
231 | structi1480_cmd_mpi_write { |
232 | structuwb_rccbrccb; |
233 | __le16size; |
234 | u8data[]; |
235 | }; |
236 | |
237 | |
238 | structi1480_cmd_mpi_read { |
239 | structuwb_rccbrccb; |
240 | __le16size; |
241 | struct { |
242 | u8page, offset; |
243 | } __attribute__((packed)) data[]; |
244 | } __attribute__((packed)); |
245 | |
246 | |
247 | structi1480_evt_mpi_read { |
248 | structuwb_rcebrceb; |
249 | #ifdefi1480_RCEB_EXTENDED |
250 | __le16wParamLength; |
251 | #endif |
252 | u8bResultCode; |
253 | __le16size; |
254 | struct { |
255 | u8page, offset, value; |
256 | } __attribute__((packed)) data[]; |
257 | } __attribute__((packed)); |
258 | |
259 | |
260 | #endif /* #ifndef __i1480_DFU_H__ */ |
261 |