ARM: dts: bcm2711: Add reserved memory template to hold firmware configuration
authorNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Tue, 12 Jan 2021 14:23:40 +0000 (15:23 +0100)
committerNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Mon, 25 Jan 2021 20:49:41 +0000 (21:49 +0100)
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>
Tested-by: Tim Gover <tim.gover@raspberrypi.com>
Link: https://lore.kernel.org/r/e8ca9365-a1f2-1f9d-377c-13bf97883cce@linaro.org
[1] https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md

arch/arm/boot/dts/bcm2711-rpi-4-b.dts

index 403bacf..3b4ab94 100644 (file)
@@ -25,6 +25,7 @@
                emmc2bus = &emmc2bus;
                ethernet0 = &genet;
                pcie0 = &pcie0;
+               blconfig = &blconfig;
        };
 
        leds {
        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>;