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 | #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 New Issue