Richard Hughes
16b463334e
Export the generic Intel Thunderbolt firmware format
...
This is being used for other products, e.g. USB4 docks.
If non-Intel firmware is being used (e.g. ASMedia) then the explicit
calls to `fu_intel_thunderbolt_nvm_new()` can be changed to something
like `fu_firmware_new_from_gtypes()` with all the formats listed.
2022-08-30 14:20:14 +01:00
Richard Hughes
a5397c6836
Add a new vfunc to check if two firmwares are compatible
...
For future use.
2022-08-25 15:30:07 +01:00
Mario Limonciello
04c2186edc
Add support for loading default BIOS settings policy
...
A user can place a JSON file in /etc/fwupd/bios-settings.d/ with
the default desired policy for the machine.
fwupd will load this policy on startup to ensure BIOS settings
are set as desired by the system administrator.
2022-08-24 12:59:42 -05:00
Mario Limonciello
b7b0ce533d
trivial: Unify ambiguity between bios-attrs and bios-settings
...
These are currently used interchangeably since there was indecisiveness
which to use as the feature was being developed.
As outward facing it will be named with "settings", change all uses
in the code to match this.
2022-08-24 07:20:01 -05:00
Richard Hughes
934002553a
Allow loading BIOS attributes for host emulation
2022-08-01 13:32:12 +01:00
Richard Hughes
77006b75eb
Set the target value on the security attribute
...
Semantically it is the desire of the security attribute, not the bios
attribute, i.e. you could imagine that a specific attribute would have
to be *foo or bar or baz* for HSI-1 and *only foo* for HSI-2
Also make it easier to add possible BIOS attribute target values in
plugin code.
2022-08-01 07:12:18 +01:00
Mario Limonciello
7660222240
Add a unique identifier to all BIOSAttr objects
...
This identifier can be used by plugins or the daemon to disambiguate
behavior between two different drivers.
Set it up so that plugins don't NEED to use it, but optionally can
find attributes by either name or ID
2022-07-29 11:31:50 -05:00
Mario Limonciello
5ded4f44fe
Add support for reading and writing firmware attributes
...
This support is comprehensive:
* Client library support
* Daemon support
* plugin support
* Client tool support (with new commands)
2022-07-28 17:30:57 -05:00
Richard Hughes
829258401e
Allow plugins and backends to print debugging information to the console
...
This is really useful for debugging.
2022-07-28 16:10:06 +01:00
Richard Hughes
221238b4c0
trivial: Allow each device to specify a different acquiesce delay
...
Different device classes may need different values, and these may need
modifying by quirks. Also use 50ms to flush out any pending events.
2022-07-21 15:27:04 +01:00
Richard Hughes
a06dedb253
trivial: Add a fu_memread_uint24_safe() to make some code more correct
2022-07-14 11:03:13 +01:00
Richard Hughes
7a224007f2
Add support for Flat Image Tree aka FIT firmware
2022-07-08 14:05:20 +01:00
Richard Hughes
f3755ef708
Add support for Flattened Devicetree aka FDT firmware
2022-07-08 14:05:20 +01:00
Richard Hughes
57a1270bad
Add fu_firmware_get_parent() for future use
...
Some firmware stacks images hierarchically, and it's useful to be able
to get the parent when unrolling them out into a linear format.
2022-07-05 16:47:18 +01:00
Richard Hughes
95f7d23d58
Fix FuCfuOffer XML roundtrip
2022-07-01 13:57:18 +01:00
Richard Hughes
96b423e04f
Add support for IFWI Intel Flash Program Tool (aka FPT) firmware
2022-06-28 10:09:58 +01:00
Richard Hughes
0a7eb03704
Add a linear firmware wrapper
...
This allows us to parse any concatenated firmware format where the
image size is stored in the image.
2022-06-28 10:09:58 +01:00
Richard Hughes
08c7172168
Add support for parsing OptionROM firmware
2022-06-28 10:09:58 +01:00
Richard Hughes
f1542c3f9f
Add support for IFWI Intel Code Partition (aka CPD) firmware
2022-06-28 10:09:58 +01:00
Richard Hughes
0491b07a93
Make the FuFirmware->parse() vfunc more helpful
...
This removes the 100% unused addr_end parameter and explicitly makes
the addr_start into the start offset in more cases.
2022-06-27 15:40:11 -05:00
Richard Hughes
5e899535d4
amt: Modernize the plugin and split out common functionality
...
The MEI code is soon going to be used by a new plugin, so split it
out into libfwupdplugin like we did i2c.
2022-06-21 08:10:04 +01:00
Richard Hughes
cf9ebdb703
Add startup profiling functionality
...
Using `sudo FWUPD_PROFILE=10 ./src/fwupd --verbose` will print a
dump of startup times onto the console so that we can debug which
plugin is slowing down system startup. For example:
../src/fu-engine.c:5409:plugins-coldplug [108.55ms]:
../plugins/amt/fu-plugin-amt.c:437:amt [27.14ms]:
:create-context [12.66ms]
:get-version [8.44ms]
:add-device [3.95ms]
2022-06-14 22:08:02 +01:00
Richard Hughes
2dc6a7ef73
Remove fu_i2c_device_read_full()
...
Just use the version with the length specified.
2022-06-14 14:36:52 -05:00
Richard Hughes
d4d0ba0faf
Unexport fu_common_cab_build_silo()
...
There's no reason this needs to be in the shared library.
2022-06-14 14:36:52 -05:00
Richard Hughes
3eaa907534
Remove the now unnecessary fu_smbios_to_string()
2022-06-14 14:36:52 -05:00
Richard Hughes
fc2da47b69
Remove fu_strtoull_full()
2022-06-14 14:36:52 -05:00
Richard Hughes
377bcb718f
Remove the 'common' prefix from the volume creation methods
2022-06-14 14:36:52 -05:00
Richard Hughes
4105768a01
Remove the 'common' prefix when parsing version numbers
2022-06-14 14:36:52 -05:00
Richard Hughes
1d9d82ebc5
Use a common prefix for CPU-specific methods
2022-06-14 14:36:52 -05:00
Richard Hughes
067d7d8088
Split out the path helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
770a452132
Unexport fu_common_error_array_get_best()
...
Plugins should not be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
14cc9b2064
Unexport fu_common_reverse_uint8()
...
It's only used in one little-used plugin.
2022-06-14 14:36:52 -05:00
Richard Hughes
7f86ffab6f
Split out the dump helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
72ca59653e
Unexport fu_common_uri_get_scheme()
...
We don't want plugins to be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
518ba8b6f7
Unexport fu_common_realpath()
...
We don't want plugins to be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
2c5e4ff3ab
Unexport fu_common_firmware_builder()
...
We don't want plugins to be using this.
2022-06-14 14:36:52 -05:00
Richard Hughes
3f77af3cd4
Split out the kernel helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
fd9b9db5b3
Unexport fu_common_instance_id_strsafe()
...
We want plugins to use the instance ID builder instead now.
2022-06-14 14:36:52 -05:00
Richard Hughes
f759569a9f
Unexport fu_common_extract_archive()
...
We have a FuFirmware helper now, which doesn't use a temp dir.
2022-06-14 14:36:52 -05:00
Richard Hughes
25dccf09f7
Unexport fu_common_spawn_sync()
...
This isn't something we want plugins to use.
2022-06-14 14:36:52 -05:00
Richard Hughes
425fedcca1
trivial: Remove fu_byte_array_set_size_full()
2022-06-14 14:36:52 -05:00
Richard Hughes
ed1b13da28
Split out the memory helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
4b1313b406
Split out the GByte helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
9d33c29e92
Split out the string helpers to a new source file
2022-06-14 14:36:52 -05:00
Richard Hughes
3fe9c0de34
Split out the CRC and sum functions to new source files
2022-06-14 14:36:52 -05:00
Richard Hughes
dc91d59f8e
Remove the recently added fu_progress_add_step_full()
...
Just break API instead.
2022-06-03 13:47:11 -05:00
Richard Hughes
f9e6aa16a3
Remove some deprecated API
2022-06-03 13:47:11 -05:00
Richard Hughes
4ee6cce9b8
Remove some duplicated unsafe API
2022-06-03 13:47:11 -05:00
Richard Hughes
d6fd08e3a5
Remove some deprecated API
2022-06-03 13:47:11 -05:00
Richard Hughes
0cbcac93cd
Rename fu_udev_device_ioctl_full() as we broke ABI
2022-06-03 13:47:11 -05:00