aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.4/950-1009-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-1009-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-1009-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch72
1 files changed, 0 insertions, 72 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-1009-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch b/target/linux/bcm27xx/patches-5.4/950-1009-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch
deleted file mode 100644
index 4d7a83f02b..0000000000
--- a/target/linux/bcm27xx/patches-5.4/950-1009-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From bf41f32582df3ca5faab2cf2de15e5d4ff688822 Mon Sep 17 00:00:00 2001
-From: Tim Gover <tim.gover@raspberrypi.com>
-Date: Tue, 20 Oct 2020 11:55:37 +0100
-Subject: [PATCH] firmware: raspberrypi: Add support for tryonce
- reboot flag
-
-Define a new mailbox (SET_REBOOT_FLAGS) which may be used to
-pass optional flags to the Raspberry Pi firmware that changes
-the behaviour of the bootloader and firmware during a reboot.
-
-Currently this just defines the 'tryboot' flag which causes
-the firmware to load tryboot.txt instead config.txt. This
-alternate configuration file can be used to specify the
-path of an alternate firmware and kernels allowing a fallback
-mechanism to be implemented for OS upgrades.
----
- drivers/firmware/raspberrypi.c | 25 ++++++++++++++++++++--
- include/soc/bcm2835/raspberrypi-firmware.h | 2 ++
- 2 files changed, 25 insertions(+), 2 deletions(-)
-
---- a/drivers/firmware/raspberrypi.c
-+++ b/drivers/firmware/raspberrypi.c
-@@ -190,6 +190,7 @@ static int rpi_firmware_notify_reboot(st
- {
- struct rpi_firmware *fw;
- struct platform_device *pdev = g_pdev;
-+ u32 reboot_flags = 0;
-
- if (!pdev)
- return 0;
-@@ -198,8 +199,28 @@ static int rpi_firmware_notify_reboot(st
- if (!fw)
- return 0;
-
-- (void)rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_REBOOT,
-- 0, 0);
-+ // The partition id is the first parameter followed by zero or
-+ // more flags separated by spaces indicating the reason for the reboot.
-+ //
-+ // 'tryboot': Sets a one-shot flag which is cleared upon reboot and
-+ // causes the tryboot.txt to be loaded instead of config.txt
-+ // by the bootloader and the start.elf firmware.
-+ //
-+ // This is intended to allow automatic fallback to a known
-+ // good image if an OS/FW upgrade fails.
-+ //
-+ // N.B. The firmware mechanism for storing reboot flags may vary
-+ // on different Raspberry Pi models.
-+ if (data && strstr(data, " tryboot"))
-+ reboot_flags |= 0x1;
-+
-+ // The mailbox might have been called earlier, directly via vcmailbox
-+ // so only overwrite if reboot flags are passed to the reboot command.
-+ if (reboot_flags)
-+ (void)rpi_firmware_property(fw, RPI_FIRMWARE_SET_REBOOT_FLAGS,
-+ &reboot_flags, sizeof(reboot_flags));
-+
-+ (void)rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_REBOOT, NULL, 0);
-
- return 0;
- }
---- a/include/soc/bcm2835/raspberrypi-firmware.h
-+++ b/include/soc/bcm2835/raspberrypi-firmware.h
-@@ -96,6 +96,8 @@ enum rpi_firmware_property_tag {
- RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049,
- RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050,
- RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058,
-+ RPI_FIRMWARE_GET_REBOOT_FLAGS = 0x00030064,
-+ RPI_FIRMWARE_SET_REBOOT_FLAGS = 0x00038064,
-
- /* Dispmanx TAGS */
- RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,