stm32mp1: board: add environment variable for board id and board rev
Add variable to identify board with HW id (read from OTP) and revision. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
This commit is contained in:
parent
49ef8e134e
commit
8b8b3d6b55
@ -539,6 +539,10 @@ int board_late_init(void)
|
||||
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
const void *fdt_compat;
|
||||
int fdt_compat_len;
|
||||
int ret;
|
||||
u32 otp;
|
||||
struct udevice *dev;
|
||||
char buf[10];
|
||||
|
||||
fdt_compat = fdt_getprop(gd->fdt_blob, 0, "compatible",
|
||||
&fdt_compat_len);
|
||||
@ -548,6 +552,21 @@ int board_late_init(void)
|
||||
else
|
||||
env_set("board_name", fdt_compat + 3);
|
||||
}
|
||||
ret = uclass_get_device_by_driver(UCLASS_MISC,
|
||||
DM_GET_DRIVER(stm32mp_bsec),
|
||||
&dev);
|
||||
|
||||
if (!ret)
|
||||
ret = misc_read(dev, STM32_BSEC_SHADOW(BSEC_OTP_BOARD),
|
||||
&otp, sizeof(otp));
|
||||
if (!ret && otp) {
|
||||
snprintf(buf, sizeof(buf), "0x%04x", otp >> 16);
|
||||
env_set("board_id", buf);
|
||||
|
||||
snprintf(buf, sizeof(buf), "0x%04x",
|
||||
((otp >> 8) & 0xF) - 1 + 0xA);
|
||||
env_set("board_rev", buf);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* for DK1/DK2 boards */
|
||||
|
Loading…
Reference in New Issue
Block a user