summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2018-07-19 18:03:55 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2018-08-09 08:19:50 +0200
commit58a377c036135c2df019e7d6f36abc04842bfe2b (patch)
tree66ab8081aed2a698e9f1dd41b8984f26ccd512ab /arch
parent5026e1105f0227e8fe267544a5a4d60619a2835d (diff)
downloadbarebox-58a377c036135c2df019e7d6f36abc04842bfe2b.tar.gz
barebox-58a377c036135c2df019e7d6f36abc04842bfe2b.tar.xz
ARM: i.MX8MQ: Query and display ATF fimware hash if available
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/imx8mq.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx8mq.c b/arch/arm/mach-imx/imx8mq.c
index dbcf4fa59f..152f07bc12 100644
--- a/arch/arm/mach-imx/imx8mq.c
+++ b/arch/arm/mach-imx/imx8mq.c
@@ -20,11 +20,16 @@
#include <mach/revision.h>
#include <mach/imx8mq-regs.h>
+#include <linux/arm-smccc.h>
+
#define IMX8MQ_ROM_VERSION_A0 0x800
#define IMX8MQ_ROM_VERSION_B0 0x83C
#define MX8MQ_ANATOP_DIGPROG 0x6c
+#define FSL_SIP_BUILDINFO 0xC2000003
+#define FSL_SIP_BUILDINFO_GET_COMMITHASH 0x00
+
static void imx8mq_silicon_revision(void)
{
void __iomem *anatop = IOMEM(MX8MQ_ANATOP_BASE_ADDR);
@@ -81,7 +86,17 @@ core_initcall(imx8mq_init_syscnt_frequency);
int imx8mq_init(void)
{
+ struct arm_smccc_res res;
+
imx8mq_silicon_revision();
+ if (IS_ENABLED(CONFIG_ARM_SMCCC) &&
+ IS_ENABLED(CONFIG_FIRMWARE_IMX8MQ_ATF)) {
+ arm_smccc_smc(FSL_SIP_BUILDINFO,
+ FSL_SIP_BUILDINFO_GET_COMMITHASH,
+ 0, 0, 0, 0, 0, 0, &res);
+ pr_info("i.MX ARM Trusted Firmware: %s\n", (char *)&res.a0);
+ }
+
return 0;
}