mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-28 12:52:38 +00:00

This also lets us remove the call to dfu_device_wait_for_replug() which was causing a deadlock due to unsafe main context usage. Splitting the code allows us to use the device list to watch for replug, without adding even more Jabra- specific plugin code to the DFU plugin. Looking at this with a 40,000ft view, the Jabra runtime really doesn't have much in common with DFU and the reason it was originally all lumped together was that the daemon couldn't "change" plugins between detach and update. It's unfortunate that we have to include a sleep() in the DFU code after the DFU probe, but this is specified by Jabra themselves. Attempting to open the device without waiting reboots the hub back into runtime firmware mode, so we can't even retry the failing setup action.
328 lines
8.2 KiB
Plaintext
328 lines
8.2 KiB
Plaintext
# All DFU devices
|
|
[DeviceInstanceId=USB\CLASS_FE&SUBCLASS_01]
|
|
Plugin = dfu
|
|
|
|
# Realtek USB camera
|
|
[DeviceInstanceId=USB\VID_0BDA&PID_5850]
|
|
CounterpartGuid = USB\VID_0BDA&PID_5800
|
|
[DeviceInstanceId=USB\VID_0BDA&PID_5855]
|
|
CounterpartGuid = USB\VID_0BDA&PID_5800
|
|
[DeviceInstanceId=USB\VID_0BDA&PID_58FE]
|
|
CounterpartGuid = USB\VID_0BDA&PID_5800
|
|
[DeviceInstanceId=USB\VID_0BDA&PID_5800]
|
|
Flags = detach-for-attach
|
|
|
|
# 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]
|
|
Flags = only-supported
|
|
|
|
# Openmoko Freerunner / GTA02
|
|
[DeviceInstanceId=USB\VID_1D50&PID_5119]
|
|
Plugin = dfu
|
|
Flags = ignore-polltimeout,no-pid-change,no-dfu-runtime,needs-bootloader,no-get-status-upload
|
|
|
|
# OpenPCD Reader
|
|
[DeviceInstanceId=USB\VID_16C0&PID_076B]
|
|
Plugin = dfu
|
|
Flags = ignore-polltimeout
|
|
|
|
# SIMtrace
|
|
[DeviceInstanceId=USB\VID_16C0&PID_0762]
|
|
Plugin = dfu
|
|
Flags = ignore-polltimeout
|
|
|
|
# OpenPICC
|
|
[DeviceInstanceId=USB\VID_16C0&PID_076C]
|
|
Plugin = dfu
|
|
Flags = 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]
|
|
Flags = ignore-polltimeout
|
|
[DeviceInstanceId=USB\VID_0908&PID_02C5&REV_0000]
|
|
Flags = ignore-polltimeout
|
|
|
|
# Midiman M-Audio Transit
|
|
[DeviceInstanceId=USB\VID_0763&PID_2806]
|
|
Plugin = dfu
|
|
Flags = ignore-polltimeout
|
|
|
|
# LPC DFU bootloader
|
|
[DeviceInstanceId=USB\VID_1FC9&PID_000C]
|
|
Plugin = dfu
|
|
Flags = force-dfu-mode
|
|
|
|
# m-stack DFU
|
|
[DeviceInstanceId=USB\VID_273F&PID_1003]
|
|
Flags = attach-upload-download
|
|
[DeviceInstanceId=USB\VID_273F&PID_100A]
|
|
Flags = attach-upload-download
|
|
|
|
# HydraBus
|
|
[DeviceInstanceId=USB\VID_1D50&PID_60A7]
|
|
Plugin = dfu
|
|
Flags = no-dfu-runtime,needs-bootloader
|
|
|
|
# Jabra 410 [appIDLE & dfuIDLE]
|
|
[DeviceInstanceId=USB\VID_0B0E&PID_0411]
|
|
Plugin = dfu
|
|
Flags = no-pid-change,ignore-upload,attach-extra-reset
|
|
|
|
# Jabra 510 [appIDLE & dfuIDLE]
|
|
[DeviceInstanceId=USB\VID_0B0E&PID_0421]
|
|
Plugin = dfu
|
|
Flags = no-pid-change,ignore-upload,attach-extra-reset
|
|
|
|
# Jabra 710 [appIDLE & dfuIDLE]
|
|
[DeviceInstanceId=USB\VID_0B0E&PID_0982]
|
|
Plugin = dfu
|
|
Flags = no-pid-change,ignore-upload,attach-extra-reset
|
|
|
|
# Jabra 810 [appIDLE & dfuIDLE]
|
|
[DeviceInstanceId=USB\VID_0B0E&PID_0971]
|
|
Plugin = dfu
|
|
Flags = no-pid-change,ignore-upload,attach-extra-reset
|
|
|
|
# Atmel AT90USB Bootloader
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FF7]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FF9]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FFA]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FFB]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
|
|
# Atmel ATMEGA Bootloader
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FEE]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FEF]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FF0]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FF2]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FF3]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FF4]
|
|
Plugin = dfu
|
|
Flags = use-any-interface,legacy-protocol,force-dfu-mode
|
|
|
|
# Atmel XMEGA Bootloader
|
|
[DeviceInstanceId=USB\VID_03EB&PID_2FE2]
|
|
Plugin = dfu
|
|
Flags = 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
|