diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0292-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0292-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0292-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch b/target/linux/brcm2708/patches-4.19/950-0292-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch new file mode 100644 index 0000000000..ccb4979d98 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0292-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch @@ -0,0 +1,79 @@ +From bf6b1c361f3e01a5d7ce6ac2c6cb29ece28bf41a Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.org> +Date: Thu, 10 Jan 2019 17:58:06 +0000 +Subject: [PATCH 292/725] firmware: raspberrypi: Report the fw variant during + probe + +The driver already reported the firmware build date during probe. +The mailbox calls have been extended to also report the variant + 1 = standard start.elf + 2 = start_x.elf (includes camera stack) + 3 = start_db.elf (includes assert logging) + 4 = start_cd.elf (cutdown version for smallest memory footprint). +Log the variant during probe. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> +--- + drivers/firmware/raspberrypi.c | 32 +++++++++++++++++----- + include/soc/bcm2835/raspberrypi-firmware.h | 1 + + 2 files changed, 26 insertions(+), 7 deletions(-) + +--- a/drivers/firmware/raspberrypi.c ++++ b/drivers/firmware/raspberrypi.c +@@ -227,21 +227,39 @@ static const struct attribute_group rpi_ + static void + rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) + { ++ static const char * const variant_strs[] = { ++ "unknown", ++ "start", ++ "start_x", ++ "start_db", ++ "start_cd", ++ }; ++ const char *variant_str = "cmd unsupported"; + u32 packet; ++ u32 variant; ++ struct tm tm; + int ret = rpi_firmware_property(fw, + RPI_FIRMWARE_GET_FIRMWARE_REVISION, + &packet, sizeof(packet)); + +- if (ret == 0) { +- struct tm tm; ++ if (ret) ++ return; + +- time64_to_tm(packet, 0, &tm); ++ ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_FIRMWARE_VARIANT, ++ &variant, sizeof(variant)); + +- dev_info(fw->cl.dev, +- "Attached to firmware from %04ld-%02d-%02d %02d:%02d\n", +- tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, +- tm.tm_hour, tm.tm_min); ++ if (!ret) { ++ if (variant >= ARRAY_SIZE(variant_strs)) ++ variant = 0; ++ variant_str = variant_strs[variant]; + } ++ ++ time64_to_tm(packet, 0, &tm); ++ ++ dev_info(fw->cl.dev, ++ "Attached to firmware from %04ld-%02d-%02d %02d:%02d, variant %s\n", ++ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, ++ tm.tm_min, variant_str); + } + + static void +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -41,6 +41,7 @@ struct rpi_firmware_property_tag_header + enum rpi_firmware_property_tag { + RPI_FIRMWARE_PROPERTY_END = 0, + RPI_FIRMWARE_GET_FIRMWARE_REVISION = 0x00000001, ++ RPI_FIRMWARE_GET_FIRMWARE_VARIANT = 0x00000002, + + RPI_FIRMWARE_SET_CURSOR_INFO = 0x00008010, + RPI_FIRMWARE_SET_CURSOR_STATE = 0x00008011, |