Richard Hughes
aa95f30390
Allow reading the PciBcrAddr quirk from flashrom devices
2021-03-15 18:30:05 +00:00
JimmyYu
bc39faf4cf
pixart: Add check result in fw upgrade response
...
Signed-off-by: Richard Hughes <richard@hughsie.com>
2021-03-15 13:07:13 +00:00
Richard Hughes
52441f28a4
Allow objects to deserialize to XML
...
This makes a lot more sense; we can parse a firmware and export the same XML
we would use in a .builder.xml file. This allows us to two two things:
* Check we can round trip from XML -> binary -> XML
* Using a .builder.xml file we can check ->write() is endian safe
2021-03-15 12:07:30 +00:00
Richard Hughes
278c3998a5
Parse the IFD BIOS section into EFI FV and FFS2 sections
2021-03-15 10:46:39 +00:00
Richard Hughes
408b056984
trivial: Use fu_byte_array_append_bytes() in more places
2021-03-15 09:46:02 +00:00
Richard Hughes
664226a350
spi: Move all the IFD parsing to the new 'spi' plugin
...
We do not want to export this unfinished API, and it's probably best just to
not compile it by default until it is actually useful.
2021-03-15 09:45:17 +00:00
Richard Hughes
be527a8a60
trivial: Fix up the self test report for the bcm57xx binary
2021-03-13 16:16:27 +00:00
Benson Leung
f7832847f5
cros-ec: Allow a failure to write a section, do another write
...
The RO partition's USB endpoint has been observed to occasionally hiccup
(usb disconnect and reenumeration) upon reboot and initial attach, causing a
failure to update a section. Rather that making this fatal, let's set
ANOTHER_WRITE_REQUIRED and allow us to handle the new USB device after
this event.
fixes #3012
2021-03-13 07:58:05 -08:00
Richard Hughes
91324a13c0
pixart: Call finalize() on FuFirmware to avoid leaking
2021-03-12 15:51:25 +00:00
Richard Hughes
81d0502f1a
cros-ec: Fix up some uses of GError
2021-03-11 13:05:43 -08:00
Richard Hughes
42dcff32ca
wacom-usb: Add support for writing firmware
2021-03-11 15:48:02 +00:00
Richard Hughes
e574a942c8
wacom-usb: Fix firmware parse regression from FuFirmwareImage removal
2021-03-11 15:48:02 +00:00
Ricardo Cañuelo
2619442293
pixart: Detect multiple devices of the same type
...
Set the logical_id to the HID_UNIQ string instead of using the vendor,
device and model info.
2021-03-11 14:38:55 +01:00
Richard Hughes
ee48857806
pixart: Support building firmware with the model_name metadata
2021-03-11 12:04:00 +00:00
Richard Hughes
a910070570
bcm57xx: Allow the STAGE1_VERADDR to be unset
2021-03-11 10:14:29 +00:00
Richard Hughes
5f43586877
bcm57xx: Actually write the stage1 version into the file
2021-03-11 10:14:29 +00:00
Richard Hughes
50d05164d3
solokey: Add support for writing firmware
2021-03-11 10:13:46 +00:00
Richard Hughes
fecd3ae4ad
ebitdo: Add support for writing firmware
2021-03-10 21:33:28 -06:00
Richard Hughes
35a5962991
synaptics-mst: Add support for writing firmware
2021-03-10 16:35:43 -06:00
Richard Hughes
2667e4bdc1
synaptics-rmi: Never create a zero-sized v10 container
2021-03-10 21:00:18 +00:00
Richard Hughes
b86eac9034
synaptics-rmi: Write files with valid checksum data
2021-03-10 19:18:28 +00:00
Richard Hughes
5d5648745e
ccgx: Fix building firmware after the FuFirmwareImage conversion
2021-03-10 19:18:28 +00:00
JimmyYu
18d79a0625
pixart: Check firmware compatibility with hardware before flashing
...
Also add low-battery detection to ensure the update is safe to apply.
2021-03-10 16:23:18 +01:00
Emily Miller
7752ffe344
vli:ODM changed U2 pid, add json test
2021-03-10 14:20:58 +00:00
Richard Hughes
e9664e8448
trivial: Add fu_byte_array_append_bytes() helper
2021-03-10 14:01:11 +00:00
Richard Hughes
1981c63d58
Remove FuFirmwareImage and just use FuFirmware instead
...
This allows us to 'nest' firmware formats, and removes a ton of duplication.
The aim here is to deprecate FuFirmwareImage -- it's almost always acting
as a 'child' FuFirmware instance, and even copies most of the vfuncs to allow
custom types. If I'm struggling to work out what should be a FuFirmware and
what should be a FuFirmwareImage then a plugin author has no hope.
For simple payloads we were adding bytes into an image and then the image into
a firmware. This gets really messy when most plugins are treating the FuFirmware
*as* the binary firmware file.
The GBytes saved in the FuFirmware would be considered the payload with the
aim of not using FuFirmwareImage in the single-image case.
2021-03-09 21:14:12 +00:00
Mario Limonciello
dfbb549f1e
trivial: dell-dock: Save the base type in private structure
...
This may be used in the future for other expansion and determination.
2021-03-09 09:09:57 +00:00
Gary Lin
b283395049
uefi-capsule: Specify the section flags for .sbat
...
When using "objcopy -O binary" to generate AArch64 EFI images, it
silently drops the sections without "alloc" or "load" or the sections
with "unload", and this caused the content of .sbat was skipped in the
final EFI image.
This commit sets the common read-only data section flags to .sbat to
make sure the content will be copied.
Signed-off-by: Gary Lin <glin@suse.com>
2021-03-09 09:09:24 +00:00
Richard Hughes
c8d0afe33d
logitech-hidpp: Use fu_device_set_battery_level()
2021-03-05 12:27:10 +00:00
Sean-StarLabs
2bd7b62ee9
Correct L3 GUID ( #2979 )
2021-03-05 11:49:29 +00:00
Richard Hughes
9024112549
ccgx: Allow ignoring CCGX firmware checksum failures
...
This much improves fuzzing performance.
2021-03-05 11:37:46 +00:00
JimmyYu
6d45136c25
pixart: Filter the wrong report ID
2021-03-05 12:19:33 +01:00
Richard Hughes
56af6f21e9
elantp: Write the firmware in a slightly safer way
2021-03-05 09:47:38 +00:00
Richard Hughes
dd5f6247bc
trivial: Remove unused source file
2021-03-05 09:42:27 +00:00
Sean Rhodes
247f29ad47
Updated StarLabs guids
2021-03-04 17:56:43 +00:00
Richard Hughes
a6784611e4
superio: Ensure quirks are set on the new devices
...
Fixes a regression in 79a217a2a6
2021-03-03 18:15:16 +00:00
David Chiu
5abbb85e58
synaptics-rmi: Fix firmware update of pointing device on Lenovo ThinkPad Nano
2021-03-03 16:07:05 +00:00
Richard Hughes
2659ba596e
elantp: Require a reboot for i2c recovery write
...
ChromeOS reboots the i2c adapter but it's probably safer to just reboot:
648c32ee9b/etphidiap/scripts/chromeos-etphidiap-touch-firmware-update-legacy.sh (198)
2021-03-03 15:56:18 +00:00
Richard Hughes
78a1b18a93
elantp: Verify the firmware signature before flashing
2021-03-03 15:56:18 +00:00
Richard Hughes
0772c46e9f
elantp: Only call ->detach() when writing a firmware blob
...
The detach is actually destructive (!) and cannot be reattached unless actually
writing a new firmware image.
2021-03-03 15:56:18 +00:00
Richard Hughes
c9d6fecc5e
pixart: Workaround a HIDIOCGFEATURE bug and/or regression
...
We're still in the process of hunting for the real cause.
2021-03-03 15:36:42 +00:00
Richard Hughes
bf3732f994
pixart: Use the bluetooth UUID to set the logical ID
...
This means you can have more than one device attached to the same controller.
2021-03-03 15:36:42 +00:00
Richard Hughes
88d9ace4a3
pixart: Include the missing ->to_string() parent class
2021-03-03 15:36:42 +00:00
Richard Hughes
5f4c651d03
ccgx: Align the CCGX DMC firmware to 64 byte chunks
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31608
2021-03-03 14:29:29 +00:00
Richard Hughes
6db5522eaf
elantp: Fix a regression when recovering the device in i2c mode
...
This was broken in 6188be1dd4
, again mea culpa.
2021-03-03 13:24:52 +00:00
Richard Hughes
9f250fb511
elantp: Fix a regression in the defined IAP start address
...
This was accidentally changed in ae3ad6771
, mea culpa.
2021-03-03 12:41:59 +00:00
Richard Hughes
c81b755872
Be more strict for custom quirk keys
...
Rather than trying to guess typos, force each plugin to register the quirk
keys it supports, so we can show a sensible warning if required at startup on
the console.
2021-03-03 08:30:34 +00:00
Richard Hughes
7d132b728c
Simplify the quirk file format
...
The best way of not getting something wrong is to not require it in the first
place...
All plugins now use DeviceInstanceId-style quirk matches and we can just drop
the prefix in all files. We were treating HwId=, Guid= and DeviceInstanceId= in
exactly the same way -- they're just converted to GUIDs when building the silo!
2021-03-03 08:30:34 +00:00
Richard Hughes
79a217a2a6
superio: Use DeviceInstanceIDs to merge chip quirk metadata
...
This means we can use the standard ->set_quirk_kv() vfunc rather than using
FuQuirks directly with a custom group.
2021-03-03 08:30:34 +00:00
Richard Hughes
54c683c009
dfu: Use DeviceInstanceIDs to merge AVR quirk metadata
...
This means we can use the standard ->set_quirk_kv() vfunc rather than using
FuQuirks directly with a custom group.
2021-03-03 08:30:34 +00:00