fwupd/plugins/dfu/dfu.quirk
Richard Hughes b27a2520cc dfu: Require a specific USB class and subclass for DFU mode
This makes startup quicker as we no longer have to probe every USB device, and
is now possible with the new GUIDs we added. Devices not using the
specification-provided values can (and already are) worked around with quirks.
2018-12-03 13:57:52 +00:00

343 lines
8.5 KiB
Plaintext

# All DFU devices
[DeviceInstanceId=USB\CLASS_FE&SUBCLASS_01]
Plugin = dfu
# on PC platforms the DW1820A firmware is loaded at runtime and can't
# be stored on the device itself as the flash chip is unpopulated
[DeviceInstanceId=USB\VID_0A5C&PID_6412]
Plugin = dfu
DfuFlags = ignore-runtime
# Openmoko Freerunner / GTA02
[DeviceInstanceId=USB\VID_1D50&PID_5119]
Plugin = dfu
DfuFlags = ignore-polltimeout,no-pid-change,no-dfu-runtime,action-required,no-get-status-upload
# OpenPCD Reader
[DeviceInstanceId=USB\VID_16C0&PID_076B]
Plugin = dfu
DfuFlags = ignore-polltimeout
# SIMtrace
[DeviceInstanceId=USB\VID_16C0&PID_0762]
Plugin = dfu
DfuFlags = ignore-polltimeout
# OpenPICC
[DeviceInstanceId=USB\VID_16C0&PID_076C]
Plugin = dfu
DfuFlags = ignore-polltimeout
# Siemens AG, PXM 40 & PXM 50
[DeviceInstanceId=USB\VID_0908&PID_02C4]
Plugin = dfu
[DeviceInstanceId=USB\VID_0908&PID_02C5]
Plugin = dfu
[DeviceInstanceId=USB\VID_0908&PID_02C4&REV_0000]
DfuFlags = ignore-polltimeout
[DeviceInstanceId=USB\VID_0908&PID_02C5&REV_0000]
DfuFlags = ignore-polltimeout
# Midiman M-Audio Transit
[DeviceInstanceId=USB\VID_0763&PID_2806]
Plugin = dfu
DfuFlags = ignore-polltimeout
# LPC DFU bootloader
[DeviceInstanceId=USB\VID_1FC9&PID_000C]
Plugin = dfu
DfuFlags = force-dfu-mode
# m-stack DFU
[DeviceInstanceId=USB\VID_273F&PID_1003]
DfuFlags = attach-upload-download
[DeviceInstanceId=USB\VID_273F&PID_100A]
DfuFlags = attach-upload-download
# HydraBus
[DeviceInstanceId=USB\VID_1D50&PID_60A7]
Plugin = dfu
DfuFlags = no-dfu-runtime,action-required
# Jabra 410
[DeviceInstanceId=USB\VID_0B0E&PID_0412]
Plugin = dfu
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0201
CounterpartGuid = USB\VID_0B0E&PID_0411
# Jabra 510
[DeviceInstanceId=USB\VID_0B0E&PID_0420]
Plugin = dfu
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0201
CounterpartGuid = USB\VID_0B0E&PID_0421
# Jabra 710
[DeviceInstanceId=USB\VID_0B0E&PID_2475]
Plugin = dfu
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0508
CounterpartGuid = USB\VID_0B0E&PID_0982
# Jabra 810
[DeviceInstanceId=USB\VID_0B0E&PID_2456]
Plugin = dfu
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0508
CounterpartGuid = USB\VID_0B0E&PID_0971
[DeviceInstanceId=USB\VID_0B0E&PID_0411]
Plugin = dfu
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
[DeviceInstanceId=USB\VID_0B0E&PID_0421]
Plugin = dfu
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
[DeviceInstanceId=USB\VID_0B0E&PID_0982]
Plugin = dfu
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
[DeviceInstanceId=USB\VID_0B0E&PID_0971]
Plugin = dfu
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
# Atmel AT90USB Bootloader
[DeviceInstanceId=USB\VID_03EB&PID_2FF7]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF9]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FFA]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FFB]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
# Atmel ATMEGA Bootloader
[DeviceInstanceId=USB\VID_03EB&PID_2FEE]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FEF]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF0]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF2]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF3]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF4]
Plugin = dfu
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
# Atmel XMEGA Bootloader
[DeviceInstanceId=USB\VID_03EB&PID_2FE2]
Plugin = dfu
DfuFlags = use-any-interface,force-dfu-mode
# Leaflabs Maple3
[DeviceInstanceId=USB\VID_1EAF&PID_0003&REV_0200]
Plugin = dfu
DfuForceVersion = 0110
# Atmel FLIP Bootloader
[DeviceInstanceId=USB\VID_03EB]
Plugin = dfu
DfuForceVersion = ff01
# AT32UC3B1256 [BLDR][USER] USER@0x2000, BLDR+USER=0x40000
[AvrChipId=0x58200203]
DfuAltName = @Flash/0x2000/1*248Kg
# AT32UC3A3256 [BLDR][USER] USER@0x2000, BLDR+USER=0x40000
[AvrChipId=0x58200204]
DfuAltName = @Flash/0x2000/1*248Kg
# AT90USB1287 [USER][BLDR] BLDR@0x1e000, BLDR+USER=0x20000
[AvrChipId=0x581e9782]
DfuAltName = @Flash/0x0/1*120Kg
# AT90USB647 [USER][BLDR] BLDR@0x0e000, BLDR+USER=0x10000
# AT90USB646 [USER][BLDR] BLDR@0x0e000, BLDR+USER=0x10000
[AvrChipId=0x581e9682]
DfuAltName = @Flash/0x0/1*56Kg
# ATmega32U4 [USER][BLDR] BLDR@0x07000, BLDR+USER=0x08000
[AvrChipId=0x581e9587]
DfuAltName = @Flash/0x0/1*28Kg
# ATmega16U4 [USER][BLDR] BLDR@0x03000, BLDR+USER=0x04000
[AvrChipId=0x581e9488]
DfuAltName = @Flash/0x0/1*12Kg
# ATmega32U2 [USER][BLDR] BLDR@0x07000, BLDR+USER=0x08000
[AvrChipId=0x581e958a]
DfuAltName = @Flash/0x0/1*28Kg
# ATmega16U2 [USER][BLDR] BLDR@0x03000, BLDR+USER=0x04000
[AvrChipId=0x581e9489]
DfuAltName = @Flash/0x0/1*12Kg
# AT90USB162 [USER][BLDR] BLDR@0x03000, BLDR+USER=0x04000
[AvrChipId=0x581e9482]
DfuAltName = @Flash/0x0/1*12Kg
# ATmega8U2 [USER][BLDR] BLDR@0x01000, BLDR+USER=0x02000
[AvrChipId=0x581e9389]
DfuAltName = @Flash/0x0/1*4Kg
# AT90USB82 [USER][BLDR] BLDR@0x01000, BLDR+USER=0x02000
[AvrChipId=0x581e9382]
DfuAltName = @Flash/0x0/1*4Kg
# ATxmega16A4 [USER] USER=0x4000
[AvrChipId=0x1e9441]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega16C4 [USER] USER=0x4000
[AvrChipId=0x1e9544]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega16D4 [USER] USER=0x4000
[AvrChipId=0x1e9442]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega32A4 [USER] USER=0x8000
[AvrChipId=0x1e9541]
DfuAltName = @Flash/0x0/1*32Kg
# ATxmega32C4 [USER] USER=0x8000
[AvrChipId=0x1e9443]
DfuAltName = @Flash/0x0/1*32Kg
# ATxmega32D4 [USER] USER=0x8000
[AvrChipId=0x1e9542]
DfuAltName = @Flash/0x0/1*32Kg
# ATxmega64A4 [USER] USER=0x10000
[AvrChipId=0x1e9646]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64C3 [USER] USER=0x10000
[AvrChipId=0x1e9649]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64D3 [USER] USER=0x10000
[AvrChipId=0x1e964a]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64D4 [USER] USER=0x10000
[AvrChipId=0x1e9647]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64A1 [USER] USER=0x10000
[AvrChipId=0x1e964e]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64A3 [USER] USER=0x10000
[AvrChipId=0x1e9642]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64B1 [USER] USER=0x10000
[AvrChipId=0x1e9652]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64B3 [USER] USER=0x10000
[AvrChipId=0x1e9651]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega128C3 [USER] USER=0x20000
[AvrChipId=0x1e9752]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128D3 [USER] USER=0x20000
[AvrChipId=0x1e9748]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128D4 [USER] USER=0x20000
[AvrChipId=0x1e9747]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A1 [USER] USER=0x20000
[AvrChipId=0x1e974c]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A1D [USER] USER=0x20000
[AvrChipId=0x1e9741]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A3 [USER] USER=0x20000
[AvrChipId=0x1e9742]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A4 [USER] USER=0x20000
[AvrChipId=0x1e9746]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128B1 [USER] USER=0x20000
[AvrChipId=0x1e974d]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128B3 [USER] USER=0x20000
[AvrChipId=0x1e974b]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega192C3 [USER] USER=0x30000
[AvrChipId=0x1e9751]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega192D3 [USER] USER=0x30000
[AvrChipId=0x1e9749]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega192A1 [USER] USER=0x30000
[AvrChipId=0x1e974e]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega192A3 [USER] USER=0x30000
[AvrChipId=0x1e9744]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega256 [USER] USER=0x40000
[AvrChipId=0x1e9846]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega256D3 [USER] USER=0x40000
[AvrChipId=0x1e9844]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega256A3 [USER] USER=0x40000
[AvrChipId=0x1e9842]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega256A3B [USER] USER=0x40000
[AvrChipId=0x1e9843]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega384C3 [USER] USER=0x60000
[AvrChipId=0x1e9845]
DfuAltName = @Flash/0x0/1*384Kg
# ATxmega384D3 [USER] USER=0x60000
[AvrChipId=0x1e9847]
DfuAltName = @Flash/0x0/1*384Kg
# ATxmega8E5 [USER] USER=0x2000
[AvrChipId=0x1e9341]
DfuAltName = @Flash/0x0/1*8Kg
# ATxmega16E5 [USER] USER=0x4000
[AvrChipId=0x1e9445]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega32E5 [USER] USER=0x8000
[AvrChipId=0x1e954c]
DfuAltName = @Flash/0x0/1*32Kg