fwupd/plugins/coreboot/README.md
Patrick Rudolph 0b7143da66 plugins: Add coreboot plugin
Detect and parse current coreboot version.
There's no need to depend on libflashrom for now.

An update mechanism isn't implemented as the kernel interface isn't
stable yet and will be implemented in a separate commit.

Tested on coreboot enabled machine.
Example output:
coreboot System Firmware
  DeviceId:             81104bde9db7cb037936659ea727c739f47a5029
  Guid:                 230c8b18-8d9b-53ec-838b-6cfc0383493a <- main-system-firmware
  Guid:                 de6fd40f-4ec9-5c0b-95e1-8fb13d1b030c <- LENOVO&ThinkPad T410&2537VG5
  Guid:                 978b0d18-bfe9-5279-9a9f-68dc247a705f <- LENOVO&ThinkPad T410&LENOVO&2537VG5
  Summary:              Open Source system boot firmware
  Plugin:               coreboot
  Flags:                internal|registered
  Vendor:               LENOVO
  Version:              4.10.991
  VersionFormat:        triplet
  Icon:                 computer
  Created:              2019-10-14

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2019-10-17 18:31:01 +02:00

1.2 KiB

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 always starts with CBET. After the prefix the version, major, minor string follows and finally the build string, containing the exact commit and repository state, follows.

For example:

CBET4000 4.10-989-gc8a4e4b9c5-dirty

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.