fwupd/plugins/coreboot
Richard Hughes f50ff2c27e Decouple the version format from the version itself
If we say that the version format should be the same for the `version_lowest`
and the `version_bootloader` then it does not always make sense to set it at
the same time.

Moving the `version_format` to a standalone first-class property also means it
can be typically be set in the custom device `_init()` function, which means we
don't need to worry about *changing* ther version format as set by the USB and
UDev superclass helpers.
2020-02-25 14:00:09 +00:00
..
coreboot.quirk plugins/coreboot: Improve version detection 2019-11-27 14:26:26 +00:00
fu-coreboot-common.c trivial: Fix coreboot commit to fix CI 2019-11-27 14:40:49 +00:00
fu-plugin-coreboot.c Decouple the version format from the version itself 2020-02-25 14:00:09 +00:00
fu-plugin-coreboot.h trivial: Fix coreboot commit to fix CI 2019-11-27 14:40:49 +00:00
meson.build plugins/coreboot: Add missing fu_hash dependency 2019-12-18 08:33:10 +00:00
README.md trivial: Document the use of vendor-id in each plugin 2019-12-11 18:10:44 +00:00

coreboot

Introduction

Until now only the version detection has been implemented.

System identification

coreboot can be detected the following ways:

  1. by parsing SMBIOS type 0 vendor string. On coreboot enabled platforms it's always coreboot.
  2. by parsing ACPI tables. An ACPI device with the _HID BOOT0000 exists. (This HID has been reserved for coreboot enabled platforms)
  3. by parsing the devicetree. A node under firmware/coreboot with the compatible id coreboot exists.

coreboot version string

The coreboot version string can have an optional prefix (see below). After the optional prefix the major, minor string follows and finally the build string, containing the exact commit and repository state, follows.

For example:

4.10-989-gc8a4e4b9c5-dirty

Exception on Lenovo devices:

The thinkpad_acpi kernel module requires a specific pattern in the DMI version string. To satisfy those requirements coreboot adds the CBETxxxx prefix to the DMI version string on all Lenovo devices.

For example:

CBET4000 4.10-989-gc8a4e4b9c5-dirty

The coreboot DMI version string always starts with CBET.

GUID Generation

These device uses hardware ID values which are derived from SMBIOS. The following HWIDs are added on coreboot enabled platforms:

  • HardwareID-3
  • HardwareID-4
  • HardwareID-5
  • HardwareID-6
  • HardwareID-10

They do match the values provided by fwupdtool hwids or the ComputerHardwareIds.exe Windows utility.

Vendor ID Security

The vendor ID is set from the BIOS vendor, in this instance DMI:coreboot