Skip to contentSkip to conversation

coreboot CFR firmware attributes

PATCH In review Sean Rhodes 5 participants 14 messages Sep 1 – Oct 13

Subsystems (14)
lore
Share & tools
lore

Sean Rhodes

author maintainer
#0 lore raw

v14 cover coreboot CFR firmware attributes

Move the firmware attributes class helper out of platform/x86, rename the coreboot-table firmware driver directory from google to coreboot, and add a coreboot CFR firmware attributes driver.

Changes in v14:
- Rebase on current upstream master after Linux 7.3-rc1, preserving the intervening coreboot table bounds and CBMEM no-map changes.
- Drop the standalone include-order cleanup. Replace the affected relative includes directly in the firmware attributes helper move, as requested by Tzung-Bi.
- Split the DRM coreboot framebuffer dependency update from the firmware directory and Kconfig rename so it can receive a DRM Acked-by separately.
- Keep the CFR driver and its runtime behavior unchanged from v13.

Changes in v13:
- Rebase on current upstream master.
- Restore the CONFIG_GOOGLE_* to CONFIG_COREBOOT_* renames for generic coreboot firmware symbols, with the old names kept as transitional symbols.
Julius clarified that the symbol names are part of the directory rename cleanup and should describe coreboot rather than Google. Update the matching Kconfig dependencies and Makefile gates to use the new symbols.
- Split the arm64 defconfig symbol update into a separate final patch, as requested by Krzysztof and Julius, instead of folding it into the rename.
- Move the COREBOOT FIRMWARE DRIVERS MAINTAINERS entry to its alphabetical position.
- Make the CFR APM_CNT runtime-apply dependency explicit with HAS_IOPORT instead of using an x86-only runtime branch.

Changes in v12:
- Temporarily kept the existing CONFIG_GOOGLE_* symbols and dropped the arm64 defconfig update after review feedback against the user-visible config rename. v13 supersedes this with transitional symbols and a split defconfig patch.
- Free invalid enum labels before returning an error from CFR enum parsing.

Changes in v11:
- Keep the scoped cleanup in the CFR driver, but use explicit goto cleanup for the nested sysfs group registration path.

Changes in v10:
- Rename generic firmware Kconfig symbols from CONFIG_GOOGLE_* to CONFIG_COREBOOT_* and keep the old names as transitional symbols, as suggested by Julius.
- Update arm64 defconfig and DRM coreboot framebuffer dependencies for the new symbols. In v13, the arm64 defconfig update is split into its own patch; in v14, the DRM dependency is split into its own patch.
- Address the nested cleanup-path review on CFR attribute registration.

Changes in v9:
- Add the missing kstrtox.h include used by kstrtou32().
- Use a single kobject rollback path when setting registration fails.
- Split a few helper locals for readability, including the pending reboot device lookup and enum-value population.
- Avoid an intermediate void pointer cast while parsing numeric CFR options.
- Check the possible-values buffer length before computing each label length.

Changes in v8:
- Add a preparatory include-order cleanup before moving the firmware attributes class helper. This is superseded by the direct replacements in v14.
- Add direct includes for __packed and container_of(), use scoped cleanup for EFI names and the driver mutex, and document the efivar lock requirement on private helpers.
- Replace the duplicated CFR record walkers with one checked iterator that distinguishes malformed input from the end of a record list.
- Validate enum entries before accessing them and propagate malformed child records instead of treating them as absent.
- Restore the EFI variable after a failed runtime apply without retrying the failed firmware operation, and only emit a change event when the new EFI value remains stored.
- Document the possible-values size limit and why CFR entries without a usable runtime EFI variable are skipped.

Changes in v7:
- Validate the CFR payload checksum and use bounded record walks. Propagate malformed input and transient probe failures instead of silently dropping settings.
- Make EFI writes transactional, serialize EFI reads and writes, and expose settings read-only when EFI writes are unavailable. Preserve pending_reboot when rollback cannot fully restore a setting.
- Propagate suppressed, dependency-gated, read-only and inactive form state, and bound form nesting.
- Preserve APM token zero and reject enumerations whose values cannot fit in the sysfs output buffer.

Earlier revisions:
- Move the driver from platform/x86 to drivers/firmware/coreboot and split out the firmware-attributes helper move and google-to-coreboot directory rename, following Julius's review.
- Keep coreboot bus internals and CFR records private, avoid rewriting EFI variables when the requested value is already active, and store driver data on the class device instead of in a file-global pointer.
- Use the coreboot-specific device ID header, explicit helper includes, scoped resource cleanup and device-managed driver state in response to the initial reviews.

Tested on a Star Labs Byte with firmware 26.07: runtime APM_CNT apply was verified with power_led, and reboot-needed behavior was verified with debug_level.

Sean Rhodes (5):
firmware: Move firmware attributes class helper
firmware: Rename google firmware directory to coreboot drm/sysfb: Update coreboot framebuffer Kconfig symbol
firmware: coreboot: Add CFR firmware attributes driver
arm64: defconfig: Update coreboot firmware symbols

 MAINTAINERS                                   |   34 +-
 arch/arm64/configs/defconfig                  |    6 +-
 drivers/firmware/Kconfig                      |    5 +-
 drivers/firmware/Makefile                     |    3 +-
 drivers/firmware/{google => coreboot}/Kconfig |   89 +-
 drivers/firmware/coreboot/Makefile            |   15 +
 drivers/firmware/{google => coreboot}/cbmem.c |    0
 drivers/firmware/coreboot/coreboot-cfr.c      | 1204 +++++++++++++++++
 .../{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/firmware/google/Makefile              |   14 -
 drivers/gpu/drm/sysfb/Kconfig                 |    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 +-
 31 files changed, 1337 insertions(+), 66 deletions(-)
 rename drivers/firmware/{google => coreboot}/Kconfig (57%)
 create mode 100644 drivers/firmware/coreboot/Makefile
 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%)
 delete mode 100644 drivers/firmware/google/Makefile
 rename drivers/platform/x86/firmware_attributes_class.h => include/linux/firmware_attributes.h (60%)
author maintainer
#1 lore raw

PATCH v14 1/5 firmware: Move firmware attributes class helper

Move the firmware attributes class helper from drivers/platform/x86 to drivers/firmware and expose its class declaration through a public Linux header.

