bcm27xx: add kernel 5.10 support
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.10 / 950-0447-ARM-dts-bcm2711-Add-reserved-memory-template-to-hold.patch
diff --git a/target/linux/bcm27xx/patches-5.10/950-0447-ARM-dts-bcm2711-Add-reserved-memory-template-to-hold.patch b/target/linux/bcm27xx/patches-5.10/950-0447-ARM-dts-bcm2711-Add-reserved-memory-template-to-hold.patch
new file mode 100644 (file)
index 0000000..e671d45
--- /dev/null
@@ -0,0 +1,60 @@
+From b3a070cf6fe04129d2c174e45c14b98a759e0402 Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+Date: Fri, 11 Dec 2020 12:22:01 +0100
+Subject: [PATCH] ARM: dts: bcm2711: Add reserved memory template to
+ hold firmware configuration
+
+RPi4's co-processor will copy the board's bootloader[1] configuration
+into memory for the OS to consume. Specifically, for the bootloader
+configuration and upgrade user-space routines to query it through
+nvmem's sysfs interface.
+
+Introduce a reserved-memory area template for the co-processor to edit
+before booting the system so as for Linux not to overwrite that memory
+and to expose it as an nvmem device.
+
+Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+
+[1] https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
+---
+
+Changes since v1:
+ - Introduce compatible string
+ - Change alias name to something more explicit
+---
+ arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
+@@ -24,6 +24,7 @@
+               emmc2bus = &emmc2bus;
+               ethernet0 = &genet;
+               pcie0 = &pcie0;
++              blconfig = &blconfig;
+       };
+       leds {
+@@ -215,6 +216,22 @@
+       status = "okay";
+ };
++&rmem {
++      /*
++       * RPi4'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.
++       */
++      blconfig: nvram@0 {
++              compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
++              #address-cells = <1>;
++              #size-cells = <1>;
++              reg = <0x0 0x0 0x0>;
++              no-map;
++              status = "disabled";
++      };
++};
++
+ /* SDHCI is used to control the SDIO for wireless */
+ &sdhci {
+       #address-cells = <1>;