mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 10:29:52 +00:00
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> firmware: raspberrypi: Report the fw git hash during probe The firmware can now report the git hash from which it was built via the mailbox, so report it during probe. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
This commit is contained in:
committed by
Dom Cobley
parent
9cf150f19d
commit
3a632952dd
@@ -235,6 +235,15 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
|||||||
{
|
{
|
||||||
time64_t date_and_time;
|
time64_t date_and_time;
|
||||||
u32 packet;
|
u32 packet;
|
||||||
|
static const char * const variant_strs[] = {
|
||||||
|
"unknown",
|
||||||
|
"start",
|
||||||
|
"start_x",
|
||||||
|
"start_db",
|
||||||
|
"start_cd",
|
||||||
|
};
|
||||||
|
const char *variant_str = "cmd unsupported";
|
||||||
|
u32 variant;
|
||||||
int ret = rpi_firmware_property(fw,
|
int ret = rpi_firmware_property(fw,
|
||||||
RPI_FIRMWARE_GET_FIRMWARE_REVISION,
|
RPI_FIRMWARE_GET_FIRMWARE_REVISION,
|
||||||
&packet, sizeof(packet));
|
&packet, sizeof(packet));
|
||||||
@@ -244,7 +253,35 @@ rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
|
|||||||
|
|
||||||
/* This is not compatible with y2038 */
|
/* This is not compatible with y2038 */
|
||||||
date_and_time = packet;
|
date_and_time = packet;
|
||||||
dev_info(fw->cl.dev, "Attached to firmware from %ptT\n", &date_and_time);
|
|
||||||
|
ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_FIRMWARE_VARIANT,
|
||||||
|
&variant, sizeof(variant));
|
||||||
|
|
||||||
|
if (!ret) {
|
||||||
|
if (variant >= ARRAY_SIZE(variant_strs))
|
||||||
|
variant = 0;
|
||||||
|
variant_str = variant_strs[variant];
|
||||||
|
}
|
||||||
|
|
||||||
|
dev_info(fw->cl.dev,
|
||||||
|
"Attached to firmware from %ptT, variant %s\n",
|
||||||
|
&date_and_time, variant_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
rpi_firmware_print_firmware_hash(struct rpi_firmware *fw)
|
||||||
|
{
|
||||||
|
u32 hash[5];
|
||||||
|
int ret = rpi_firmware_property(fw,
|
||||||
|
RPI_FIRMWARE_GET_FIRMWARE_HASH,
|
||||||
|
hash, sizeof(hash));
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
return;
|
||||||
|
|
||||||
|
dev_info(fw->cl.dev,
|
||||||
|
"Firmware hash is %08x%08x%08x%08x%08x\n",
|
||||||
|
hash[0], hash[1], hash[2], hash[3], hash[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -359,6 +396,7 @@ static int rpi_firmware_probe(struct platform_device *pdev)
|
|||||||
g_pdev = pdev;
|
g_pdev = pdev;
|
||||||
|
|
||||||
rpi_firmware_print_firmware_revision(fw);
|
rpi_firmware_print_firmware_revision(fw);
|
||||||
|
rpi_firmware_print_firmware_hash(fw);
|
||||||
rpi_register_hwmon_driver(dev, fw);
|
rpi_register_hwmon_driver(dev, fw);
|
||||||
rpi_register_clk_driver(dev);
|
rpi_register_clk_driver(dev);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user