The helper is not x86-specific. Keeping it in drivers/firmware lets coreboot firmware drivers use the standard firmware-attributes ABI without living under platform/x86.

Replace the affected drivers' relative helper includes directly with the new public header.

---
 MAINTAINERS                                               | 8 ++++++++
 drivers/firmware/Kconfig                                  | 3 +++
 drivers/firmware/Makefile                                 | 1 +
 .../x86 => firmware}/firmware_attributes_class.c          | 2 +-
 drivers/platform/x86/Kconfig                              | 3 ---
 drivers/platform/x86/Makefile                             | 2 --
 drivers/platform/x86/asus-armoury.c                       | 2 +-
 drivers/platform/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 +++---
 13 files changed, 22 insertions(+), 15 deletions(-)
 rename drivers/{platform/x86 => firmware}/firmware_attributes_class.c (94%)
 rename drivers/platform/x86/firmware_attributes_class.h => include/linux/firmware_attributes.h (60%)
MAINTAINERS +8 -0
index 4dfc1fb14ef7..a8048eaf49e5 100644
@@ -10181,6 +10181,14 @@ F:	include/linux/firewire.h
 F:	include/uapi/linux/firewire*.h
 F:	tools/firewire/
 
+FIRMWARE ATTRIBUTES CLASS
+M:	Hans de Goede <[email protected]>
+M:	Ilpo Järvinen <[email protected]>
+L:	[email protected]
+S:	Maintained
+F:	drivers/firmware/firmware_attributes_class.c
+F:	include/linux/firmware_attributes.h
+
 FIRMWARE FRAMEWORK FOR ARMV8-A
 M:	Sudeep Holla <[email protected]>
 L:	[email protected] (moderated for non-subscribers)
drivers/firmware/Kconfig +3 -0
index b7cc11e4fbfa..35dd6d422caf 100644
@@ -8,6 +8,9 @@ menu "Firmware Drivers"
 
 source "drivers/firmware/arm_scmi/Kconfig"
 
+config FW_ATTR_CLASS
+	tristate
+
 config ARM_SCPI_PROTOCOL
 	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
 	depends on ARM || ARM64 || COMPILE_TEST
drivers/firmware/Makefile +1 -0
index be46f1e1dc77..0e1e1b92a486 100644
@@ -17,6 +17,7 @@ obj-$(CONFIG_FIRMWARE_MEMMAP)	+= memmap.o
 obj-$(CONFIG_MTK_ADSP_IPC)	+= mtk-adsp-ipc.o
 obj-$(CONFIG_RASPBERRYPI_FIRMWARE) += raspberrypi.o
 obj-$(CONFIG_FW_CFG_SYSFS)	+= qemu_fw_cfg.o
+obj-$(CONFIG_FW_ATTR_CLASS)	+= firmware_attributes_class.o
 obj-$(CONFIG_SYSFB)		+= sysfb.o
 obj-$(CONFIG_SYSFB_SIMPLEFB)	+= sysfb_simplefb.o
 obj-$(CONFIG_TH1520_AON_PROTOCOL) += thead,th1520-aon.o
drivers/firmware/firmware_attributes_class.c renamed from drivers/platform/x86/firmware_attributes_class.c +1 -1
similarity index 94%
rename from drivers/platform/x86/firmware_attributes_class.c
rename to drivers/firmware/firmware_attributes_class.c
index 736e96c186d9..503ecc288086 100644
@@ -3,7 +3,7 @@
 /* Firmware attributes class helper module */
 
 #include <linux/module.h>
