Commit Graph

4130 Commits

Author SHA1 Message Date
Richard Hughes
c6a671be7e ccgx: Get the silicon ID to map the flash parameters 2020-03-24 21:16:08 +00:00
Richard Hughes
11fa0a1e90 ccgx: Read the HPI device mode at startup 2020-03-24 21:16:08 +00:00
Richard Hughes
0a37232ba1 ccgx: Set up the HPI I²C config at startup 2020-03-24 21:16:08 +00:00
Mario Limonciello
36ffd92695 trivial: fix ubuntu CI 2020-03-24 10:02:28 -05:00
Richard Hughes
69b761ce64 trivial: Export fu_device_add_instance_id_full() for plugins to use
Sometimes we only want to add the instance ID to get the quirk matches, and it
is confusing to see the "fake" IDs in the 'fwupdmgr get-devices' output.
2020-03-24 14:43:31 +00:00
Richard Hughes
cff23f798f trivial: Autodetect the HID interface to use 2020-03-24 08:34:16 -05:00
Richard Hughes
62aa46cb83 ccgx: Create devices when in HID and I2C modes 2020-03-23 20:02:17 +00:00
Mario Limonciello
b963cb3678 Add a new ChromeOS CI target to build without GPG and PKCS7
This is actually built on Debian, but it's intended purpose is to
be able to check whether the package made bad assumptions for ChromeOS
2020-03-23 19:55:12 +00:00
Richard Hughes
d5aab65f30 Use Jcat files in firmware archives and for metadata
A Jcat file can be used to store GPG, PKCS-7 and SHA-256 checksums for multiple
files. This allows us to sign a firmware or metadata multiple times (perhaps
by the OEM and also then the LVFS) which further decentralizes the trust model
of the LVFS.

The Jcat format was chosen as the Microsoft catalog format is nonfree and not
documented. We also don't want to modify an existing .cat file created from WU
as this may make it unsuitable to use on Windows.

More information can be found here: https://github.com/hughsie/libjcat
2020-03-23 19:55:12 +00:00
Richard Hughes
86b0bae0c4 trivial: Do not use -Db_sanitize=address as it breaks g-ir-scanner
And nobody can figure out why!
2020-03-23 19:55:12 +00:00
Richard Hughes
46963b1118 csr: Allow truncated HID reads
The device is allowed to return short buffers during read operation. This fixes
a regression introduced in c04f5a3.

Fixes https://github.com/fwupd/fwupd/issues/1893
2020-03-23 13:40:34 +00:00
Richard Hughes
1ae456c49c trivial: Show the expected size when HID reads or writes were truncated 2020-03-23 13:40:34 +00:00
Emily
5f3a2c0bc1 vli: Only consider the high nibble when building the sub-version 2020-03-23 08:11:14 +00:00
Richard Hughes
ded9fef4b6 csr: Parse the firmware as a DFU file
This was changed to Intel hex in 7afd7cba0d,
probbaly due to a copy-paste mistake. Change it back to DFU.

