fwupd/plugins/dfu/dfu.quirk
Richard Hughes 5981472a63 dfu: Fix a regression for devices using the Atmel FLIP Bootloader
This regressed in faa7871b08 as the
ONLY_QUIRK vendor instance ID was no longer being added when the device
switched into bootloader mode.

We could add back the ->probe() to get the vendor quirk, but arguably
the most sensible and correct thing to do is to just use the PID as
well. There is only two PIDs we care about, and matching *every* device
with the vendor ID is probably asking for trouble with other devices.
2022-07-08 12:34:35 +01:00

463 lines
11 KiB
Plaintext

# All DFU devices
[USB\CLASS_FE&SUBCLASS_01]
Plugin = dfu
# GD32VF103 Rev1
[USB\VID_28E9&PID_0189]
Flags = gd32,force-dfu-mode,will-disappear
Name = GD32VF103
Vendor = GDMicroelectronics
# Realtek USB camera
[USB\VID_0BDA&PID_5850]
CounterpartGuid = USB\VID_0BDA&PID_5800
[USB\VID_0BDA&PID_5855]
CounterpartGuid = USB\VID_0BDA&PID_5800
[USB\VID_0BDA&PID_58FE]
CounterpartGuid = USB\VID_0BDA&PID_5800
[USB\VID_0BDA&PID_5800]
Flags = detach-for-attach
# Openmoko Freerunner / GTA02
[USB\VID_1D50&PID_5119]
Plugin = dfu
Flags = ignore-polltimeout,no-pid-change,no-dfu-runtime,needs-bootloader,no-get-status-upload
# OpenPCD Reader
[USB\VID_16C0&PID_076B]
Plugin = dfu
Flags = ignore-polltimeout
# SIMtrace
[USB\VID_16C0&PID_0762]
Plugin = dfu
Flags = ignore-polltimeout
# OpenPICC
[USB\VID_16C0&PID_076C]
Plugin = dfu
Flags = ignore-polltimeout
# Siemens AG, PXM 40 & PXM 50
[USB\VID_0908&PID_02C4]
Plugin = dfu
[USB\VID_0908&PID_02C5]
Plugin = dfu
[USB\VID_0908&PID_02C4&REV_0000]
Flags = ignore-polltimeout
[USB\VID_0908&PID_02C5&REV_0000]
Flags = ignore-polltimeout
# Midiman M-Audio Transit
[USB\VID_0763&PID_2806]
Plugin = dfu
Flags = ignore-polltimeout
# LPC DFU bootloader
[USB\VID_1FC9&PID_000C]
Plugin = dfu
Flags = force-dfu-mode
# m-stack DFU
[USB\VID_273F&PID_1003]
Flags = attach-upload-download
[USB\VID_273F&PID_100A]
Flags = attach-upload-download
[USB\VID_273F&PID_1008]
Flags = attach-upload-download
# HydraBus
[USB\VID_1D50&PID_60A7]
Plugin = dfu
Flags = no-dfu-runtime,needs-bootloader
# Hughski AT90USBKEY Mouse+DFU Demo
[USB\VID_273F&PID_2000]
Flags = unsigned-payload
# Jabra 410 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0411]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset
# Jabra 510 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0421]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset
# Jabra 710 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0982]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset
# Jabra 810 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0971]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset
# Atmel AT90USB Bootloader
[USB\VID_03EB&PID_2FF7]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = ff01
[USB\VID_03EB&PID_2FF9]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = ff01
[USB\VID_03EB&PID_2FFA]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = ff01
[USB\VID_03EB&PID_2FFB]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = ff01
# Atmel ATMEGA Bootloader
[USB\VID_03EB&PID_2FEE]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FEF]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF0]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF2]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF3]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF4]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
# Atmel XMEGA Bootloader
[USB\VID_03EB&PID_2FE2]
Plugin = dfu
Flags = use-any-interface,force-dfu-mode
DfuForceVersion = ff01
# Leaflabs Maple3
[USB\VID_1EAF&PID_0003&REV_0200]
Plugin = dfu
DfuForceVersion = 0110
# AT32UC3B1256 [BLDR][USER] USER@0x2000, BLDR+USER=0x40000
[DFU_AVR\CID_0x58200203]
DfuAltName = @Flash/0x2000/1*248Kg
# AT32UC3A3256 [BLDR][USER] USER@0x2000, BLDR+USER=0x40000
[DFU_AVR\CID_0x58200204]
DfuAltName = @Flash/0x2000/1*248Kg
# AT90USB1287 [USER][BLDR] BLDR@0x1e000, BLDR+USER=0x20000
[DFU_AVR\CID_0x581e9782]
DfuAltName = @Flash/0x0/1*120Kg
# AT90USB647 [USER][BLDR] BLDR@0x0e000, BLDR+USER=0x10000
# AT90USB646 [USER][BLDR] BLDR@0x0e000, BLDR+USER=0x10000
[DFU_AVR\CID_0x581e9682]
DfuAltName = @Flash/0x0/1*56Kg
# ATmega32U4 [USER][BLDR] BLDR@0x07000, BLDR+USER=0x08000
[DFU_AVR\CID_0x581e9587]
DfuAltName = @Flash/0x0/1*28Kg
# ATmega16U4 [USER][BLDR] BLDR@0x03000, BLDR+USER=0x04000
[DFU_AVR\CID_0x581e9488]
DfuAltName = @Flash/0x0/1*12Kg
# ATmega32U2 [USER][BLDR] BLDR@0x07000, BLDR+USER=0x08000
[DFU_AVR\CID_0x581e958a]
DfuAltName = @Flash/0x0/1*28Kg
# ATmega16U2 [USER][BLDR] BLDR@0x03000, BLDR+USER=0x04000
[DFU_AVR\CID_0x581e9489]
DfuAltName = @Flash/0x0/1*12Kg
# AT90USB162 [USER][BLDR] BLDR@0x03000, BLDR+USER=0x04000
[DFU_AVR\CID_0x581e9482]
DfuAltName = @Flash/0x0/1*12Kg
# ATmega8U2 [USER][BLDR] BLDR@0x01000, BLDR+USER=0x02000
[DFU_AVR\CID_0x581e9389]
DfuAltName = @Flash/0x0/1*4Kg
# AT90USB82 [USER][BLDR] BLDR@0x01000, BLDR+USER=0x02000
[DFU_AVR\CID_0x581e9382]
DfuAltName = @Flash/0x0/1*4Kg
# ATxmega16A4 [USER] USER=0x4000
[DFU_AVR\CID_0x1e9441]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega16C4 [USER] USER=0x4000
[DFU_AVR\CID_0x1e9544]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega16D4 [USER] USER=0x4000
[DFU_AVR\CID_0x1e9442]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega32A4 [USER] USER=0x8000
[DFU_AVR\CID_0x1e9541]
DfuAltName = @Flash/0x0/1*32Kg
# ATxmega32C4 [USER] USER=0x8000
[DFU_AVR\CID_0x1e9443]
DfuAltName = @Flash/0x0/1*32Kg
# ATxmega32D4 [USER] USER=0x8000
[DFU_AVR\CID_0x1e9542]
DfuAltName = @Flash/0x0/1*32Kg
# ATxmega64A4 [USER] USER=0x10000
[DFU_AVR\CID_0x1e9646]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64C3 [USER] USER=0x10000
[DFU_AVR\CID_0x1e9649]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64D3 [USER] USER=0x10000
[DFU_AVR\CID_0x1e964a]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64D4 [USER] USER=0x10000
[DFU_AVR\CID_0x1e9647]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64A1 [USER] USER=0x10000
[DFU_AVR\CID_0x1e964e]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64A3 [USER] USER=0x10000
[DFU_AVR\CID_0x1e9642]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64B1 [USER] USER=0x10000
[DFU_AVR\CID_0x1e9652]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega64B3 [USER] USER=0x10000
[DFU_AVR\CID_0x1e9651]
DfuAltName = @Flash/0x0/1*64Kg
# ATxmega128C3 [USER] USER=0x20000
[DFU_AVR\CID_0x1e9752]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128D3 [USER] USER=0x20000
[DFU_AVR\CID_0x1e9748]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128D4 [USER] USER=0x20000
[DFU_AVR\CID_0x1e9747]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A1 [USER] USER=0x20000
[DFU_AVR\CID_0x1e974c]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A1D [USER] USER=0x20000
[DFU_AVR\CID_0x1e9741]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A3 [USER] USER=0x20000
[DFU_AVR\CID_0x1e9742]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128A4 [USER] USER=0x20000
[DFU_AVR\CID_0x1e9746]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128B1 [USER] USER=0x20000
[DFU_AVR\CID_0x1e974d]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega128B3 [USER] USER=0x20000
[DFU_AVR\CID_0x1e974b]
DfuAltName = @Flash/0x0/1*128Kg
# ATxmega192C3 [USER] USER=0x30000
[DFU_AVR\CID_0x1e9751]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega192D3 [USER] USER=0x30000
[DFU_AVR\CID_0x1e9749]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega192A1 [USER] USER=0x30000
[DFU_AVR\CID_0x1e974e]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega192A3 [USER] USER=0x30000
[DFU_AVR\CID_0x1e9744]
DfuAltName = @Flash/0x0/1*192Kg
# ATxmega256 [USER] USER=0x40000
[DFU_AVR\CID_0x1e9846]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega256D3 [USER] USER=0x40000
[DFU_AVR\CID_0x1e9844]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega256A3 [USER] USER=0x40000
[DFU_AVR\CID_0x1e9842]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega256A3B [USER] USER=0x40000
[DFU_AVR\CID_0x1e9843]
DfuAltName = @Flash/0x0/1*256Kg
# ATxmega384C3 [USER] USER=0x60000
[DFU_AVR\CID_0x1e9845]
DfuAltName = @Flash/0x0/1*384Kg
# ATxmega384D3 [USER] USER=0x60000
[DFU_AVR\CID_0x1e9847]
DfuAltName = @Flash/0x0/1*384Kg
# ATxmega8E5 [USER] USER=0x2000
[DFU_AVR\CID_0x1e9341]
DfuAltName = @Flash/0x0/1*8Kg
# ATxmega16E5 [USER] USER=0x4000
[DFU_AVR\CID_0x1e9445]
DfuAltName = @Flash/0x0/1*16Kg
# ATxmega32E5 [USER] USER=0x8000
[DFU_AVR\CID_0x1e954c]
DfuAltName = @Flash/0x0/1*32Kg
# STM32F745 dfuse bootloader
[USB\VID_0483&PID_DF11]
Flags = absent-sector-size,will-disappear
Plugin = dfu
DfuForceVersion = 011a
DfuForceTimeout = 5000
# Poly Studio USB
[USB\VID_095D&PID_9217]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_9218]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000
# Poly Eagle Eye Cube
[USB\VID_095D&PID_9212]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 30000
[USB\VID_095D&PID_9213]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 30000
# Poly Studio P15
[USB\VID_095D&PID_9290]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_9291]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000
# Poly ULCC
[USB\VID_095D&PID_9160]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_927B]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000
# Poly Eagle Eye Mini
[USB\VID_095D&PID_3001]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
[USB\VID_095D&PID_3002]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
# Poly Studio R30
[USB\VID_095D&PID_92B2]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_92B3]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000
[USB\VID_095D&PID_92B4]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
# Poly Studio P5
[USB\VID_095D&PID_9296]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
[USB\VID_095D&PID_9297]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
# Poly Studio E70
[USB\VID_095D&PID_92A1]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 90000
[USB\VID_095D&PID_92A2]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 90000
# Poly Studio P21
[USB\VID_095D&PID_9298]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
[USB\VID_095D&PID_9299]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
# AVer ATLAS CAM
[USB\VID_34AD&PID_0006]
Plugin = dfu
Flags = detach-for-attach
RemoveDelay = 60000
# AVer CAM520 Pro2
[USB\VID_2574&PID_0A30]
Plugin = dfu
Flags = detach-for-attach
RemoveDelay = 180000
# FlatFrog DFU
[USB\VID_25B5&PID_0004]
Plugin = dfu
Flags = manifest-poll,detach-for-attach,ignore-upload
# SunplusIT USB cameras
[USB\VID_1BCF&PID_0B1D]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,ignore-polltimeout
[USB\VID_1BCF&PID_0B1E]
Plugin = dfu
Flags = detach-for-attach,ignore-upload