-#include "firmware_attributes_class.h"
+#include <linux/firmware_attributes.h>
 
 const struct class firmware_attributes_class = {
 	.name = "firmware-attributes",
drivers/platform/x86/Kconfig +0 -3
index 957034f39e4e..4851bf45157d 100644
@@ -925,9 +925,6 @@ config DASHARO_ACPI
 
 source "drivers/platform/x86/x86-android-tablets/Kconfig"
 
-config FW_ATTR_CLASS
-	tristate
-
 config INTEL_IMR
 	bool "Intel Isolated Memory Region support"
 	depends on X86_INTEL_QUARK && IOSF_MBI
drivers/platform/x86/Makefile +0 -2
index 872ac3842391..cab20a4145e3 100644
@@ -63,8 +63,6 @@ obj-$(CONFIG_X86_PLATFORM_DRIVERS_HP)	+= hp/
 # Hewlett Packard Enterprise
 obj-$(CONFIG_UV_SYSFS)       += uv_sysfs.o
 
-obj-$(CONFIG_FW_ATTR_CLASS)	+= firmware_attributes_class.o
-
 # IBM Thinkpad (before 2005)
 obj-$(CONFIG_IBM_RTL)		+= ibm_rtl.o
 obj-$(CONFIG_SENSORS_HDAPS)	+= hdaps.o
drivers/platform/x86/asus-armoury.c +1 -1
index 93d9665717af..fb382de5b57b 100644
@@ -21,6 +21,7 @@
 #include <linux/dmi.h>
 #include <linux/err.h>
 #include <linux/errno.h>
+#include <linux/firmware_attributes.h>
 #include <linux/fs.h>
 #include <linux/kernel.h>
 #include <linux/kmod.h>
@@ -35,7 +36,6 @@
 #include <linux/sysfs.h>
 
 #include "asus-armoury.h"
-#include "firmware_attributes_class.h"
 
 #define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C"
 
drivers/platform/x86/dell/dell-wmi-sysman/sysman.c +1 -1
index ab46a023cc34..ae89670f73b4 100644
@@ -10,13 +10,13 @@
 #include <linux/align.h>
 #include <linux/fs.h>
 #include <linux/dmi.h>
+#include <linux/firmware_attributes.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/sysfs.h>
 #include <linux/wmi.h>
 #include "dell-wmi-sysman.h"
-#include "../../firmware_attributes_class.h"
 
 #define MAX_TYPES  4
 #include <linux/nls.h>
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c +1 -1
index 309634c1cc20..d5a2d0963bbf 100644
@@ -7,6 +7,7 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
+#include <linux/firmware_attributes.h>
 #include <linux/fs.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -14,7 +15,6 @@
 #include <linux/string.h>
 #include <linux/wmi.h>
 #include "bioscfg.h"
-#include "../../firmware_attributes_class.h"
 #include <linux/nls.h>
 #include <linux/errno.h>
 
drivers/platform/x86/lenovo/think-lmi.c +1 -1
index a0e3fa766e37..ebfc6182986e 100644
@@ -14,13 +14,13 @@
 #include <linux/acpi.h>
 #include <linux/array_size.h>
 #include <linux/errno.h>
+#include <linux/firmware_attributes.h>
 #include <linux/fs.h>
 #include <linux/mutex.h>
 #include <linux/string_helpers.h>
 #include <linux/types.h>
 #include <linux/dmi.h>
 #include <linux/wmi.h>
-#include "../firmware_attributes_class.h"
 #include "think-lmi.h"
 
 static bool debug_support;
drivers/platform/x86/lenovo/wmi-other.c +1 -1
index fbb32bf404f2..b175971bb308 100644
@@ -33,6 +33,7 @@
 #include <linux/container_of.h>
 #include <linux/device.h>
 #include <linux/export.h>
+#include <linux/firmware_attributes.h>
 #include <linux/gfp_types.h>
 #include <linux/hwmon.h>
 #include <linux/idr.h>
@@ -50,7 +51,6 @@
 #include "wmi-capdata.h"
 #include "wmi-events.h"
 #include "wmi-helpers.h"
-#include "../firmware_attributes_class.h"
 
 #define LENOVO_OTHER_MODE_GUID "DC2A8805-3A8C-41BA-A6F7-092E0089CD3B"
 
drivers/platform/x86/samsung-galaxybook.c +1 -1
index 99f72b204a51..88ef11004ad0 100644
@@ -14,6 +14,7 @@
 #include <linux/acpi.h>
 #include <linux/bits.h>
 #include <linux/err.h>
+#include <linux/firmware_attributes.h>
 #include <linux/i8042.h>
 #include <linux/init.h>
 #include <linux/input.h>
@@ -28,7 +29,6 @@
 #include <linux/uuid.h>
 #include <linux/workqueue.h>
 #include <acpi/battery.h>
-#include "firmware_attributes_class.h"
 
 #define DRIVER_NAME "samsung-galaxybook"
 
include/linux/firmware_attributes.h renamed from drivers/platform/x86/firmware_attributes_class.h +3 -3
similarity index 60%
rename from drivers/platform/x86/firmware_attributes_class.h
rename to include/linux/firmware_attributes.h
index d27abe54fcf9..d4026ba1fcc2 100644
@@ -2,11 +2,11 @@
 
 /* Firmware attributes class helper module */
 
-#ifndef FW_ATTR_CLASS_H
-#define FW_ATTR_CLASS_H
+#ifndef _LINUX_FIRMWARE_ATTRIBUTES_H
+#define _LINUX_FIRMWARE_ATTRIBUTES_H
 
 #include <linux/device/class.h>
 
 extern const struct class firmware_attributes_class;
 
-#endif /* FW_ATTR_CLASS_H */
+#endif /* _LINUX_FIRMWARE_ATTRIBUTES_H */
maintainer Reviewed-by on v14 1/5
#2 lore raw

Re: [PATCH v14 1/5] firmware: Move firmware attributes class helper

Quoted 8 lines · Sean Rhodes

Move the firmware attributes class helper from drivers/platform/x86 to drivers/firmware and expose its class declaration through a public Linux header.

The helper is not x86-specific. Keeping it in drivers/firmware lets coreboot firmware drivers use the standard firmware-attributes ABI without living under platform/x86.

Quoted 8 lines

Replace the affected drivers' relative helper includes directly with the new public header.

LGTM,

maintainer Acked-by on v14 1/5
#3 lore raw

Re: [PATCH v14 1/5] firmware: Move firmware attributes class helper

In reply to Sean Rhodes
Quoted 252 lines · Sean Rhodes

Move the firmware attributes class helper from drivers/platform/x86 to drivers/firmware and expose its class declaration through a public Linux header.

The helper is not x86-specific. Keeping it in drivers/firmware lets coreboot firmware drivers use the standard firmware-attributes ABI without living under platform/x86.

Replace the affected drivers' relative helper includes directly with the new public header.

---
 MAINTAINERS                                               | 8 ++++++++
 drivers/firmware/Kconfig                                  | 3 +++
 drivers/firmware/Makefile                                 | 1 +
 .../x86 => firmware}/firmware_attributes_class.c          | 2 +-
 drivers/platform/x86/Kconfig                              | 3 ---
 drivers/platform/x86/Makefile                             | 2 --
 drivers/platform/x86/asus-armoury.c                       | 2 +-
 drivers/platform/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 +++---
 13 files changed, 22 insertions(+), 15 deletions(-)
 rename drivers/{platform/x86 => firmware}/firmware_attributes_class.c (94%)
 rename drivers/platform/x86/firmware_attributes_class.h => include/linux/firmware_attributes.h (60%)
MAINTAINERS +8 -0
index 4dfc1fb14ef7..a8048eaf49e5 100644
@@ -10181,6 +10181,14 @@ F:	include/linux/firewire.h
 F:	include/uapi/linux/firewire*.h
 F:	tools/firewire/
 
+FIRMWARE ATTRIBUTES CLASS
+M:	Hans de Goede <[email protected]>
+M:	Ilpo Järvinen <[email protected]>
+L:	[email protected]
+S:	Maintained
+F:	drivers/firmware/firmware_attributes_class.c
+F:	include/linux/firmware_attributes.h
+
 FIRMWARE FRAMEWORK FOR ARMV8-A
 M:	Sudeep Holla <[email protected]>
 L:	[email protected] (moderated for non-subscribers)
drivers/firmware/Kconfig +3 -0
index b7cc11e4fbfa..35dd6d422caf 100644
@@ -8,6 +8,9 @@ menu "Firmware Drivers"
 
 source "drivers/firmware/arm_scmi/Kconfig"
 
+config FW_ATTR_CLASS
+	tristate
+
 config ARM_SCPI_PROTOCOL
 	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
 	depends on ARM || ARM64 || COMPILE_TEST
drivers/firmware/Makefile +1 -0
index be46f1e1dc77..0e1e1b92a486 100644
@@ -17,6 +17,7 @@ obj-$(CONFIG_FIRMWARE_MEMMAP)	+= memmap.o
 obj-$(CONFIG_MTK_ADSP_IPC)	+= mtk-adsp-ipc.o
 obj-$(CONFIG_RASPBERRYPI_FIRMWARE) += raspberrypi.o
 obj-$(CONFIG_FW_CFG_SYSFS)	+= qemu_fw_cfg.o
