The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH v3 0/3] coreboot CFR firmware attributes
@ 2026-07-10  6:12 Sean Rhodes
  2026-07-10  6:12 ` [PATCH v3 1/3] firmware: Move firmware attributes class helper Sean Rhodes
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Sean Rhodes @ 2026-07-10  6:12 UTC (permalink / raw)
  To: Tzung-Bi Shih
  Cc: Hans de Goede, Ilpo Järvinen, Corentin Chary, Luke D. Jones,
	Denis Benato, Prasanth Ksr, Jorge Lopez, Mark Pearson,
	Derek J. Clark, Joshua Grisham, Sean Rhodes, Michael S. Tsirkin,
	Huacai Chen, Chen-Yu Tsai, Florian Fainelli, linux-kernel,
	platform-driver-x86, Dell.Client.Kernel, Brian Norris,
	Julius Werner, Thomas Zimmermann, Javier Martinez Canillas,
	Titouan Ameline de Cadeville, Kees Cook, chrome-platform

Hi,

This series adds a coreboot CFR firmware-attributes driver.

v3 addresses Julius's review feedback that this does not belong under
platform/x86.  The driver now lives under drivers/firmware/coreboot/,
next to the existing coreboot table consumers.  To support that, the
firmware-attributes class helper is moved from drivers/platform/x86 to
drivers/firmware.

The series also renames drivers/firmware/google to
drivers/firmware/coreboot, because the drivers in that directory are
coreboot table drivers rather than Google-specific firmware drivers.
The existing CONFIG_GOOGLE_* symbols are intentionally kept to avoid
user configuration churn.

The CFR driver uses the existing firmware-attributes ABI.  It exposes
runtime EFI variable-backed boolean, enum and integer options, skips
suppressed, volatile, dependency-gated and non-runtime options, and keeps
read-only or inactive options read-only in sysfs.

For CFR runtime-apply metadata using APM_CNT, x86 systems can apply a
setting immediately after writing the EFI variable.  Non-x86 builds keep
the EFI write and report pending_reboot.

Changes in v3:
- Move the driver from platform/x86 to drivers/firmware/coreboot.
- Split out the firmware-attributes class helper move.
- Rename drivers/firmware/google to drivers/firmware/coreboot.
- Keep CONFIG_GOOGLE_* symbols unchanged.
- Keep coreboot bus internals private to drivers/firmware/coreboot.
- Keep CFR record definitions private to the CFR driver.
- Avoid rewriting EFI variables when userspace writes the current value.

Testing:
- Tested on a Star Labs Byte with firmware 26.07 and the driver built as a
  module against Linux 6.17.
- Verified runtime APM_CNT apply with power_led.
- Verified reboot-needed behavior with debug_level.
- Built x86 objects with W=1 for the CFR/coreboot/helper path and touched
  platform-x86 firmware-attributes users.
- Built ARM64 objects with clang for the CFR/coreboot/helper path.
- Passed git diff --check and scripts/checkpatch.pl --strict.

Sean Rhodes (3):
  firmware: Move firmware attributes class helper
  firmware: Rename google firmware directory to coreboot
  firmware: coreboot: Add CFR firmware attributes driver

 MAINTAINERS                                   |   18 +-
 drivers/firmware/Kconfig                      |    5 +-
 drivers/firmware/Makefile                     |    3 +-
 drivers/firmware/{google => coreboot}/Kconfig |   19 +-
 .../firmware/{google => coreboot}/Makefile    |    1 +
 drivers/firmware/{google => coreboot}/cbmem.c |    0
 drivers/firmware/coreboot/coreboot-cfr.c      | 1068 +++++++++++++++++
 .../{google => coreboot}/coreboot_table.c     |    0
 .../{google => coreboot}/coreboot_table.h     |    0
 .../framebuffer-coreboot.c                    |    0
 drivers/firmware/{google => coreboot}/gsmi.c  |    0
 .../memconsole-coreboot.c                     |    0
 .../memconsole-x86-legacy.c                   |    0
 .../{google => coreboot}/memconsole.c         |    0
 .../{google => coreboot}/memconsole.h         |    6 +-
 drivers/firmware/{google => coreboot}/vpd.c   |    0
 .../{google => coreboot}/vpd_decode.c         |    0
 .../{google => coreboot}/vpd_decode.h         |    0
 .../firmware_attributes_class.c               |    2 +-
 drivers/platform/x86/Kconfig                  |    3 -
 drivers/platform/x86/Makefile                 |    2 -
 drivers/platform/x86/asus-armoury.c           |    2 +-
 .../x86/dell/dell-wmi-sysman/sysman.c         |    2 +-
 drivers/platform/x86/hp/hp-bioscfg/bioscfg.c  |    2 +-
 drivers/platform/x86/lenovo/think-lmi.c       |    2 +-
 drivers/platform/x86/lenovo/wmi-other.c       |    2 +-
 drivers/platform/x86/samsung-galaxybook.c     |    2 +-
 .../linux/firmware_attributes.h               |    6 +-
 28 files changed, 1120 insertions(+), 25 deletions(-)
 rename drivers/firmware/{google => coreboot}/Kconfig (83%)
 rename drivers/firmware/{google => coreboot}/Makefile (92%)
 rename drivers/firmware/{google => coreboot}/cbmem.c (100%)
 create mode 100644 drivers/firmware/coreboot/coreboot-cfr.c
 rename drivers/firmware/{google => coreboot}/coreboot_table.c (100%)
 rename drivers/firmware/{google => coreboot}/coreboot_table.h (100%)
 rename drivers/firmware/{google => coreboot}/framebuffer-coreboot.c (100%)
 rename drivers/firmware/{google => coreboot}/gsmi.c (100%)
 rename drivers/firmware/{google => coreboot}/memconsole-coreboot.c (100%)
 rename drivers/firmware/{google => coreboot}/memconsole-x86-legacy.c (100%)
 rename drivers/firmware/{google => coreboot}/memconsole.c (100%)
 rename drivers/firmware/{google => coreboot}/memconsole.h (82%)
 rename drivers/firmware/{google => coreboot}/vpd.c (100%)
 rename drivers/firmware/{google => coreboot}/vpd_decode.c (100%)
 rename drivers/firmware/{google => coreboot}/vpd_decode.h (100%)
 rename drivers/{platform/x86 => firmware}/firmware_attributes_class.c (94%)
 rename drivers/platform/x86/firmware_attributes_class.h => include/linux/firmware_attributes.h (60%)


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-07-10 12:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-10  6:12 [PATCH v3 0/3] coreboot CFR firmware attributes Sean Rhodes
2026-07-10  6:12 ` [PATCH v3 1/3] firmware: Move firmware attributes class helper Sean Rhodes
2026-07-10 12:11   ` Mark Pearson
2026-07-10  6:12 ` [PATCH v3 2/3] firmware: Rename google firmware directory to coreboot Sean Rhodes
2026-07-10  7:34   ` Thomas Zimmermann
2026-07-10  6:12 ` [PATCH v3 3/3] firmware: coreboot: Add CFR firmware attributes driver Sean Rhodes
2026-07-10  7:42   ` Uwe Kleine-König

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox