[PATCH v6 0/3] firmware: Add coreboot CFR firmware attributes driver

Sean Rhodes posted 3 patches 1 week, 5 days ago
There is a newer version of this series
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      | 1065 +++++++++++++++++
.../{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         |    9 +-
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c  |    9 +-
drivers/platform/x86/lenovo/think-lmi.c       |    5 +-
drivers/platform/x86/lenovo/wmi-other.c       |    2 +-
drivers/platform/x86/samsung-galaxybook.c     |    3 +-
.../linux/firmware_attributes.h               |    6 +-
28 files changed, 1128 insertions(+), 32 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%)
[PATCH v6 0/3] firmware: Add coreboot CFR firmware attributes driver
Posted by Sean Rhodes 1 week, 5 days ago
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 v6:
- Move firmware_attributes.h into the sorted Linux include block in each
  converted platform/x86 driver.
- Add Derek's Reviewed-by to patch 1.

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      | 1065 +++++++++++++++++
 .../{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         |    9 +-
 drivers/platform/x86/hp/hp-bioscfg/bioscfg.c  |    9 +-
 drivers/platform/x86/lenovo/think-lmi.c       |    5 +-
 drivers/platform/x86/lenovo/wmi-other.c       |    2 +-
 drivers/platform/x86/samsung-galaxybook.c     |    3 +-
 .../linux/firmware_attributes.h               |    6 +-
 28 files changed, 1128 insertions(+), 32 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%)

Range-diff against v5:
1:  4a82d0a07612 ! 1:  02edc6d05059 firmware: Move firmware attributes class helper
    @@ Commit message
         under platform/x86.
     
         Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
    +    Reviewed-by: Derek J. Clark <derekjohn.clark@gmail.com>
         Signed-off-by: Sean Rhodes <sean@starlabs.systems>
     
      ## MAINTAINERS ##
    @@ drivers/platform/x86/Makefile: obj-$(CONFIG_X86_PLATFORM_DRIVERS_HP)	+= hp/
      obj-$(CONFIG_SENSORS_HDAPS)	+= hdaps.o
     
      ## drivers/platform/x86/asus-armoury.c ##
    +@@
    + #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>
     @@
      #include <linux/sysfs.h>
      
      #include "asus-armoury.h"
     -#include "firmware_attributes_class.h"
    -+#include <linux/firmware_attributes.h>
      
      #define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C"
      
     
      ## drivers/platform/x86/dell/dell-wmi-sysman/sysman.c ##
     @@
    + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    + 
    + #include <linux/align.h>
    +-#include <linux/fs.h>
    + #include <linux/dmi.h>
    +-#include <linux/module.h>
    ++#include <linux/firmware_attributes.h>
    ++#include <linux/fs.h>
    + #include <linux/kernel.h>
    ++#include <linux/module.h>
    ++#include <linux/nls.h>
    + #include <linux/string.h>
      #include <linux/sysfs.h>
      #include <linux/wmi.h>
    ++
      #include "dell-wmi-sysman.h"
     -#include "../../firmware_attributes_class.h"
    -+#include <linux/firmware_attributes.h>
      
      #define MAX_TYPES  4
    - #include <linux/nls.h>
    +-#include <linux/nls.h>
    + 
    + struct wmi_sysman_priv wmi_priv = {
    + 	.mutex = __MUTEX_INITIALIZER(wmi_priv.mutex),
     
      ## drivers/platform/x86/hp/hp-bioscfg/bioscfg.c ##
     @@
    + 
    + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    + 
    ++#include <linux/errno.h>
    ++#include <linux/firmware_attributes.h>
    + #include <linux/fs.h>
    +-#include <linux/module.h>
    + #include <linux/kernel.h>
    ++#include <linux/module.h>
    ++#include <linux/nls.h>
    + #include <linux/printk.h>
      #include <linux/string.h>
      #include <linux/wmi.h>
    ++
      #include "bioscfg.h"
     -#include "../../firmware_attributes_class.h"
    -+#include <linux/firmware_attributes.h>
    - #include <linux/nls.h>
    - #include <linux/errno.h>
    +-#include <linux/nls.h>
    +-#include <linux/errno.h>
      
    + MODULE_AUTHOR("Jorge Lopez <jorge.lopez2@hp.com>");
    + MODULE_DESCRIPTION("HP BIOS Configuration Driver");
     
      ## drivers/platform/x86/lenovo/think-lmi.c ##
     @@
    + 
    + #include <linux/acpi.h>
    + #include <linux/array_size.h>
    ++#include <linux/dmi.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/dmi.h>
      #include <linux/wmi.h>
     -#include "../firmware_attributes_class.h"
    -+#include <linux/firmware_attributes.h>
    ++
      #include "think-lmi.h"
      
      static bool debug_support;
     
      ## drivers/platform/x86/lenovo/wmi-other.c ##
    +@@
    + #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>
     @@
      #include "wmi-capdata.h"
      #include "wmi-events.h"
      #include "wmi-helpers.h"
     -#include "../firmware_attributes_class.h"
    -+#include <linux/firmware_attributes.h>
      
      #define LENOVO_OTHER_MODE_GUID "DC2A8805-3A8C-41BA-A6F7-092E0089CD3B"
      
     
      ## drivers/platform/x86/samsung-galaxybook.c ##
     @@
    + #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>
    +@@
    + #include <linux/sysfs.h>
      #include <linux/uuid.h>
      #include <linux/workqueue.h>
    ++
      #include <acpi/battery.h>
     -#include "firmware_attributes_class.h"
    -+#include <linux/firmware_attributes.h>
      
      #define DRIVER_NAME "samsung-galaxybook"
      
2:  285b33f805dc = 2:  d5d3d1334994 firmware: Rename google firmware directory to coreboot
3:  ce91f4da5510 = 3:  7a65c6b0e631 firmware: coreboot: Add CFR firmware attributes driver
-- 
2.53.0
Re: [PATCH v6 0/3] firmware: Add coreboot CFR firmware attributes driver
Posted by Derek J. Clark 1 week, 5 days ago
On July 13, 2026 5:13:14 PM GMT+09:00, Sean Rhodes <sean@starlabs.systems> 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 v6:
>- Move firmware_attributes.h into the sorted Linux include block in each
>  converted platform/x86 driver.
>- Add Derek's Reviewed-by to patch 1.
>

Hi Sean,

Generally you will want to give a bit more time between revisions to allow people to review. 1-2 days during the work week is usually the acceptable minimum time between versions. Sending too frequently can cause people to review older patches without noticing the same issue was already identified/fixed later and nobody wants to read the same patch 4 times in a row on a Monday.

Cheers,
- Derek


>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      | 1065 +++++++++++++++++
> .../{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         |    9 +-
> drivers/platform/x86/hp/hp-bioscfg/bioscfg.c  |    9 +-
> drivers/platform/x86/lenovo/think-lmi.c       |    5 +-
> drivers/platform/x86/lenovo/wmi-other.c       |    2 +-
> drivers/platform/x86/samsung-galaxybook.c     |    3 +-
> .../linux/firmware_attributes.h               |    6 +-
> 28 files changed, 1128 insertions(+), 32 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%)
>
>Range-diff against v5:
>1:  4a82d0a07612 ! 1:  02edc6d05059 firmware: Move firmware attributes class helper
>    @@ Commit message
>         under platform/x86.
>     
>         Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
>    +    Reviewed-by: Derek J. Clark <derekjohn.clark@gmail.com>
>         Signed-off-by: Sean Rhodes <sean@starlabs.systems>
>     
>      ## MAINTAINERS ##
>    @@ drivers/platform/x86/Makefile: obj-$(CONFIG_X86_PLATFORM_DRIVERS_HP)	+= hp/
>      obj-$(CONFIG_SENSORS_HDAPS)	+= hdaps.o
>     
>      ## drivers/platform/x86/asus-armoury.c ##
>    +@@
>    + #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>
>     @@
>      #include <linux/sysfs.h>
>      
>      #include "asus-armoury.h"
>     -#include "firmware_attributes_class.h"
>    -+#include <linux/firmware_attributes.h>
>      
>      #define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C"
>      
>     
>      ## drivers/platform/x86/dell/dell-wmi-sysman/sysman.c ##
>     @@
>    + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>    + 
>    + #include <linux/align.h>
>    +-#include <linux/fs.h>
>    + #include <linux/dmi.h>
>    +-#include <linux/module.h>
>    ++#include <linux/firmware_attributes.h>
>    ++#include <linux/fs.h>
>    + #include <linux/kernel.h>
>    ++#include <linux/module.h>
>    ++#include <linux/nls.h>
>    + #include <linux/string.h>
>      #include <linux/sysfs.h>
>      #include <linux/wmi.h>
>    ++
>      #include "dell-wmi-sysman.h"
>     -#include "../../firmware_attributes_class.h"
>    -+#include <linux/firmware_attributes.h>
>      
>      #define MAX_TYPES  4
>    - #include <linux/nls.h>
>    +-#include <linux/nls.h>
>    + 
>    + struct wmi_sysman_priv wmi_priv = {
>    + 	.mutex = __MUTEX_INITIALIZER(wmi_priv.mutex),
>     
>      ## drivers/platform/x86/hp/hp-bioscfg/bioscfg.c ##
>     @@
>    + 
>    + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>    + 
>    ++#include <linux/errno.h>
>    ++#include <linux/firmware_attributes.h>
>    + #include <linux/fs.h>
>    +-#include <linux/module.h>
>    + #include <linux/kernel.h>
>    ++#include <linux/module.h>
>    ++#include <linux/nls.h>
>    + #include <linux/printk.h>
>      #include <linux/string.h>
>      #include <linux/wmi.h>
>    ++
>      #include "bioscfg.h"
>     -#include "../../firmware_attributes_class.h"
>    -+#include <linux/firmware_attributes.h>
>    - #include <linux/nls.h>
>    - #include <linux/errno.h>
>    +-#include <linux/nls.h>
>    +-#include <linux/errno.h>
>      
>    + MODULE_AUTHOR("Jorge Lopez <jorge.lopez2@hp.com>");
>    + MODULE_DESCRIPTION("HP BIOS Configuration Driver");
>     
>      ## drivers/platform/x86/lenovo/think-lmi.c ##
>     @@
>    + 
>    + #include <linux/acpi.h>
>    + #include <linux/array_size.h>
>    ++#include <linux/dmi.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/dmi.h>
>      #include <linux/wmi.h>
>     -#include "../firmware_attributes_class.h"
>    -+#include <linux/firmware_attributes.h>
>    ++
>      #include "think-lmi.h"
>      
>      static bool debug_support;
>     
>      ## drivers/platform/x86/lenovo/wmi-other.c ##
>    +@@
>    + #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>
>     @@
>      #include "wmi-capdata.h"
>      #include "wmi-events.h"
>      #include "wmi-helpers.h"
>     -#include "../firmware_attributes_class.h"
>    -+#include <linux/firmware_attributes.h>
>      
>      #define LENOVO_OTHER_MODE_GUID "DC2A8805-3A8C-41BA-A6F7-092E0089CD3B"
>      
>     
>      ## drivers/platform/x86/samsung-galaxybook.c ##
>     @@
>    + #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>
>    +@@
>    + #include <linux/sysfs.h>
>      #include <linux/uuid.h>
>      #include <linux/workqueue.h>
>    ++
>      #include <acpi/battery.h>
>     -#include "firmware_attributes_class.h"
>    -+#include <linux/firmware_attributes.h>
>      
>      #define DRIVER_NAME "samsung-galaxybook"
>      
>2:  285b33f805dc = 2:  d5d3d1334994 firmware: Rename google firmware directory to coreboot
>3:  ce91f4da5510 = 3:  7a65c6b0e631 firmware: coreboot: Add CFR firmware attributes driver