fwupd/plugins
Simon Ho 5e67108ab8
plugins: add new plugin for Synaptics CAPE devices (#3746)
CAPE family is Audio DSP for a board range of applications in IOT, PC
and mobile can be interfaced via I2C, UART or USB interface. This patch
is only for CX31993 and CX31988 chips, there is not immediate plans is
to add support to other CAPE devices.

CX31993 have two separate firmware .hid file for for each partition. It
need to convert two .hid files into a .fw file for fwupd tool to
consume.

Currently, this patch is only support for EPOS headsets with basic
firmware update feature. Either new code singing or manifest.xml are
unsupported yet.

The code has been tested with CX31993 EVK board.

A test firmware file is put at 'src/fuzzing/firmware/synaptics-cape.fw'

synaptics-cape: Port to new FuProgress API and style fixups

synaptics-cape: Fix compile errors and add missing test fw file

Signed-off-by: Simon Ho <simon.ho@synaptics.com>

synaptics-cape: Fix fuzzer test

Signed-off-by: Simon Ho <simon.ho@synaptics.com>

synaptics-cape: Fix progress bar number

Signed-off-by: Simon Ho <simon.ho@synaptics.com>

synaptics-cape: Mark the fuzzing target

trivial: Use a stable GLib branch for fuzzing

synaptics-cape: Fix progress bar number

Signed-off-by: Simon Ho <simon.ho@synaptics.com>

synaptics-cape: Fix readme

synaptics-cape: Style fixups

synaptics-cape: Fix progress bar percentage

synaptics-cape: Style fixups
2021-09-15 03:42:07 +08:00
..
acpi-dmar trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
acpi-facp trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
acpi-phat trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
altos Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
amt trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
analogix Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
ata Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
bcm57xx Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
bios trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
ccgx Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
colorhug Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
cpu trivial: Do not use deprecated GLib API 2021-09-10 15:02:46 +01:00
cros-ec Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
dell Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
dell-dock Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
dell-esrt trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
dfu Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
dfu-csr Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
ebitdo Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
elantp Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
emmc Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
ep963x Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
fastboot Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
flashrom Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
fresco-pd Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
goodix-moc Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
hailuck Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
intel-spi Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
iommu trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
jabra Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
lenovo-thinklmi trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
linux-lockdown trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
linux-sleep trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
linux-swap trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
linux-tainted trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
logind trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
logitech-bulkcontroller Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
logitech-hidpp Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
modem-manager Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
msr Allow adding GUIDs to each HSI security attr 2021-09-03 22:03:28 +01:00
nitrokey trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
nvme Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
optionrom Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
parade-lspcon Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
pci-bcr Allow adding GUIDs to each HSI security attr 2021-09-03 22:03:28 +01:00
pci-mei Allow adding GUIDs to each HSI security attr 2021-09-03 22:03:28 +01:00
pixart-rf Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
platform-integrity trivial: platform-integrity: remove an unused variable 2021-09-03 15:10:38 -05:00
powerd migrate powerd plugin from method call to signal 2021-08-12 17:01:13 +01:00
realtek-mst Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
redfish Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
rts54hid Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
rts54hub Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
solokey Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
steelseries trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
superio plugins/superio: Fix detection of IT5570 for StarBook Mk V (#3747) 2021-09-14 10:41:24 +01:00
synaptics-cape plugins: add new plugin for Synaptics CAPE devices (#3746) 2021-09-15 03:42:07 +08:00
synaptics-cxaudio synaptics-cxaudio: Use accurate FuProgress steps 2021-09-13 14:28:15 +01:00
synaptics-mst Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
synaptics-prometheus Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
synaptics-rmi Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
system76-launch Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
test Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
thelio-io Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
thunderbolt Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
tpm Allow adding GUIDs to each HSI security attr 2021-09-03 22:03:28 +01:00
tpm-eventlog trivial: system firmware may primarily use sha256 bank instead sha1 2021-09-07 16:11:49 +08:00
uefi-capsule Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
uefi-dbx Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
uefi-pk Allow adding GUIDs to each HSI security attr 2021-09-03 22:03:28 +01:00
uefi-recovery trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
upower trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
vli Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
wacom-raw Allow using a per-device global percentage completion 2021-09-13 14:28:15 +01:00
wacom-usb wacom-usb: Fix a false positive in real world firmware 2021-09-14 14:04:51 +01:00
meson.build plugins: add new plugin for Synaptics CAPE devices (#3746) 2021-09-15 03:42:07 +08:00
README.md trivial: update markdown for pre-commit style 2021-07-18 14:42:47 -05:00

Adding a new plugin

An extensible architecture allows for providing new plugin types (for reading and writing different firmware) as well as ways quirk their behavior.

You can find more information about the architecture in the developers section of the fwupd website.

You can use the fwupd developer documentation to assist with APIs available to write the plugin.

If you have a firmware specification and would like to see support in this project, please file an issue and share the spec. Patches are also welcome.

We will not accept plugins that upgrade hardware using a proprietary Linux executable, proprietary UEFI executable, proprietary library, or DBus interface.

Plugin interaction

Some plugins may be able to influence the behavior of other plugins. This includes things like one plugin turning on a device, or providing missing metadata to another plugin.

The ABI for these interactions is defined in: https://github.com/fwupd/fwupd/blob/master/src/fu-device-metadata.h

All interactions between plugins should have the interface defined in that file.