Fixes https://github.com/fwupd/fwupd/issues/1890
2020-03-22 11:46:40 -05:00
Richard Hughes
811e75db4b Add support for EP963x hardware 2020-03-22 15:48:04 +00:00
Mario Limonciello
60f15fe426 trivial: ci: suppress binary-is-wrong-architecture as well 2020-03-20 16:10:28 -05:00
Mario Limonciello
75a3b17972 trivial: ci: suppress lintian error that is a lintian bug
This will be fixed in an updated lintian and is not a problem
for the fwupd packaging.
2020-03-20 16:10:28 -05:00
Mario Limonciello
6c5a9e04e5 trivial: snap: save artifacts from build
Should help for debugging problems without a local build as well
as in case upload to snapcraft.io fails to avoid having to re-run
full build.
2020-03-20 11:18:00 -05:00
Mario Limonciello
0b2c717e97 trivial: snap: fix bash completion
fwupdmgr is now using fwupdagent, and so we need to reference properly.
2020-03-20 11:18:00 -05:00
Mario Limonciello
14001f7523 trivial: snap: remove master snap
We're realistically never going to build something with this.
2020-03-20 11:18:00 -05:00
Mario Limonciello
c4bc1ad881 trivial: snap: add fwupdagent command 2020-03-20 11:18:00 -05:00
Mario Limonciello
d6baddc772 trivial: snap: include fwupdtpmevlog command (fixes: #1885) 2020-03-20 11:18:00 -05:00
Richard Hughes
c04f5a3e15 Add FuHidDevice abstraction
Quite a few plugins use HID commands to communicate with the hardware. At the
mement we have ~6 implementations of SET_REPORT and are soon to add one more.

Move this into common code.
2020-03-19 17:02:07 +00:00
Richard Hughes
c134451aeb trivial: Fix up a private function name that was missed 2020-03-19 06:43:42 +00:00
Richard Hughes
dd34e51711 trivial: Fix up some argument names with additional docs 2020-03-19 06:43:42 +00:00
Richard Hughes
ed07a17509 vli: Correctly attach VL103 after a firmware update
This works around a silicon errata which makes the existing 0xB0 chip reset
non-functional.

ALso, as VL10x and VL103 are so different now, use different `->attach()` and
`->detach()` implementations for code sanity.

Based on a patch by Sherlock Chu <SherlockChu@via-labs.com>, many thanks.
2020-03-19 06:43:42 +00:00
Richard Hughes
ac48c7f45a trivial: Add a GObject property for FuVliDevice::kind 2020-03-19 06:43:42 +00:00
Richard Hughes
86febb681b trivial: Fix a typo when calling fu_firmware_image_add_string() 2020-03-18 18:57:06 +00:00
Richard Hughes
48d9fb8f74 ccgx: Parse the metadata block in the firmware image 2020-03-18 18:57:06 +00:00
Richard Hughes
b258e514c5 ccgx: Add a firmare parser for cyacd files
These are visually similar to Intel hex files, but different enough to demand
their own parser. Multiple images can be stored in one firmware file, with the
`addr` set to the SiliconID and the `idx` set to the position in the file.
2020-03-18 18:57:06 +00:00
Mario Limonciello
c0f1f1c7e3 trivial: logitech-hidpp: decrease the verbosity of some debugging 2020-03-17 18:43:08 -05:00
Mario Limonciello
15cb61b34e trivial: logical-hidpp: fix some debugging messages not working 2020-03-17 18:43:08 -05:00
Mario Limonciello
c6ae0d998b logitech: Correctly set the protocol
Fixes updates on signed receivers.
2020-03-17 18:43:08 -05:00
exploide
b3c8bc4010 trivial: update command consumes device ids in fish shell completion 2020-03-17 19:12:00 +00:00
Richard Hughes
09a4f7559c Add the optional device-id to the update --help output
Fixes https://github.com/fwupd/fwupd/issues/1870
2020-03-17 13:03:16 +00:00
Richard Hughes
2c9445281a Fix a difficult-to-trigger daemon hang when replugging devices
Use only one GMainLoop in FuDeviceList; we can only iterate one loop at a time
anyway, and having the mainloops per-item complicates the lifecycle of the
fu_device_list_wait_for_replug() functionality considerably.
2020-03-17 13:02:54 +00:00
Richard Hughes
252b0c704e vli: Remove a dock device from the whitelist that is never going to be updated
This is an old EOL dock that does not respond well to probing -- leading to an
occasional multi-second startup deadlock on startup.
2020-03-16 11:56:35 +00:00
Richard Hughes
3dadb99c6c vli: Add some trivial debugging to help track down a bug 2020-03-16 11:56:35 +00:00
Richard Hughes
bd5e6f00d2 vli: Never add USB hub devices that are not upgradable
There's almost no point; you can't interact with them in any meaningful way.
2020-03-16 11:56:35 +00:00
Mario Limonciello
7b866e5f92 uefi: Don't use shim for non-secure boot configurations
Since the entry is dynamically created this removes one area that
can potentially cause failures.
Helps: #1794
2020-03-16 06:55:05 -05:00
Elvis Stansvik
efc2e47e48 Start fwupd-activate.service after snapd.service
Instead of using RequiresMountsFor=/snap/fwupd/current, which will not
work since /snap/fwupd/current is a symlink [1].

This will work since the mount units generated by snapd all have
Before=snapd.service, so will be stopped after snapd.service during
shutdown.

With After=snapd.service, fwupd-activate.service will then stop before
snapd.service, at a point when all snap mount units are still running.

Fixes the issue where fwupd-activate.service hangs when stopped, causing
a stop job timeout during shutdown.

[1] See https://github.com/systemd/systemd/issues/8907

Closes #1654
2020-03-15 09:06:21 -05:00
Richard Hughes
7825ae8dd1 dfu: Actually reload the DFU device after upgrade has completed
The m-stack DFU quirk also requires that we get the runtime status so that the
USB_DFU_SUCCESS_FUNC callback gets called. We were doing this by accident
before, and since switching to the FuDevice subclass this was dropped.

The dfu_device_refresh_and_clear() function is safe to call on a device which
does not have a working runtime interface.
2020-03-12 15:41:14 +00:00
Richard Hughes
0e39ff0ef8 trivial: Add a section on using a compat layers in fwupd 2020-03-12 11:44:51 +00:00
Richard Hughes
fa41739ab0 dfu: Add one more m-stack device requiring a quirk 2020-03-11 16:10:10 +00:00
Mario Limonciello
92ff9c7b93 Apply version format to releases and devices at same time 2020-03-10 14:31:16 -05:00
Richard Hughes
4f0e344a0a Ensure that the DeviceID is set for child devices
If we do not ->open() the device (e.g. because it uses a parent device to proxy
writes) then the child never gets a DeviceID which causes all kinds of issues.
2020-03-10 17:09:13 +00:00
Richard Hughes
1e571730d0 Fix a daemon crash when removing children
If the device has a child with a longer remove_delay we actually crash because
the FuDeviceList tries to remove the child device twice. Just remove all the
children when the parent remove delay elapsed rather than set up each device
with a unique timeout.
2020-03-10 17:09:13 +00:00
Richard Hughes
c3afed36d5 Allow waiting for the parent device when replugging
If a child device resets a parent device then we want to wait for the root
device, not the child.
2020-03-10 17:09:13 +00:00
Richard Hughes
51b4a1666e Add fu_device_get_root() shared API
This gets the 'topmost parent' for a composite device, as devices such as hubs
may have more logical layers than just one.
2020-03-10 17:09:13 +00:00
Richard Hughes
4fb8693598 vli: Fix an error when detaching MSP430
The parent has to be opened and we need a longer delay before reading.
2020-03-10 15:12:09 +00:00