[PATCH RFC 0/5] nvmem: Add a UEFI variable backed NVMEM provider
Abel Vesa
abel.vesa at oss.qualcomm.com
Wed Oct 14 06:02:38 PDT 2026
This is an RFC: I do not expect it to be merged as-is, it is sent to get
feedback on the approach.
Some values a platform needs (for example the WLAN and Bluetooth MAC
addresses on the Qualcomm laptops) are not always available to the kernel
in a convenient form. They may live in firmware-owned SPI-NOR storage
(e.g. a DPP partition) for which there is no straightforward, universally
working way to read them from the non-secure world.
As an alternative, this series allows such values to be provisioned once
into a UEFI variable and consumed in the kernel. It adds a generic NVMEM
provider that exposes the contents of a UEFI variable as an NVMEM device,
so the data can be consumed through the standard nvmem-cells bindings.
MAC addresses are just the motivating use case; the provider itself is
generic.
The first two patches are the actual proposal:
- dt-bindings: nvmem: Add UEFI variable NVMEM provider
- nvmem: Add UEFI variable NVMEM provider
The remaining three patches are included only to illustrate how a
consumer would use the provider; they are not meant for merging as part
of this series:
- Bluetooth: hci_qca: consume a "bd-address" nvmem cell
- wifi: ath12k: consume a "mac-address" cell
- arm64: dts: qcom: glymur-crd: wire both to a "MacAddresses" variable
glymur-crd is used here only as a convenient example for the consumer
patches.
Feedback on the provider, and on whether sourcing such values from a UEFI
variable is a reasonable approach when they cannot be read from the
SPI-NOR directly, is very welcome.
Assisted-by: LLM
Signed-off-by: Abel Vesa <abel.vesa at oss.qualcomm.com>
---
Abel Vesa (5):
dt-bindings: nvmem: Add UEFI variable NVMEM provider
nvmem: Add UEFI variable NVMEM provider
Bluetooth: hci_qca: Support BD address from an nvmem cell
wifi: ath12k: Support MAC address from the firmware node
arm64: dts: qcom: glymur-crd: Source MAC addresses from a UEFI variable
.../devicetree/bindings/nvmem/nvmem-efivar.yaml | 73 ++++++
arch/arm64/boot/dts/qcom/glymur-crd.dtsi | 22 ++
drivers/bluetooth/hci_qca.c | 48 ++++
drivers/net/wireless/ath/ath12k/mac.c | 14 +-
drivers/nvmem/Kconfig | 12 +
drivers/nvmem/Makefile | 2 +
drivers/nvmem/efivar.c | 273 +++++++++++++++++++++
7 files changed, 443 insertions(+), 1 deletion(-)
---
base-commit: 1fffefb00cc0b0da1f2ae24e3d33364530ea6515
change-id: 20261014-b4-nvmem-efivar-fec3cab05755
Best regards,
--
Abel Vesa <abel.vesa at oss.qualcomm.com>
More information about the ath12k
mailing list