barebox_set_soc_uid() calls barebox_set_soc_uid() the same way as done
previously, but also exposes the SoC ID in the barebox environment.

Signed-off-by: Sascha Hauer <[email protected]>
---
 drivers/nvmem/ocotp.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/nvmem/ocotp.c b/drivers/nvmem/ocotp.c
index 
affca938849d0d1a8dc347e3a0e1f3a380f1aab7..4d12426275426acb69f8e8349cf56367a3f1f80d
 100644
--- a/drivers/nvmem/ocotp.c
+++ b/drivers/nvmem/ocotp.c
@@ -863,6 +863,7 @@ static void imx_ocotp_set_unique_machine_id(void)
        bool is_imx8mp = of_machine_is_compatible("fsl,imx8mp");
        uint32_t uid[4];
        int len;
+       char *uidstr;
 
        if (is_imx8mp) {
                if (imx_ocotp_read_field(IMX8MP_OCOTP_UID(0), &uid[0]))
@@ -875,6 +876,7 @@ static void imx_ocotp_set_unique_machine_id(void)
                if (imx_ocotp_read_field(IMX8MP_OCOTP_UID_2(1), &uid[3]))
                        return;
                len = sizeof(uid);
+               uidstr = xasprintf("%08X%08X%08X%08X", uid[3], uid[2], uid[1], 
uid[0]);
        } else {
                if (imx_ocotp_read_field(OCOTP_UNIQUE_ID(0), &uid[0]))
                        return;
@@ -882,9 +884,11 @@ static void imx_ocotp_set_unique_machine_id(void)
                        return;
 
                len = sizeof(uid) / 2;
+               uidstr = xasprintf("%08X%08X", uid[1], uid[0]);
        }
 
-       machine_id_set_hashable(uid, len);
+       barebox_set_soc_uid(uidstr, &uid, sizeof(uid));
+       free(uidstr);
 }
 
 static int imx_ocotp_probe(struct device *dev)
@@ -960,8 +964,7 @@ static int imx_ocotp_probe(struct device *dev)
                                  ethaddr->value, ethaddr);
        }
 
-       if (IS_ENABLED(CONFIG_MACHINE_ID))
-               imx_ocotp_set_unique_machine_id();
+       imx_ocotp_set_unique_machine_id();
 
        ret = imx_ocotp_init_dt(priv);
        if (ret)

-- 
2.47.3


Reply via email to