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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.