[PATCH] rpi: copy /chosen/bootloader partition and set boot_partition
Matthias Brugger
mbrugger at suse.com
Wed Jul 8 12:48:08 CEST 2026
On 08/07/2026 08:30, Gregor Herburger wrote:
> The Raspberry Pi has the "tryboot" feature where it can boot from a
> different partition enabling failsafe A/B updates. After boot the
> firmware sets 'partition' property in /chosen/bootloader. Copy this
> property to the device tree and set the env variable boot_partition.
> This allows boards to create a bootcmd based on the boot partition.
>
> Signed-off-by: Gregor Herburger <gregor.herburger at linutronix.de>
Reviewed-by: Matthias Brugger <mbrugger at suse.com>
> ---
> board/raspberrypi/rpi/rpi.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
> index 1da5df92351..7a2ff646ac8 100644
> --- a/board/raspberrypi/rpi/rpi.c
> +++ b/board/raspberrypi/rpi/rpi.c
> @@ -480,6 +480,20 @@ static void set_serial_number(void)
> env_set("serial#", serial_string);
> }
>
> +static void set_boot_partition_fdt(void)
> +{
> + void *fdtp = (void *)gd->fdt_blob;
> + u32 partition;
> +
> + partition = fdt_getprop_u32_default(fdtp, "/chosen/bootloader", "partition", 1);
> + if (!partition) {
> + printf("Failed to the get partition property.\n");
> + return;
> + }
> +
> + env_set_ulong("boot_partition", partition);
> +}
> +
> int misc_init_r(void)
> {
> set_fdt_addr();
> @@ -489,6 +503,7 @@ int misc_init_r(void)
> set_board_info();
> #endif
> set_serial_number();
> + set_boot_partition_fdt();
>
> return 0;
> }
> @@ -641,6 +656,9 @@ void update_fdt_from_fw(void *fdt, void *fw_fdt)
>
> /* copy uart clk as provided by the firmware */
> copy_property(fdt, fw_fdt, "/clocks/clk-uart", "clock-frequency");
> +
> + /* Copy the boot partition */
> + copy_property(fdt, fw_fdt, "/chosen/bootloader", "partition");
> }
>
> int ft_board_setup(void *blob, struct bd_info *bd)
>
> ---
> base-commit: ee5d46b45ec0c63f8f9dd1e816e0dac3452ccc3d
> change-id: 20260708-tryboot-c11aa44bf1cc
>
> Best regards,
> --
> Gregor Herburger <gregor.herburger at linutronix.de>
>
More information about the U-Boot
mailing list