From ed09e6e753d9e6a5e31493d52c17bad4263144a5 Mon Sep 17 00:00:00 2001
From: Tim Gover <tim.gover@raspberrypi.com>
Date: Tue, 26 Mar 2024 17:08:58 +0000
Subject: [PATCH 0990/1085] dts: bcm2712: Add blpubkey nvram node

The RPi5 firmware also supports exporting the customer
public key stored in flash via device-tree. Define the
node so that the firmware can populate it.

Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
---
 arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts  |  1 +
 arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi |  1 +
 arch/arm/boot/dts/broadcom/bcm2712-rpi.dtsi     | 14 +++++++++++++-
 3 files changed, 15 insertions(+), 1 deletion(-)

--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -744,6 +744,7 @@ spi10_cs_pins: &spi10_cs_gpio1 {};
 / {
 	aliases: aliases {
 		blconfig = &blconfig;
+		blpubkey = &blpubkey;
 		bluetooth = &bluetooth;
 		console = &uart10;
 		ethernet0 = &rp1_eth;
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
@@ -745,6 +745,7 @@ spi10_cs_pins: &spi10_cs_gpio1 {};
 / {
 	aliases: aliases {
 		blconfig = &blconfig;
+		blpubkey = &blpubkey;
 		bluetooth = &bluetooth;
 		console = &uart10;
 		ethernet0 = &rp1_eth;
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi.dtsi
@@ -102,7 +102,7 @@ pciex4: &pcie2 { };
 
 &rmem {
 	/*
-	 * RPi4's co-processor will copy the board's bootloader configuration
+	 * RPi5's co-processor will copy the board's bootloader configuration
 	 * into memory for the OS to consume. It'll also update this node with
 	 * its placement information.
 	 */
@@ -111,6 +111,18 @@ pciex4: &pcie2 { };
 		#address-cells = <1>;
 		#size-cells = <1>;
 		reg = <0x0 0x0 0x0>;
+		no-map;
+		status = "disabled";
+	};
+	/*
+	 * RPi5 will copy the binary public key blob (if present) from the bootloader
+	 * into memory for use by the OS.
+	 */
+	blpubkey: nvram@1 {
+		compatible = "raspberrypi,bootloader-public-key", "nvmem-rmem";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		reg = <0x0 0x0 0x0>;
 		no-map;
 		status = "disabled";
 	};