+obj-$(CONFIG_FW_ATTR_CLASS)	+= firmware_attributes_class.o
 obj-$(CONFIG_SYSFB)		+= sysfb.o
 obj-$(CONFIG_SYSFB_SIMPLEFB)	+= sysfb_simplefb.o
 obj-$(CONFIG_TH1520_AON_PROTOCOL) += thead,th1520-aon.o
drivers/firmware/firmware_attributes_class.c renamed from drivers/platform/x86/firmware_attributes_class.c +1 -1
similarity index 94%
rename from drivers/platform/x86/firmware_attributes_class.c
rename to drivers/firmware/firmware_attributes_class.c
index 736e96c186d9..503ecc288086 100644
@@ -3,7 +3,7 @@
 /* Firmware attributes class helper module */
 
 #include <linux/module.h>
-#include "firmware_attributes_class.h"
+#include <linux/firmware_attributes.h>
 
 const struct class firmware_attributes_class = {
 	.name = "firmware-attributes",
drivers/platform/x86/Kconfig +0 -3
index 957034f39e4e..4851bf45157d 100644
@@ -925,9 +925,6 @@ config DASHARO_ACPI
 
 source "drivers/platform/x86/x86-android-tablets/Kconfig"
 
-config FW_ATTR_CLASS
-	tristate
-
 config INTEL_IMR
 	bool "Intel Isolated Memory Region support"
 	depends on X86_INTEL_QUARK && IOSF_MBI
drivers/platform/x86/Makefile +0 -2
index 872ac3842391..cab20a4145e3 100644
@@ -63,8 +63,6 @@ obj-$(CONFIG_X86_PLATFORM_DRIVERS_HP)	+= hp/
 # Hewlett Packard Enterprise
 obj-$(CONFIG_UV_SYSFS)       += uv_sysfs.o
 
-obj-$(CONFIG_FW_ATTR_CLASS)	+= firmware_attributes_class.o
-
 # IBM Thinkpad (before 2005)
 obj-$(CONFIG_IBM_RTL)		+= ibm_rtl.o
 obj-$(CONFIG_SENSORS_HDAPS)	+= hdaps.o
drivers/platform/x86/asus-armoury.c +1 -1
index 93d9665717af..fb382de5b57b 100644
@@ -21,6 +21,7 @@
 #include <linux/dmi.h>
 #include <linux/err.h>
 #include <linux/errno.h>
+#include <linux/firmware_attributes.h>
 #include <linux/fs.h>
 #include <linux/kernel.h>
 #include <linux/kmod.h>
@@ -35,7 +36,6 @@
 #include <linux/sysfs.h>
 
 #include "asus-armoury.h"
-#include "firmware_attributes_class.h"
 
 #define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C"
 
drivers/platform/x86/dell/dell-wmi-sysman/sysman.c +1 -1
index ab46a023cc34..ae89670f73b4 100644
@@ -10,13 +10,13 @@
 #include <linux/align.h>
 #include <linux/fs.h>
 #include <linux/dmi.h>
+#include <linux/firmware_attributes.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/sysfs.h>
 #include <linux/wmi.h>
 #include "dell-wmi-sysman.h"
-#include "../../firmware_attributes_class.h"
 
 #define MAX_TYPES  4
 #include <linux/nls.h>
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c +1 -1
index 309634c1cc20..d5a2d0963bbf 100644
@@ -7,6 +7,7 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
+#include <linux/firmware_attributes.h>
 #include <linux/fs.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -14,7 +15,6 @@
 #include <linux/string.h>
 #include <linux/wmi.h>
 #include "bioscfg.h"
-#include "../../firmware_attributes_class.h"
 #include <linux/nls.h>
 #include <linux/errno.h>
 
drivers/platform/x86/lenovo/think-lmi.c +1 -1
index a0e3fa766e37..ebfc6182986e 100644
@@ -14,13 +14,13 @@
 #include <linux/acpi.h>
 #include <linux/array_size.h>
 #include <linux/errno.h>
+#include <linux/firmware_attributes.h>
 #include <linux/fs.h>
 #include <linux/mutex.h>
 #include <linux/string_helpers.h>
 #include <linux/types.h>
 #include <linux/dmi.h>
 #include <linux/wmi.h>
-#include "../firmware_attributes_class.h"
 #include "think-lmi.h"
 
 static bool debug_support;
drivers/platform/x86/lenovo/wmi-other.c +1 -1
index fbb32bf404f2..b175971bb308 100644
@@ -33,6 +33,7 @@
 #include <linux/container_of.h>
 #include <linux/device.h>
 #include <linux/export.h>
+#include <linux/firmware_attributes.h>
 #include <linux/gfp_types.h>
 #include <linux/hwmon.h>
 #include <linux/idr.h>
@@ -50,7 +51,6 @@
 #include "wmi-capdata.h"
 #include "wmi-events.h"
 #include "wmi-helpers.h"
-#include "../firmware_attributes_class.h"
 
 #define LENOVO_OTHER_MODE_GUID "DC2A8805-3A8C-41BA-A6F7-092E0089CD3B"
 
drivers/platform/x86/samsung-galaxybook.c +1 -1
index 99f72b204a51..88ef11004ad0 100644
@@ -14,6 +14,7 @@
 #include <linux/acpi.h>
 #include <linux/bits.h>
 #include <linux/err.h>
+#include <linux/firmware_attributes.h>
 #include <linux/i8042.h>
 #include <linux/init.h>
 #include <linux/input.h>
@@ -28,7 +29,6 @@
 #include <linux/uuid.h>
 #include <linux/workqueue.h>
 #include <acpi/battery.h>
-#include "firmware_attributes_class.h"
 
 #define DRIVER_NAME "samsung-galaxybook"
 
include/linux/firmware_attributes.h renamed from drivers/platform/x86/firmware_attributes_class.h +0 -1
similarity index 60%
rename from drivers/platform/x86/firmware_attributes_class.h
rename to include/linux/firmware_attributes.h
index d27abe54fcf9..d4026ba1fcc2 100644
@@ -2,11 +2,11 @@
 
 /* Firmware attributes class helper module */
 
-#ifndef FW_ATTR_CLASS_H

include/linux/firmware_attributes.h line 12

Quoted 10 lines
include/linux/firmware_attributes.h renamed from drivers/platform/x86/firmware_attributes_class.h +3 -2
-#define FW_ATTR_CLASS_H
+#ifndef _LINUX_FIRMWARE_ATTRIBUTES_H
+#define _LINUX_FIRMWARE_ATTRIBUTES_H
 
 #include <linux/device/class.h>
 
 extern const struct class firmware_attributes_class;
 
-#endif /* FW_ATTR_CLASS_H */
+#endif /* _LINUX_FIRMWARE_ATTRIBUTES_H */
Signature · 1 line
 i.
author maintainer
#4 lore raw

PATCH v14 2/5 firmware: Rename google firmware directory to coreboot

In reply to Sean Rhodes

Most drivers in drivers/firmware/google are coreboot table drivers rather than Google-specific firmware drivers. Rename the directory to coreboot and update the Kconfig prompt, build path and maintainer entry.

Rename the generic firmware Kconfig symbols to CONFIG_COREBOOT_* at the same time so new configurations describe the firmware interface rather than one vendor. Keep the old CONFIG_GOOGLE_* names as transitional symbols so existing configurations keep selecting the same drivers during the rename.

Leave defconfig updates to a separate patch so the configuration churn is easy to review independently.

---
 MAINTAINERS                                   | 20 ++---
 drivers/firmware/Kconfig                      |  2 +-
 drivers/firmware/Makefile                     |  2 +-
 drivers/firmware/{google => coreboot}/Kconfig | 74 ++++++++++++++-----
 .../firmware/{google => coreboot}/Makefile    | 10 +--
 drivers/firmware/{google => coreboot}/cbmem.c |  0
 .../{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
 17 files changed, 76 insertions(+), 38 deletions(-)
 rename drivers/firmware/{google => coreboot}/Kconfig (64%)
 rename drivers/firmware/{google => coreboot}/Makefile (51%)
 rename drivers/firmware/{google => coreboot}/cbmem.c (100%)
 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%)
MAINTAINERS +10 -10
index a8048eaf49e5..4646744002dc 100644
@@ -6716,6 +6716,16 @@ F:	tools/testing/selftests/cgroup/test_hugetlb_memcg.c
 F:	tools/testing/selftests/cgroup/test_kmem.c
 F:	tools/testing/selftests/cgroup/test_memcontrol.c
 
+COREBOOT FIRMWARE DRIVERS
+M:	Tzung-Bi Shih <[email protected]>
+R:	Brian Norris <[email protected]>
+R:	Julius Werner <[email protected]>
+L:	[email protected]
+S:	Maintained
+T:	git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
+F:	drivers/firmware/coreboot/
+F:	include/linux/coreboot.h
+
 CORETEMP HARDWARE MONITORING DRIVER
 L:	[email protected]
 S:	Orphan
@@ -11144,16 +11154,6 @@ S:	Maintained
 F:	Documentation/networking/device_drivers/ethernet/google/gve.rst
 F:	drivers/net/ethernet/google
 
-GOOGLE FIRMWARE DRIVERS
-M:	Tzung-Bi Shih <[email protected]>
-R:	Brian Norris <[email protected]>
-R:	Julius Werner <[email protected]>
-L:	[email protected]
-S:	Maintained
-T:	git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
-F:	drivers/firmware/google/
-F:	include/linux/coreboot.h
-
 GOOGLE TENSOR SoC SUPPORT
 M:	Peter Griffin <[email protected]>
 R:	André Draszik <[email protected]>
drivers/firmware/Kconfig +1 -1
index 35dd6d422caf..b7d4df89cfb1 100644
@@ -302,7 +302,7 @@ endif # TURRIS_MOX_RWTM
 source "drivers/firmware/arm_ffa/Kconfig"
 source "drivers/firmware/broadcom/Kconfig"
 source "drivers/firmware/cirrus/Kconfig"
-source "drivers/firmware/google/Kconfig"
+source "drivers/firmware/coreboot/Kconfig"
 source "drivers/firmware/efi/Kconfig"
 source "drivers/firmware/imx/Kconfig"
 source "drivers/firmware/meson/Kconfig"
drivers/firmware/Makefile +1 -1
index 0e1e1b92a486..ce925e8ee526 100644
@@ -31,7 +31,7 @@ obj-y				+= broadcom/
 obj-y				+= cirrus/
 obj-y				+= meson/
 obj-y				+= microchip/
-obj-$(CONFIG_GOOGLE_FIRMWARE)	+= google/
+obj-$(CONFIG_COREBOOT_FIRMWARE)	+= coreboot/
 obj-y				+= efi/
 obj-y				+= imx/
 obj-y				+= psci/
drivers/firmware/coreboot/Kconfig renamed from drivers/firmware/google/Kconfig +56 -18

129 lines not on this page · raw message

drivers/firmware/coreboot/Makefile renamed from drivers/firmware/google/Makefile +5 -5
similarity index 51%
rename from drivers/firmware/google/Makefile
rename to drivers/firmware/coreboot/Makefile
index 8151e323cc43..e681f274417a 100644
@@ -1,14 +1,14 @@
 # SPDX-License-Identifier: GPL-2.0
 
 obj-$(CONFIG_GOOGLE_SMI)		+= gsmi.o
-obj-$(CONFIG_GOOGLE_COREBOOT_TABLE)        += coreboot_table.o
-obj-$(CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT)  += framebuffer-coreboot.o
-obj-$(CONFIG_GOOGLE_MEMCONSOLE)            += memconsole.o
-obj-$(CONFIG_GOOGLE_MEMCONSOLE_COREBOOT)   += memconsole-coreboot.o
+obj-$(CONFIG_COREBOOT_TABLE)               += coreboot_table.o
+obj-$(CONFIG_COREBOOT_FRAMEBUFFER)         += framebuffer-coreboot.o
+obj-$(CONFIG_COREBOOT_MEMCONSOLE_COMMON)   += memconsole.o
+obj-$(CONFIG_COREBOOT_MEMCONSOLE)          += memconsole-coreboot.o
 obj-$(CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY) += memconsole-x86-legacy.o
 
 # Must come after coreboot_table.o, as this driver depends on that bus type.
-obj-$(CONFIG_GOOGLE_CBMEM)		+= cbmem.o
+obj-$(CONFIG_COREBOOT_CBMEM)		+= cbmem.o
 
 vpd-sysfs-y := vpd.o vpd_decode.o
 obj-$(CONFIG_GOOGLE_VPD)		+= vpd-sysfs.o
drivers/firmware/coreboot/cbmem.c renamed from drivers/firmware/google/cbmem.c +0 -0
similarity index 100%
rename from drivers/firmware/google/cbmem.c
rename to drivers/firmware/coreboot/cbmem.c
drivers/firmware/coreboot/coreboot_table.c renamed from drivers/firmware/google/coreboot_table.c +0 -0
similarity index 100%
rename from drivers/firmware/google/coreboot_table.c
rename to drivers/firmware/coreboot/coreboot_table.c
drivers/firmware/coreboot/coreboot_table.h renamed from drivers/firmware/google/coreboot_table.h +0 -0
similarity index 100%
rename from drivers/firmware/google/coreboot_table.h
rename to drivers/firmware/coreboot/coreboot_table.h
drivers/firmware/coreboot/framebuffer-coreboot.c renamed from drivers/firmware/google/framebuffer-coreboot.c +0 -0
similarity index 100%
rename from drivers/firmware/google/framebuffer-coreboot.c
rename to drivers/firmware/coreboot/framebuffer-coreboot.c
drivers/firmware/coreboot/gsmi.c renamed from drivers/firmware/google/gsmi.c +0 -0
similarity index 100%
rename from drivers/firmware/google/gsmi.c
rename to drivers/firmware/coreboot/gsmi.c
drivers/firmware/coreboot/memconsole-coreboot.c renamed from drivers/firmware/google/memconsole-coreboot.c +0 -0
similarity index 100%
rename from drivers/firmware/google/memconsole-coreboot.c
rename to drivers/firmware/coreboot/memconsole-coreboot.c
drivers/firmware/coreboot/memconsole-x86-legacy.c renamed from drivers/firmware/google/memconsole-x86-legacy.c +0 -0
similarity index 100%
rename from drivers/firmware/google/memconsole-x86-legacy.c
rename to drivers/firmware/coreboot/memconsole-x86-legacy.c
drivers/firmware/coreboot/memconsole.c renamed from drivers/firmware/google/memconsole.c +0 -0
similarity index 100%
rename from drivers/firmware/google/memconsole.c
rename to drivers/firmware/coreboot/memconsole.c
drivers/firmware/coreboot/memconsole.h renamed from drivers/firmware/google/memconsole.h +3 -3
similarity index 82%
rename from drivers/firmware/google/memconsole.h
rename to drivers/firmware/coreboot/memconsole.h
index aaff2b72b606..58899c2abaaa 100644
@@ -7,8 +7,8 @@
  * Copyright 2017 Google Inc.
  */
 
-#ifndef __FIRMWARE_GOOGLE_MEMCONSOLE_H
-#define __FIRMWARE_GOOGLE_MEMCONSOLE_H
+#ifndef __FIRMWARE_COREBOOT_MEMCONSOLE_H
+#define __FIRMWARE_COREBOOT_MEMCONSOLE_H
 
 #include <linux/types.h>
 
@@ -33,4 +33,4 @@ int memconsole_sysfs_init(void);
  */
 void memconsole_exit(void);
 
-#endif /* __FIRMWARE_GOOGLE_MEMCONSOLE_H */
+#endif /* __FIRMWARE_COREBOOT_MEMCONSOLE_H */
drivers/firmware/coreboot/vpd.c renamed from drivers/firmware/google/vpd.c +0 -0
similarity index 100%
rename from drivers/firmware/google/vpd.c
rename to drivers/firmware/coreboot/vpd.c
drivers/firmware/coreboot/vpd_decode.c renamed from drivers/firmware/google/vpd_decode.c +0 -0
similarity index 100%
rename from drivers/firmware/google/vpd_decode.c
rename to drivers/firmware/coreboot/vpd_decode.c
drivers/firmware/coreboot/vpd_decode.h renamed from drivers/firmware/google/vpd_decode.h +0 -0
similarity index 100%
rename from drivers/firmware/google/vpd_decode.h
rename to drivers/firmware/coreboot/vpd_decode.h
author maintainer
#5 lore raw

PATCH v14 3/5 drm/sysfb: Update coreboot framebuffer Kconfig symbol

In reply to Sean Rhodes

The coreboot firmware directory rename introduces COREBOOT_FRAMEBUFFER as the user-facing symbol while retaining GOOGLE_FRAMEBUFFER_COREBOOT as a transitional compatibility symbol.

Make DRM_COREBOOTDRM depend on the new symbol. This keeps the DRM dependency aligned with the renamed firmware option without changing runtime behavior.

---
 drivers/gpu/drm/sysfb/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/sysfb/Kconfig +1 -1
index f7e48178885e..2bfcd59bfe6d 100644
@@ -10,7 +10,7 @@ config DRM_SYSFB_HELPER
 config DRM_COREBOOTDRM
 	tristate "Coreboot framebuffer driver"
 	depends on DRM && MMU
-	depends on GOOGLE_FRAMEBUFFER_COREBOOT
+	depends on COREBOOT_FRAMEBUFFER
 	select APERTURE_HELPERS
 	select DRM_CLIENT_SELECTION
 	select DRM_GEM_SHMEM_HELPER
maintainer Reviewed-by on v14 3/5
#6 lore raw

Re: [PATCH v14 3/5] drm/sysfb: Update coreboot framebuffer Kconfig symbol

Am 01.09.26 um 19:48 schrieb Sean Rhodes:

Quoted 9 lines

The coreboot firmware directory rename introduces COREBOOT_FRAMEBUFFER as the user-facing symbol while retaining GOOGLE_FRAMEBUFFER_COREBOOT as a transitional compatibility symbol.

Make DRM_COREBOOTDRM depend on the new symbol. This keeps the DRM dependency aligned with the renamed firmware option without changing runtime behavior.

Quoted 17 lines
---
  drivers/gpu/drm/sysfb/Kconfig | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/sysfb/Kconfig +1 -1
index f7e48178885e..2bfcd59bfe6d 100644
@@ -10,7 +10,7 @@ config DRM_SYSFB_HELPER
  config DRM_COREBOOTDRM
  	tristate "Coreboot framebuffer driver"
  	depends on DRM && MMU
-	depends on GOOGLE_FRAMEBUFFER_COREBOOT
+	depends on COREBOOT_FRAMEBUFFER
  	select APERTURE_HELPERS
  	select DRM_CLIENT_SELECTION
  	select DRM_GEM_SHMEM_HELPER
Signature · 6 lines
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)
author maintainer
#7 lore raw

