From: Sean Rhodes <sean@starlabs.systems>
To: Tzung-Bi Shih <tzungbi@kernel.org>
Cc: "Hans de Goede" <hansg@kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Corentin Chary" <corentin.chary@gmail.com>,
"Luke D. Jones" <luke@ljones.dev>,
"Denis Benato" <denis.benato@linux.dev>,
"Prasanth Ksr" <prasanth.ksr@dell.com>,
"Jorge Lopez" <jorge.lopez2@hp.com>,
"Mark Pearson" <mpearson-lenovo@squebb.ca>,
"Derek J. Clark" <derekjohn.clark@gmail.com>,
"Joshua Grisham" <josh@joshuagrisham.com>,
"Sean Rhodes" <sean@starlabs.systems>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Huacai Chen" <chenhuacai@kernel.org>,
"Chen-Yu Tsai" <wenst@chromium.org>,
"Florian Fainelli" <florian.fainelli@broadcom.com>,
linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org, Dell.Client.Kernel@dell.com,
"Brian Norris" <briannorris@chromium.org>,
"Julius Werner" <jwerner@chromium.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Javier Martinez Canillas" <javierm@redhat.com>,
"Titouan Ameline de Cadeville" <titouan.ameline@gmail.com>,
"Kees Cook" <kees@kernel.org>,
chrome-platform@lists.linux.dev
Subject: [PATCH v3 0/3] coreboot CFR firmware attributes
Date: Fri, 10 Jul 2026 07:12:43 +0100 [thread overview]
Message-ID: <cover.1783663929.git.sean@starlabs.systems> (raw)
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%)
next reply other threads:[~2026-07-10 6:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-10 6:12 Sean Rhodes [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1783663929.git.sean@starlabs.systems \
--to=sean@starlabs.systems \
--cc=Dell.Client.Kernel@dell.com \
--cc=briannorris@chromium.org \
--cc=chenhuacai@kernel.org \
--cc=chrome-platform@lists.linux.dev \
--cc=corentin.chary@gmail.com \
--cc=denis.benato@linux.dev \
--cc=derekjohn.clark@gmail.com \
--cc=florian.fainelli@broadcom.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=javierm@redhat.com \
--cc=jorge.lopez2@hp.com \
--cc=josh@joshuagrisham.com \
--cc=jwerner@chromium.org \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luke@ljones.dev \
--cc=mpearson-lenovo@squebb.ca \
--cc=mst@redhat.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=prasanth.ksr@dell.com \
--cc=titouan.ameline@gmail.com \
--cc=tzimmermann@suse.de \
--cc=tzungbi@kernel.org \
--cc=wenst@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox