From: Rouven Czerwinski <r.czerwin...@pengutronix.de>

The HAB userguide mentions this additional API calls introduced in 2018
(which coincides with the introduction of i.MX8M SoCs).
Call this API call unconditionally on i.MX8M SoCs to print the HAB
version the ROM code supports.

Signed-off-by: Rouven Czerwinski <r.czerwin...@pengutronix.de>
---
Changelog:
v2:
- unchanged
- v1-link: 
https://lore.barebox.org/barebox/20231010143314.2031253-1-m.fel...@pengutronix.de/T/#t

 drivers/hab/habv4.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/hab/habv4.c b/drivers/hab/habv4.c
index 0238b98dfb7e..f74de009fce0 100644
--- a/drivers/hab/habv4.c
+++ b/drivers/hab/habv4.c
@@ -168,6 +168,7 @@ struct habv4_rvt {
 #define FSL_SIP_HAB_REPORT_STATUS       0x04
 #define FSL_SIP_HAB_FAILSAFE            0x05
 #define FSL_SIP_HAB_CHECK_TARGET        0x06
+#define FSL_SIP_HAB_GET_VERSION                0x07
 
 static enum hab_status hab_sip_report_status(enum hab_config *config,
                                             enum habv4_state *state)
@@ -193,6 +194,15 @@ static enum hab_status hab_sip_report_status(enum 
hab_config *config,
        return (enum hab_status)res.a0;
 }
 
+static uint32_t hab_sip_get_version(void)
+{
+       struct arm_smccc_res res;
+
+       arm_smccc_smc(FSL_SIP_HAB, FSL_SIP_HAB_GET_VERSION, 0, 0, 0, 0, 0, 0, 
&res);
+
+       return (uint32_t)res.a0;
+}
+
 #define IMX8MQ_ROM_OCRAM_ADDRESS       0x9061C0
 #define IMX8MM_ROM_OCRAM_ADDRESS       0x908040
 #define IMX8MN_ROM_OCRAM_ADDRESS       0x908040
@@ -610,6 +620,8 @@ static int init_imx8m_hab_get_status(void)
                /* can happen in multi-image builds and is not an error */
                return 0;
 
+       pr_info("ROM version: 0x%x\n", hab_sip_get_version());
+
        /*
         * Nobody will check the return value if there were HAB errors, but the
         * initcall will fail spectaculously with a strange error message.
-- 
2.39.2


Reply via email to