PATCH v14 4/5 firmware: coreboot: Add CFR firmware attributes driver

In reply to Sean Rhodes

coreboot can publish a CFR tree in its coreboot table to describe firmware setup options. Add a firmware-attributes driver for that table entry under the coreboot firmware driver directory.

The driver exposes runtime EFI variable-backed boolean, enum and integer settings through the firmware-attributes ABI. It only registers settings with readable runtime EFI variables, skips suppressed, volatile, dependency-gated and non-runtime options, and keeps read-only or inactive options read-only in sysfs.

For settings with an APM_CNT runtime-apply record, write the EFI variable and ask firmware to apply the setting immediately with an I/O port SMI command. If firmware reports a failure, restore the old EFI variable value. Settings without a runtime apply hook keep the EFI variable update and set pending_reboot. Depend on HAS_IOPORT because APM_CNT uses legacy I/O ports.

Tested on a Star Labs Byte with firmware 26.07: runtime APM_CNT apply was verified with power_led, and reboot-needed behavior was verified with debug_level.

---
 MAINTAINERS                              |    6 +
 drivers/firmware/coreboot/Kconfig        |   15 +
 drivers/firmware/coreboot/Makefile       |    1 +
 drivers/firmware/coreboot/coreboot-cfr.c | 1204 ++++++++++++++++++++++
 4 files changed, 1226 insertions(+)
 create mode 100644 drivers/firmware/coreboot/coreboot-cfr.c
