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
1 changed files with 19 additions and 0 deletions
|
@ -539,6 +539,10 @@ int board_late_init(void)
|
||||||
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||||
const void *fdt_compat;
|
const void *fdt_compat;
|
||||||
int fdt_compat_len;
|
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 = fdt_getprop(gd->fdt_blob, 0, "compatible",
|
||||||
&fdt_compat_len);
|
&fdt_compat_len);
|
||||||
|
@ -548,6 +552,21 @@ int board_late_init(void)
|
||||||
else
|
else
|
||||||
env_set("board_name", fdt_compat + 3);
|
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
|
#endif
|
||||||
|
|
||||||
/* for DK1/DK2 boards */
|
/* for DK1/DK2 boards */
|
||||||
|
|
Loading…
Reference in a new issue