fwupd/plugins/dfu/dfu.quirk
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

306 lines
7.9 KiB
Plaintext

# 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]
DfuFlags = ignore-runtime
# Openmoko Freerunner / GTA02
[DeviceInstanceId=USB\VID_1D50&PID_5119]
DfuFlags = ignore-polltimeout,no-pid-change,no-dfu-runtime,action-required,no-get-status-upload
# OpenPCD Reader
[DeviceInstanceId=USB\VID_16C0&PID_076B]
DfuFlags = ignore-polltimeout
# SIMtrace
[DeviceInstanceId=USB\VID_16C0&PID_0762]
DfuFlags = ignore-polltimeout
# OpenPICC
[DeviceInstanceId=USB\VID_16C0&PID_076C]
DfuFlags = ignore-polltimeout
# Siemens AG, PXM 40 & PXM 50
[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]
DfuFlags = ignore-polltimeout
# LPC DFU bootloader
[DeviceInstanceId=USB\VID_1FC9&PID_000C]
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]
DfuFlags = no-dfu-runtime,action-required
# Jabra 410
[DeviceInstanceId=USB\VID_0B0E&PID_0412]
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0201
Guid = USB\VID_0B0E&PID_0411
# Jabra 510
[DeviceInstanceId=USB\VID_0B0E&PID_0420]
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0201
Guid = USB\VID_0B0E&PID_0421
# Jabra 710
[DeviceInstanceId=USB\VID_0B0E&PID_2475]
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0508
Guid = USB\VID_0B0E&PID_0982
# Jabra 810
[DeviceInstanceId=USB\VID_0B0E&PID_2456]
DfuFlags = no-dfu-runtime
DfuJabraDetach = 0508
Guid = USB\VID_0B0E&PID_0971
[DeviceInstanceId=USB\VID_0B0E&PID_0411]
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
[DeviceInstanceId=USB\VID_0B0E&PID_0421]
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
[DeviceInstanceId=USB\VID_0B0E&PID_0982]
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
[DeviceInstanceId=USB\VID_0B0E&PID_0971]
DfuFlags = no-pid-change,force-dfu-mode,ignore-upload,attach-extra-reset
# Atmel AT90USB Bootloader
[DeviceInstanceId=USB\VID_03EB&PID_2FF7]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF9]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FFA]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FFB]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
# Atmel ATMEGA Bootloader
[DeviceInstanceId=USB\VID_03EB&PID_2FEE]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FEF]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF0]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF2]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF3]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
[DeviceInstanceId=USB\VID_03EB&PID_2FF4]
DfuFlags = use-any-interface,legacy-protocol,force-dfu-mode
# Atmel XMEGA Bootloader
[DeviceInstanceId=USB\VID_03EB&PID_2FE2]
DfuFlags = use-any-interface,force-dfu-mode
# Leaflabs Maple3
[DeviceInstanceId=USB\VID_1EAF&PID_0003&REV_0200]
DfuForceVersion = 0110
# Atmel FLIP Bootloader
[DeviceInstanceId=USB\VID_03EB]
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