MAINTAINERS +6 -0
index 4646744002dc..349d394c3fbf 100644
@@ -6716,6 +6716,12 @@ F:	tools/testing/selftests/cgroup/test_hugetlb_memcg.c
 F:	tools/testing/selftests/cgroup/test_kmem.c
 F:	tools/testing/selftests/cgroup/test_memcontrol.c
 
+COREBOOT CFR FIRMWARE ATTRIBUTES DRIVER
+M:	Sean Rhodes <[email protected]>
+L:	[email protected]
+S:	Maintained
+F:	drivers/firmware/coreboot/coreboot-cfr.c
+
 COREBOOT FIRMWARE DRIVERS
 M:	Tzung-Bi Shih <[email protected]>
 R:	Brian Norris <[email protected]>
drivers/firmware/coreboot/Kconfig +15 -0
index d273bd836245..acfc7d187228 100644
@@ -49,6 +49,21 @@ config COREBOOT_TABLE
 	  device tree node /firmware/coreboot.
 	  If unsure say N.
 
+config COREBOOT_CFR
+	tristate "coreboot CFR firmware attributes"
+	depends on EFI
+	depends on COREBOOT_TABLE
+	depends on HAS_IOPORT
+	select CRC32
+	select FW_ATTR_CLASS
+	help
+	  This driver parses the coreboot CFR table and exposes runtime EFI
+	  variable-backed options through the firmware-attributes sysfs
+	  interface.
+
+	  If you have a system running coreboot with CFR runtime
+	  configuration support, say Y or M here.
+
 config COREBOOT_MEMCONSOLE_COMMON
 	tristate
 	depends on GOOGLE_MEMCONSOLE_X86_LEGACY || COREBOOT_MEMCONSOLE
