]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: st: stm32mp2: display the board identification
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Mon, 15 Jan 2024 14:05:55 +0000 (15:05 +0100)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Fri, 19 Jan 2024 13:38:59 +0000 (14:38 +0100)
Add the display of the STMicroelectronics board identification saved in OTP
in stm32mp2 checkboard function.

Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
board/st/stm32mp2/stm32mp2.c

index 9a881583d90499b6a3f828d45e7fb11f3d3f6dc5..aa7dd31996eac2a1363112d1cada9d54a1832628 100644 (file)
@@ -9,9 +9,12 @@
 #include <env.h>
 #include <fdt_support.h>
 #include <log.h>
+#include <misc.h>
 #include <asm/global_data.h>
 #include <asm/arch/sys_proto.h>
+#include <dm/device.h>
 #include <dm/ofnode.h>
+#include <dm/uclass.h>
 
 /*
  * Get a global data pointer
@@ -20,6 +23,9 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int checkboard(void)
 {
+       int ret;
+       u32 otp;
+       struct udevice *dev;
        const char *fdt_compat;
        int fdt_compat_len;
 
@@ -27,6 +33,23 @@ int checkboard(void)
 
        log_info("Board: stm32mp2 (%s)\n", fdt_compat && fdt_compat_len ? fdt_compat : "");
 
+       /* display the STMicroelectronics board identification */
+       if (CONFIG_IS_ENABLED(CMD_STBOARD)) {
+               ret = uclass_get_device_by_driver(UCLASS_MISC,
+                                                 DM_DRIVER_GET(stm32mp_bsec),
+                                                 &dev);
+               if (!ret)
+                       ret = misc_read(dev, STM32_BSEC_SHADOW(BSEC_OTP_BOARD),
+                                       &otp, sizeof(otp));
+               if (ret > 0 && otp)
+                       log_info("Board: MB%04x Var%d.%d Rev.%c-%02d\n",
+                                otp >> 16,
+                                (otp >> 12) & 0xF,
+                                (otp >> 4) & 0xF,
+                                ((otp >> 8) & 0xF) - 1 + 'A',
+                                otp & 0xF);
+       }
+
        return 0;
 }