Richard Hughes
97a3c9651b
dfu: Set the quirk keys using the new vfunc
2018-08-29 14:27:57 +01:00
Richard Hughes
83d79e2e12
trivial: Move the DfuDevice class init to the bottom of the file
2018-08-29 14:27:57 +01:00
Richard Hughes
6dec401a67
Store the DeviceInstanceId as a GUID in the quirk database
...
This allows us to match non-DeviceID GUIDs, and also GUIDs we don't know how to
generate.
To make this fully useful, search for device quirks when GUIDs are added.
2018-08-28 18:30:00 +01:00
Richard Hughes
201d0cce54
trivial: Further simplify the fake DFU runtime logic
2018-08-28 15:33:43 +01:00
Richard Hughes
a0d7977968
dfu: Check the device state before assuming a fake runtime
...
If the device is not in APP_IDLE this doesn't make any sense.
2018-08-28 12:16:30 +01:00
Richard Hughes
04e321274a
dfu: Never add a fake DFU runtime when targets already exist
2018-08-28 12:16:26 +01:00
Richard Hughes
07ed2f00fa
trivial: Use the new subclassed device methods
...
This just reduces our API surface a little, no behaviour change.
2018-08-24 21:48:59 +01:00
Richard Hughes
02c90d8a03
Remove the unused Emacs indenting headers from all source files
...
Fixes https://github.com/hughsie/fwupd/issues/636
2018-08-09 12:48:04 +01:00
Richard Hughes
87fb9ff447
Change the quirk file structure to be more efficient
...
This pivots the data storage so that the group is used as the preconditon
and the key name is used as the parameter to change. This allows a more natural
data flow, where a new device needs one new group and a few few keys, rather
than multiple groups, each with one key.
This also allows us to remove the key globbing when matching the version format
which is often a source of confusion.
Whilst changing all the quirk files, change the key prefixes to be more familiar
to Windows users (e.g. Hwid -> Smbios, and FuUsbDevice -> DeviceInstanceId)
who have to use the same IDs in Windows Update.
This also allows us to pre-match the desired plugin, rather than calling the
probe() function on each plugin.
2018-06-28 13:32:30 +01:00
Mario Limonciello
51308e648a
Adjust all licensing to LGPL 2.1+ ( Closes : #526 )
2018-05-29 09:03:13 +01:00
Richard Hughes
e598fc3447
trivial: Show the VID and PID when failing to add a USB device
...
Fixes https://github.com/hughsie/fwupd/issues/476
2018-04-19 20:15:09 +01:00
Richard Hughes
15348f4e79
dfu: Fix detach with newer releases of libusb
...
In newer releases libusb has started returning LIBUSB_TRANSFER_ERROR (rather
than the arguably more correct LIBUSB_TRANSFER_STALL...) when the device is
removed before the control transfer has completed.
2018-02-01 10:08:59 +00:00
Richard Hughes
a29711c4a1
Move the FuQuirks reference down from DfuDevice to FuDevice
2017-12-11 10:47:18 +00:00
Richard Hughes
e755d6bb05
Add a more general quirk for adding GUIDs to devices
...
This replaces fwupd-dfu-alternate-vidpid which was only useful in the DFU plugin
and somewhat poorly defined.
2017-12-04 17:00:22 +00:00
Richard Hughes
524343ac63
trivial: Remove DfuMode
...
We can get all this information just from looking at the device state.
2017-12-04 17:00:22 +00:00
Richard Hughes
a2fff1f44e
dfu: Remove DfuContext
...
Use the power of FuUsbDevice in DfuDevice to remove a lot of complicated code.
2017-12-04 17:00:22 +00:00
Richard Hughes
831bea1024
trivial: Manually call the initial DFU refresh to simplify the DfuDevice code
2017-12-04 17:00:22 +00:00
Richard Hughes
92ced1cfbf
trivial: Move the detach and attach to the DFU client tool
...
This isn't used by the daemon and makes the DfuDevice client simpler.
2017-12-04 17:00:22 +00:00
Richard Hughes
01d152e2ef
trivial: Make DfuDevice derive from GUsbDevice
2017-12-04 17:00:22 +00:00
Richard Hughes
1a16cc5e41
trivial: Remove the use of GCancellable in the dfu plugin
...
We're not using this, and we can simplify the code considerably now that the
library is not installed for external users.
2017-12-04 17:00:22 +00:00
Richard Hughes
af652da167
dfu: Ignore an EP STALL when detaching
...
Some devices just detach without completing the transaction.
2017-11-23 10:46:26 +00:00
Richard Hughes
68327f3abd
trivial: Add some missing debug information when detaching
2017-11-23 10:45:54 +00:00
Richard Hughes
aa6a56205f
dfu: Assume DFU version is 1.1 if unspecified
2017-11-21 15:55:29 +00:00
Richard Hughes
352ba1b833
dfu: Add support for the original AVR DFU protocol
...
This allows us to flash hardware like the Retrode and other devices using chips
like the AT90USB1287.
The test files can be re-generated using the sample code found here:
https://github.com/hughsie/fwupd-test-firmware and are designed
to be used on the AT90USBKEY2 development board.
2017-11-16 15:30:30 +00:00
Richard Hughes
fd4697188a
dfu: Invalidate the DFU mode, state and status when replugging
2017-11-16 15:30:30 +00:00
Richard Hughes
31830aaea3
dfu: Ensure the mode is set correctly for fake runtimes
2017-11-13 16:01:57 +00:00
Richard Hughes
85dbcbf534
dfu: Add trivial helpers to get the current vid/pid/release
2017-11-11 21:06:18 +00:00
Richard Hughes
d44a5ee56d
dfu: Add support for XMEGA chips
...
Notably, bootloaders for this class of device export an incorrect DFU interface.
Additionally, allow setting the buffer size for the UPLOAD to a larger size
than the defined device transfer size, which allows us to return the full
packet from the larger XMEGA devices.
2017-11-07 12:40:25 +00:00
Richard Hughes
ac9fa21eda
dfu: Use a GError chain to properly report parsing failures
2017-11-07 12:40:25 +00:00
Richard Hughes
bdb6d7027a
dfu: Allow setting a specific DFU version for hardware
...
Ignoring the warning is not good enough when we're setting policy based on the
specific version. Use the new quirk functionality to do this easily, which
also allows us to remove one more thing in the quirk mega-bitfield.
2017-11-07 12:40:25 +00:00
Richard Hughes
8a0ec158bd
dfu: Return failure when getting device status fails
2017-11-06 20:10:26 +00:00
Richard Hughes
adeefcd4e0
dfu: Use FuQuirk to encode the Jabra magic packet contents
...
This allows us to remove the Jabra-specific quirk entry in the device bitfield,
and more importantly allows us to support some more Jabra devices in the future
without code changes.
2017-11-02 19:08:51 +00:00
Richard Hughes
24c452297d
dfu: Use the FuQuirk infrastructure to move the quirks out of the code
...
This is slightly more verbose than desired as we also have to include the quirk
information when running the dfu-tool, which does not have an already set-up
FuQuirks object as it has no plugin.
2017-11-02 19:08:51 +00:00
Richard Hughes
c4e9b08f41
dfu: Remove the CanDownload and CanUpload attribute when required
...
When the AVR device is not recognised as a supported part we can't read or
write the firmware from the chip.
2017-10-31 18:30:05 +00:00
Richard Hughes
3e1e8227be
dfu: Add support for one type of AVR32 device
...
Currently the only supported model is the AT32UC3A3256S, more to come...
2017-10-31 18:30:05 +00:00
Richard Hughes
d49f64f700
dfu: Split out the STM functionality to a new file
2017-10-31 18:30:05 +00:00
Richard Hughes
9acf8cd16f
dfu: Set up the DfuTarget when opening the DfuDevice
...
In the future we'll use this to set vendor-specific quirks.
2017-10-31 18:30:05 +00:00
Richard Hughes
97520bd583
dfu: Add support for a chip ID
...
This allows us to show the user something they can include in a bug report.
2017-10-31 18:30:05 +00:00
Richard Hughes
f3e27065e6
dfu: Support devices with truncated DFU interface data
...
We can assume they support DFU 1.1. Fixes flashing the Jabra Speak 410.
2017-10-30 13:37:11 +00:00
Richard Hughes
54c7c0cc9f
dfu: Only detach the HID interface when updating Jabra devices
2017-10-30 13:37:11 +00:00
Richard Hughes
181f516114
dfu: Guess the transfer size if it is not specified
2017-10-26 20:49:10 +01:00
Richard Hughes
55d5fb1ab0
dfu: Remove redundant dfu_device_has_dfuse_support()
2017-10-26 20:49:10 +01:00
Richard Hughes
61222fcb60
dfu: Add the various device quirks for the Jabra Speak devices
...
With much help from Niels Skou Olsen <nolsen@jabra.com>, many thanks.
2017-10-13 17:24:35 +01:00
Richard Hughes
3d2baa7476
dfu: Add DFU_DEVICE_QUIRK_ATTACH_EXTRA_RESET
...
Some devices need yet another reset to get them back into runtime mode.
2017-10-13 17:20:20 +01:00
Richard Hughes
7a42f5eab9
dfu: Add DFU_DEVICE_QUIRK_IGNORE_UPLOAD
...
Some DFU implementations (e.g. CSR) do not properly support verification of
firmware using the upload mechanism.
2017-10-13 17:20:20 +01:00
Richard Hughes
ce7baf4e2e
dfu: Don't infer that NO_DFU_RUNTIME always requires user action
2017-10-13 17:20:20 +01:00
Richard Hughes
9fac3a2895
dfu: Unbind the kernel module when claiming the device DFU interface
2017-10-13 17:20:20 +01:00
Richard Hughes
64179e42af
dfu: Print the device attributes when using 'dfu-tool list'
2017-10-13 09:13:42 +01:00
Richard Hughes
4b9126ee7d
dfu: Allow flashing when the target does not specify an alt-name
2017-10-12 12:47:10 +01:00
Richard Hughes
b9f4907645
dfu: Add a low-level 'reset' command to dfu-tool
2017-10-12 09:13:27 +01:00