drivers/firmware/coreboot/Makefile +1 -0
index e681f274417a..a08d167a95a8 100644
@@ -2,6 +2,7 @@
 
 obj-$(CONFIG_GOOGLE_SMI)		+= gsmi.o
 obj-$(CONFIG_COREBOOT_TABLE)               += coreboot_table.o
+obj-$(CONFIG_COREBOOT_CFR)		+= coreboot-cfr.o
 obj-$(CONFIG_COREBOOT_FRAMEBUFFER)         += framebuffer-coreboot.o
 obj-$(CONFIG_COREBOOT_MEMCONSOLE_COMMON)   += memconsole.o
 obj-$(CONFIG_COREBOOT_MEMCONSOLE)          += memconsole-coreboot.o
drivers/firmware/coreboot/coreboot-cfr.c new file +1204 -0

1,204 lines not on this page · raw message

author maintainer
#8 lore raw

PATCH v14 5/5 arm64: defconfig: Update coreboot firmware symbols

In reply to Sean Rhodes

The generic coreboot firmware Kconfig symbols were renamed from CONFIG_GOOGLE_* to CONFIG_COREBOOT_* while keeping the old names as transitional compatibility symbols.

Select the new names directly in the arm64 defconfig so the checked-in defconfig follows the visible Kconfig symbols. Keep this separate from the rename patch so the configuration churn is easy to review independently.

---
 arch/arm64/configs/defconfig | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm64/configs/defconfig +3 -3
index 6ec8d3a69c98..90a7b49d408b 100644
@@ -267,9 +267,9 @@ CONFIG_RASPBERRYPI_FIRMWARE=y
 CONFIG_INTEL_STRATIX10_SERVICE=y
 CONFIG_INTEL_STRATIX10_RSU=m
 CONFIG_MTK_ADSP_IPC=m
-CONFIG_GOOGLE_FIRMWARE=y
-CONFIG_GOOGLE_CBMEM=m
-CONFIG_GOOGLE_COREBOOT_TABLE=m
+CONFIG_COREBOOT_FIRMWARE=y
+CONFIG_COREBOOT_CBMEM=m
+CONFIG_COREBOOT_TABLE=m
 CONFIG_EFI_CAPSULE_LOADER=y
 CONFIG_IMX_SCU=y
 CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE=y
maintainer
#9 lore raw

Re: (subset) [PATCH v14 0/5] coreboot CFR firmware attributes

In reply to Sean Rhodes
Quoted 14 lines · Sean Rhodes

Move the firmware attributes class helper out of platform/x86, rename the coreboot-table firmware driver directory from google to coreboot, and add a coreboot CFR firmware attributes driver.

