Richard Hughes
371f6b2bfa
libfwupdplugin: Make FuPlugin::devices lazy loaded
...
Most plugins don't actually use the per-plugin cache...
2020-06-22 21:55:50 +01:00
Richard Hughes
1d900f7d60
libfwupdplugin: Make FuPlugin::report_metadata lazy loaded
2020-06-22 21:55:50 +01:00
Richard Hughes
3444cf629b
Lazy load FuEngine::approved_firmware
...
The common case is no approved list, and an empty hash table.
2020-06-22 21:55:50 +01:00
Richard Hughes
4d7edc65b0
libfwupdplugin: Lazy load FuDevice::metadata
2020-06-22 21:55:50 +01:00
Richard Hughes
5bb537c214
libfwupdplugin: Fix trivial memory leak when using fu_udev_device_incorporate()
...
This also adds two missing property notify events.
2020-06-22 15:55:02 +01:00
Richard Hughes
b1ae0dcbbc
logind: Fix trivial memory leak at startup
...
The g_dbus_proxy_get_name_owner() function is (return full).
2020-06-22 15:55:02 +01:00
Richard Hughes
b0426f8a24
tpm-eventlog: Fix memory leak when reading file
...
The file contents were literally just read four lines above.
2020-06-22 15:55:02 +01:00
Ryan Lee
4c177ad540
ccgx: add new protocol for dmc dock
2020-06-22 12:57:43 +01:00
Mario Limonciello
91e27e145a
Add a new plugin for legacy BIOS
...
This plugin is only enabled when coreboot isn't detected.
It intentionally does not check for EFI to be disabled at startup
since it can also notify the user that UEFI capsule updates are
disabled on the system even if running in UEFI mode.
2020-06-22 11:22:18 +01:00
Richard Hughes
5a831fa7ab
vli: Set the i2c instance IDs in probe()
...
They do not need to query the device, so ->setup() is not required.
2020-06-22 10:42:05 +01:00
Richard Hughes
d63cedc444
Check all AppStream components when verifying
...
Additionally, ignore the 'not found' error codes so we drop down to the release
missing error.
Fixes https://github.com/fwupd/fwupd/issues/2196
2020-06-21 15:14:28 +01:00
Benson Leung
53fad4cd6c
trivial: cros-ec: Use fu-memcpy-safe
2020-06-20 07:24:32 +01:00
Benson Leung
3a02ad5129
cros-ec: Add cros-ec-firmware
...
cros-ec firmware are in fmap layout, and have two sections
that this plugin will look for, the EC_RO, and EC_RW sections.
Tested using a servo_micro firmware:
$ fwupdtool firmware-parse servo_micro_v2.4.17-df61092c3.bin
<select fmap option>
FuCrosEcFirmware:
Version: 2.4.17
FuFirmwareImage:
ID: EC_RO
Index: 0x1
Version: servo_micro_v2.4.17-df61092c3
Data: 0xf000
FuFirmwareImage:
ID: FR_MAIN
Index: 0x2
Data: 0xf000
FuFirmwareImage:
ID: RO_FRID
Index: 0x3
Address: 0xc4
Data: 0x20
FuFirmwareImage:
ID: FMAP
Index: 0x4
Address: 0x9a40
Version: 1.0
Data: 0x15e
FuFirmwareImage:
ID: WP_RO
Index: 0x5
Data: 0x10000
FuFirmwareImage:
ID: EC_RW
Index: 0x6
Address: 0x10000
Version: servo_micro_v2.4.17-df61092c3
Data: 0x10000
FuFirmwareImage:
ID: RW_FWID
Index: 0x7
Address: 0x100c4
Data: 0x20
2020-06-20 07:24:32 +01:00
Benson Leung
23ca19acf8
fmap-firmware: Parse flashmap format into images
...
Implements a search for the fmap, and follow the map to break the firmware
into the constituent images.
Tested using a servo_micro firmware:
$ fwupdtool firmware-parse servo_micro_v2.4.17-df61092c3.bin
<select fmap option>
FuFmapFirmware:
FuFirmwareImage:
ID: EC_RO
Index: 0x1
Data: 0xf000
FuFirmwareImage:
ID: FR_MAIN
Index: 0x2
Data: 0xf000
FuFirmwareImage:
ID: RO_FRID
Index: 0x3
Address: 0xc4
Data: 0x20
FuFirmwareImage:
ID: FMAP
Index: 0x4
Address: 0x9a40
Version: 1.0
Data: 0x15e
FuFirmwareImage:
ID: WP_RO
Index: 0x5
Data: 0x10000
FuFirmwareImage:
ID: EC_RW
Index: 0x6
Address: 0x10000
Data: 0x10000
FuFirmwareImage:
ID: RW_FWID
Index: 0x7
Address: 0x100c4
Data: 0x20
2020-06-20 07:24:32 +01:00
Benson Leung
acba98bd50
fmap-firmware: Add initial skeleton for fmap
...
fmap is a Google flash layout format that is used in several of Google's
firmware projects, including Chrome OS Embedded Controller and the Chrome OS
coreboot firmwares. Introduce it as a firmware format in libfwupdplugin.
2020-06-20 07:24:32 +01:00
Richard Hughes
0164141f9b
trivial: Fix incorrect comment text
2020-06-19 10:59:16 +01:00
Richard Hughes
e5a4d52ea1
trivial: Spelling fixes from codespell
2020-06-18 20:49:12 +01:00
Mario Limonciello
5164e713f6
trivial: fix issue with agent on but man off
...
Fixes : #2192
2020-06-18 13:37:12 -05:00
Mario Limonciello
7d5f6b0232
dell-dock: Add more module types to the enum
...
Unfortunately module type has more than I previously realized.
The meanings that previously were applied fortunately worked for
the most important case (130-180W TBT) but didn't for single C, dual
C or small power (45W) cases.
Since composite_prepare was trying to read and interpret these, it
causes failures when these other ones are encountered.
I reproduced this on a 130W adapter plugged into a single C (type 0x4).
This meant the update wouldn't install since NULL was returned for the
type.
In case a new module ID is added later, also return an "unknown" for
the metadata.
2020-06-17 17:10:05 -05:00
Mario Limonciello
1b8047be1d
trivial: fu-util: correct an assertion when no remotes configured
...
```
(fwupdmgr:185983): FuMain-CRITICAL **: 15:20:57.044: fu_util_time_to_str: assertion 'tmp != 0' failed
```
2020-06-17 15:49:39 -05:00
Mario Limonciello
f412227415
trivial: don't show reconstruction errors if uefi device is missing
...
The system must support UEFI capsule updates in order to measure
this. (Fixes : #2181 )
2020-06-17 15:01:34 -05:00
Mario Limonciello
28bcecc028
trivial: fwupdtpmevlog: make clearer which algorithm is used
2020-06-17 15:01:34 -05:00
Mario Limonciello
9122999bfb
tpm-eventlog: verify all algorithms, not just one of them
...
This will help to suss out any problems that are specific to sha1
or sha256 eventlog calculation.
2020-06-17 15:01:34 -05:00
Mario Limonciello
fe862a1d1b
tpm-eventlog: Always look at all supported algorithms
...
This will effectively mean that both sha1 and sha256 results are
sent back to uefi plugin for analysis.
2020-06-17 15:01:34 -05:00
Richard Hughes
87143298cd
pci-mei: Set the security attr result for a passed version
2020-06-17 18:37:27 +01:00
Richard Hughes
19a60e62bc
trivial: Check for the _UNKNOWN enum when mashalling to GVariant
2020-06-17 18:37:27 +01:00
Mario Limonciello
8012fb3c8d
trivial: dell-dock: clarify the pending update message ( #2185 )
...
To a user it's not obvious if being unplugged means host or AC adapter.
Unplugging from AC adapter will prevent the dock from completing an
update.
2020-06-17 11:49:33 -05:00
Richard Hughes
33b0f48b6f
vli: Wait for the root device to be replugged when updating the MSP430
...
The MSP device is a virtual child of the USB hub.
2020-06-17 17:29:34 +01:00
Richard Hughes
a8610c3027
vli: Do not use GUID matching for the MSP device
...
Not strictly required, but it makes the FuDeviceList operation much simpler.
2020-06-17 17:29:34 +01:00
Richard Hughes
1ec96e31f5
Allow plugins to set remove delay only on the child
...
Force the FuDevice parent to have the largest of the child removal delays.
This avoids each plugin enumerating the children (which may not even be added
yet) to increase the length of the allowed parent delay.
2020-06-17 17:29:34 +01:00
Richard Hughes
6d9ae625ed
trivial: Move the report success report to common code
...
This would allow us to use it from fwupdagent in the future.
2020-06-16 15:49:28 +01:00
Richard Hughes
b114661a25
Collect per-device report metadata for the history database
...
Add two new vfuncs that can be used to collect report metadata from devices
both before and after the update has run. This means we can remove the hacks
where we set add 'global' metadata entries and just hope that there is only one
device from the same plugin that is updated.
This also allows us to collect debugging metadata from devices after an offline
update has been run.
2020-06-16 15:49:28 +01:00
Richard Hughes
e012513bed
trivial: Allow modifying the historical device metadata
2020-06-16 15:49:28 +01:00
Richard Hughes
4837ab5a22
trivial: Simplify marking devices as reported
2020-06-16 15:49:28 +01:00
Richard Hughes
589270a7c4
trivial: Simplify some reporting code
...
This is not a fast path, so make getting the FwupdRemote simpler.
2020-06-16 15:49:28 +01:00
Mario Limonciello
5b63015c19
tpm-eventlog: fix PCR0 calculation
...
One of the core problems is that systems with both sha1 and sha256
were miscalculating.
Fixes : #2181
2020-06-15 16:17:29 -05:00
Mario Limonciello
2caea54202
uefi: check for free space after cleaning up ESP
...
In a very small ESP situation it's possible that the amount of free
space is insufficient until it's actually been cleaned.
Fixes : #2179
2020-06-15 10:21:18 -05:00
Richard Hughes
e261bb6fa0
Record the UEFI failure in more cases
...
Ensure the historical error is set for failed NEEDS_REBOOT UEFI devices that do
not set LastAttemptStatus.
2020-06-15 16:16:37 +01:00
Richard Hughes
7f7f0aed1f
trivial: Add more items to the kernel command line checker
...
This data is from Pascal Ernster, many thanks.
2020-06-15 12:11:00 +01:00
Richard Hughes
d94ce34d56
trivial: Add more items to the kernel command line checker
...
This data is from Pascal Ernster, many thanks.
2020-06-12 20:56:17 -05:00
Richard Hughes
4fd61e4756
vli: Use the GPIOB reset for the MiniDock VL103
2020-06-11 07:03:23 +01:00
Richard Hughes
6cd6e2adb6
vli: Set FuQuirks on the shared SPI object
2020-06-11 07:03:23 +01:00
Richard Hughes
92072b4239
vli: Add the project ID shared SPI PD controllers
...
The Mini-Dock and Travel-Hub accidentally share the same VID:PID and this is the
only way to tell them apart.
2020-06-11 07:03:23 +01:00
Mario Limonciello
080789916f
trivial: fix news generation script
2020-06-10 13:03:14 -05:00
Richard Hughes
0143c67c76
trivial: Build a specific tag from the libjcat subproject
2020-06-10 15:21:54 +01:00
Richard Hughes
afda962cba
Fix regression when checking for downgraded metadata
...
When verifying a signature the valid results are ordered by timestamp. The
CHECKSUM results have a zero timestamp and should have been ordered last.
The sorting callback was wrong, which explains the odd result where we could
downgrade Jcat signatures before we fixed 64ebf9, and nicely explains why we
ignored a timestamp of zero in the first place.
When getting the timestamp, ensure we actually get the newest _signature_ not
just the newest result in case checksums start having timestamps in the future
for some reason. Use new API from libjcat where available, else fall back to
sneaking it out using GObject properties and magic values.
2020-06-10 15:21:54 +01:00
Mario Limonciello
471a0e2105
fu-main: Make it clearer what lost name is and bump it to warning
...
This happens often enough when people switch from snap to distro
package that we should mention it in non-verbose logs.
Fixes : #2112
2020-06-09 11:05:09 -05:00
Mario Limonciello
6b9664168d
trivial: checkout branch to fix changelog publishing
2020-06-09 09:42:32 -05:00
Richard Hughes
83a21cb7cd
vli: Allow chained usb hub devices where the parent needs GPIOB reset
...
As both hub devices share a FuVliUsbhubDeviceClass instance we cannot 'hijack'
the vfuncs depending on object type. This allows the downstream hub to proxy to
the upstream hub where a GPIOB reset can be performed.
2020-06-09 11:56:30 +01:00
Richard Hughes
09950a13ce
vli: Do not modify the class vfuncs depending on device type
...
We can have multiple FuVliPdDevice objects registered with the daemon, but they
will all share the FuVliPdDeviceClass instance. If one device requries a
silicon workaround, do not 'hijack' the vfunc for all devices of this type.
This means we do the right thing when updating both the one that requires the
workaround, and the 'normal' one.
2020-06-09 11:30:49 +01:00