fwupd/plugins/dfu
Richard Hughes 3dc49c21b5 dfu: If no DNLOAD timeout is set assume a default value
This is probably a case where the device does not adhere to the specification.

Some hardware may be deliberately setting DNLOAD timeout to 0ms, and this patch
will make each request 5ms slower. This is probably a good tradeoff for having
most hardware 'just work' without a quirk entry.

Based on a patch by Zack Lee Yi Wei <zack_lee@chicony.com>, many thanks.
2020-12-21 13:11:14 +00:00
..
contrib Use black to format python source in a consistent manner 2020-04-13 23:06:30 +01:00
dfu-common.c dfu: Remove XTEA support 2019-10-09 20:56:38 +01:00
dfu-common.h dfu: Remove support for the Metadata Store Proposal 2019-10-09 20:56:38 +01:00
dfu-device.c dfu: If no DNLOAD timeout is set assume a default value 2020-12-21 13:11:14 +00:00
dfu-device.h jabra: Move the Jabra-specific detach out into its own plugin 2019-10-30 15:09:49 +00:00
dfu-element.c trivial: Fix up some typos from codespell 2019-11-01 14:21:20 +00:00
dfu-element.h dfu: Remove two completely unused helpers 2019-10-15 13:04:09 +01:00
dfu-firmware.c trivial: Fix up some typos from codespell 2019-11-01 14:21:20 +00:00
dfu-firmware.h dfu: Make DfuFirmware derive from FuFirmware 2019-10-14 15:24:08 -05:00
dfu-format-dfu.c dfu: Make DfuFirmware derive from FuFirmware 2019-10-14 15:24:08 -05:00
dfu-format-dfu.h dfu: Use FwupdInstallFlags rather than a DFU-specific version 2019-10-11 13:19:46 +01:00
dfu-format-dfuse.c dfu: Make DfuFirmware derive from FuFirmware 2019-10-14 15:24:08 -05:00
dfu-format-dfuse.h dfu: Use FwupdInstallFlags rather than a DFU-specific version 2019-10-11 13:19:46 +01:00
dfu-format-raw.c dfu: Make DfuFirmware derive from FuFirmware 2019-10-14 15:24:08 -05:00
dfu-format-raw.h dfu: Use FwupdInstallFlags rather than a DFU-specific version 2019-10-11 13:19:46 +01:00
dfu-image.c dfu: Make DfuImage derive from FuFirmwareImage 2019-10-14 15:24:08 -05:00
dfu-image.h dfu: Make DfuImage derive from FuFirmwareImage 2019-10-14 15:24:08 -05:00
dfu-sector.c trivial: Fix up some typos from codespell 2019-11-01 14:21:20 +00:00
dfu-sector.h dfu: Remove private headers that do not need to exist 2019-10-14 15:24:08 -05:00
dfu-self-test.c Install the installed tests 2020-08-28 10:10:43 -05:00
dfu-target-avr.c dfu: Remove private headers that do not need to exist 2019-10-14 15:24:08 -05:00
dfu-target-avr.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
dfu-target-private.h dfu: Remove private headers that do not need to exist 2019-10-14 15:24:08 -05:00
dfu-target-stm.c trivial: Add fu_common_bytes_new_offset() 2020-12-08 20:54:25 +00:00
dfu-target-stm.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
dfu-target.c dfu: Only wait for DFU_DNBUSY for 120 seconds 2020-12-21 13:11:14 +00:00
dfu-target.h dfu: Remove XTEA support 2019-10-09 20:56:38 +01:00
dfu-tool.c Mark more user-visible strings as translatable 2020-11-29 07:09:31 +00:00
dfu-tool.h2m use help2man for dfu-tool too 2018-02-09 17:26:18 +00:00
dfu.quirk dfu: Allow device to attach to normal without a bus reset 2020-09-04 17:52:00 +01:00
fu-plugin-dfu.c Set the protocol per-device not per-plugin 2019-11-25 18:01:54 +00:00
meson.build Allow contructing a firmware with multiple images 2020-09-21 18:11:13 +01:00
README.md Add external interface messages 2020-10-26 12:05:20 -05:00

DFU Support

Introduction

Device Firmware Update is a standard that allows USB devices to be easily and safely updated by any operating system.

Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob in DFU or DfuSe file format.

This plugin supports the following protocol IDs:

  • org.usb.dfu
  • com.st.dfuse

GUID Generation

These devices use the standard USB DeviceInstanceId values, e.g.

  • USB\VID_273F&PID_1003&REV_0001
  • USB\VID_273F&PID_1003
  • USB\VID_273F

Vendor ID Security

The vendor ID is set from the USB vendor, for example USB:0x0A12

Quirk use

This plugin uses the following plugin-specific quirks:

Quirk Description Minimum fwupd version
DfuFlags Optional quirks for a DFU device which doesn't follow the DFU 1.0 or 1.1 specification 1.0.1
DfuForceVersion Forces a specific DFU version for the hardware device. This is required if the device does not set, or sets incorrectly, items in the DFU functional descriptor. 1.0.1
DfuForceTimeout Forces a specific device timeout, in ms 1.4.0

External interface access

This plugin requires read/write access to /dev/bus/usb.