Changes in v14:
- Rebase on current upstream master after Linux 7.3-rc1, preserving the intervening coreboot table bounds and CBMEM no-map changes.
- Drop the standalone include-order cleanup. Replace the affected relative includes directly in the firmware attributes helper move, as requested by Tzung-Bi.
- Split the DRM coreboot framebuffer dependency update from the firmware directory and Kconfig rename so it can receive a DRM Acked-by separately.
- Keep the CFR driver and its runtime behavior unchanged from v13.

Quoted 1 line

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git for-firmware-next

[2/5] firmware: Rename google firmware directory to coreboot

      commit: 44e33a5aaa2de3f5cf2701d6f4b0a7c63d4fe602

Also created an immutable branch "ib-coreboot-rename-7.4"[1] for patch 3 and patch 5 which build-time depend on it.

Thanks!

[1] https://lore.kernel.org/all/[email protected]

author maintainer
#10 lore raw

Re: (subset) [PATCH v14 0/5] coreboot CFR firmware attributes

Thank you :)

Quoted 31 lines · Tzung-Bi Shih
Quoted 14 lines · Sean Rhodes

Move the firmware attributes class helper out of platform/x86, rename the coreboot-table firmware driver directory from google to coreboot, and add a coreboot CFR firmware attributes driver.

Changes in v14:
- Rebase on current upstream master after Linux 7.3-rc1, preserving the intervening coreboot table bounds and CBMEM no-map changes.
- Drop the standalone include-order cleanup. Replace the affected relative includes directly in the firmware attributes helper move, as requested by Tzung-Bi.
- Split the DRM coreboot framebuffer dependency update from the firmware directory and Kconfig rename so it can receive a DRM Acked-by separately.
- Keep the CFR driver and its runtime behavior unchanged from v13.

Quoted 1 line

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git for-firmware-next

[2/5] firmware: Rename google firmware directory to coreboot

      commit: 44e33a5aaa2de3f5cf2701d6f4b0a7c63d4fe602

Also created an immutable branch "ib-coreboot-rename-7.4"[1] for patch 3 and patch 5 which build-time depend on it.

Thanks!

[1] https://lore.kernel.org/all/[email protected]

author maintainer
#11 lore raw

Re: (subset) [PATCH v14 0/5] coreboot CFR firmware attributes

How about patch 1 and 4?

Thanks

Sean

Quoted 35 lines · Sean Rhodes

Thank you :)

Quoted 31 lines · Tzung-Bi Shih
Quoted 14 lines · Sean Rhodes

Move the firmware attributes class helper out of platform/x86, rename the coreboot-table firmware driver directory from google to coreboot, and add a coreboot CFR firmware attributes driver.

Changes in v14:
- Rebase on current upstream master after Linux 7.3-rc1, preserving the intervening coreboot table bounds and CBMEM no-map changes.
- Drop the standalone include-order cleanup. Replace the affected relative includes directly in the firmware attributes helper move, as requested by Tzung-Bi.
- Split the DRM coreboot framebuffer dependency update from the firmware directory and Kconfig rename so it can receive a DRM Acked-by separately.
- Keep the CFR driver and its runtime behavior unchanged from v13.

Quoted 1 line

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git for-firmware-next

[2/5] firmware: Rename google firmware directory to coreboot

      commit: 44e33a5aaa2de3f5cf2701d6f4b0a7c63d4fe602

Also created an immutable branch "ib-coreboot-rename-7.4"[1] for patch 3 and patch 5 which build-time depend on it.

Thanks!

[1] https://lore.kernel.org/all/[email protected]

maintainer
#12 lore raw

Re: (subset) [PATCH v14 0/5] coreboot CFR firmware attributes

In reply to Sean Rhodes
Quoted 14 lines · Sean Rhodes

Move the firmware attributes class helper out of platform/x86, rename the coreboot-table firmware driver directory from google to coreboot, and add a coreboot CFR firmware attributes driver.

Changes in v14:
- Rebase on current upstream master after Linux 7.3-rc1, preserving the intervening coreboot table bounds and CBMEM no-map changes.
- Drop the standalone include-order cleanup. Replace the affected relative includes directly in the firmware attributes helper move, as requested by Tzung-Bi.
- Split the DRM coreboot framebuffer dependency update from the firmware directory and Kconfig rename so it can receive a DRM Acked-by separately.
- Keep the CFR driver and its runtime behavior unchanged from v13.

Quoted 1 line

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git for-firmware-next

[1/5] firmware: Move firmware attributes class helper

      commit: 6f3adf358c8808973dc44aa333bdc0b06ae5f0c5
[4/5] firmware: coreboot: Add CFR firmware attributes driver
      commit: f2e05ce9763feb1dd7da15afd2cc61df227ee85a

Thanks!

#13 lore raw
In reply to Sean Rhodes
This series was applied to soc/soc.git (for-next) by Arnd Bergmann <[email protected]>:

Hello:

This series was applied to soc/soc.git (for-next)
by Arnd Bergmann <[email protected]>:

Quoted 14 lines · On Tue, 1 Sep 2026 18:48:01 +0100 you wrote:

Move the firmware attributes class helper out of platform/x86, rename the coreboot-table firmware driver directory from google to coreboot, and add a coreboot CFR firmware attributes driver.

Changes in v14:
- Rebase on current upstream master after Linux 7.3-rc1, preserving the intervening coreboot table bounds and CBMEM no-map changes.
- Drop the standalone include-order cleanup. Replace the affected relative includes directly in the firmware attributes helper move, as requested by Tzung-Bi.
- Split the DRM coreboot framebuffer dependency update from the firmware directory and Kconfig rename so it can receive a DRM Acked-by separately.
- Keep the CFR driver and its runtime behavior unchanged from v13.

Quoted 1 line

[...]

Here is the summary with links:
- [v14,1/5] firmware: Move firmware attributes class helper (no matching commit)
- [v14,2/5] firmware: Rename google firmware directory to coreboot (no matching commit)
- [v14,3/5] drm/sysfb: Update coreboot framebuffer Kconfig symbol (no matching commit)
- [v14,4/5] firmware: coreboot: Add CFR firmware attributes driver (no matching commit)
- [v14,5/5] arm64: defconfig: Update coreboot firmware symbols

    https://git.kernel.org/soc/soc/c/876108e1d248

You are awesome, thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html