diff options
author | Jonas Richardsen <jonasrichardsen@emlix.com> | 2024-04-22 10:16:48 +0000 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-04-23 10:34:02 +0200 |
commit | 3cf4417d004521ec4ac65eccad875e17cee8b952 (patch) | |
tree | 1291be0452d55122599732c6bbfa745994946691 | |
parent | dcb947764491bb5691774cac1f1ab908b60148b2 (diff) | |
download | barebox-3cf4417d0045.tar.gz barebox-3cf4417d0045.tar.xz |
raspi: override properties in /reserved-memory node of device tree
Previously, the fixups in rpi-common.c only tries to copy the
`/reserved-memory` node from the video core. As explained in
`bcm2711-rpi.dtsi`, line 58, the video core does only update the
placement information of the `/reserved-memory/nvram@0` subnode:
> /*
> * 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.
> */
This behaviour is not achieved by the previous fixup, as this fixup
operates on the wrong node and, even if applied to
"/reserved-memory/nvram@0" would not override the already existing
properties of this node. Instead, we can use the previously added
`register_vc_property_fixup` method to achieve the desired behaviour.
Signed-off-by: Jonas Richardsen <jonasrichardsen@emlix.com>
Link: https://lore.barebox.org/20240422102232.551842-3-jonasrichardsen@emlix.com
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/boards/raspberry-pi/rpi-common.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/boards/raspberry-pi/rpi-common.c b/arch/arm/boards/raspberry-pi/rpi-common.c index c56383bb6c..18275f24b0 100644 --- a/arch/arm/boards/raspberry-pi/rpi-common.c +++ b/arch/arm/boards/raspberry-pi/rpi-common.c @@ -373,7 +373,8 @@ static void rpi_vc_fdt_parse(struct device_node *root) register_vc_fixup(root, "/system"); register_vc_fixup(root, "/axi"); - register_vc_fixup(root, "/reserved-memory"); + register_vc_property_fixup(root, "/reserved-memory/nvram@0", "reg"); + register_vc_property_fixup(root, "/reserved-memory/nvram@0", "status"); register_vc_fixup(root, "/hat"); register_vc_fixup(root, "/chosen/bootloader"); chosen = register_vc_fixup(root, "/chosen"); |