mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
stm32mp1: display board information
Implement checkboard() function to display - the boot chain used: basic or trusted - the board compatible in device tree - the board identifier and revision, saved in OTP59 for ST boards Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
This commit is contained in:
parent
d859c61139
commit
d461f10036
2 changed files with 46 additions and 2 deletions
|
@ -98,7 +98,11 @@ enum boot_device {
|
||||||
|
|
||||||
/* offset used for BSEC driver: misc_read and misc_write */
|
/* offset used for BSEC driver: misc_read and misc_write */
|
||||||
#define STM32_BSEC_SHADOW_OFFSET 0x0
|
#define STM32_BSEC_SHADOW_OFFSET 0x0
|
||||||
|
#define STM32_BSEC_SHADOW(id) (STM32_BSEC_SHADOW_OFFSET + (id) * 4)
|
||||||
#define STM32_BSEC_OTP_OFFSET 0x80000000
|
#define STM32_BSEC_OTP_OFFSET 0x80000000
|
||||||
|
#define STM32_BSEC_OTP(id) (STM32_BSEC_OTP_OFFSET + (id) * 4)
|
||||||
|
|
||||||
|
#define BSEC_OTP_BOARD 59
|
||||||
|
|
||||||
#endif /* __ASSEMBLY__*/
|
#endif /* __ASSEMBLY__*/
|
||||||
#endif /* _MACH_STM32_H_ */
|
#endif /* _MACH_STM32_H_ */
|
||||||
|
|
|
@ -3,11 +3,12 @@
|
||||||
* Copyright (C) 2018, STMicroelectronics - All Rights Reserved
|
* Copyright (C) 2018, STMicroelectronics - All Rights Reserved
|
||||||
*/
|
*/
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <common.h>
|
|
||||||
#include <led.h>
|
|
||||||
#include <clk.h>
|
#include <clk.h>
|
||||||
|
#include <common.h>
|
||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
#include <generic-phy.h>
|
#include <generic-phy.h>
|
||||||
|
#include <led.h>
|
||||||
|
#include <misc.h>
|
||||||
#include <phy.h>
|
#include <phy.h>
|
||||||
#include <reset.h>
|
#include <reset.h>
|
||||||
#include <usb.h>
|
#include <usb.h>
|
||||||
|
@ -26,6 +27,45 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
#define STM32MP_GGPIO 0x38
|
#define STM32MP_GGPIO 0x38
|
||||||
#define STM32MP_GGPIO_VBUS_SENSING BIT(21)
|
#define STM32MP_GGPIO_VBUS_SENSING BIT(21)
|
||||||
|
|
||||||
|
int checkboard(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
char *mode;
|
||||||
|
u32 otp;
|
||||||
|
struct udevice *dev;
|
||||||
|
const char *fdt_compat;
|
||||||
|
int fdt_compat_len;
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_STM32MP1_TRUSTED))
|
||||||
|
mode = "trusted";
|
||||||
|
else
|
||||||
|
mode = "basic";
|
||||||
|
|
||||||
|
printf("Board: stm32mp1 in %s mode", mode);
|
||||||
|
fdt_compat = fdt_getprop(gd->fdt_blob, 0, "compatible",
|
||||||
|
&fdt_compat_len);
|
||||||
|
if (fdt_compat && fdt_compat_len)
|
||||||
|
printf(" (%s)", fdt_compat);
|
||||||
|
puts("\n");
|
||||||
|
|
||||||
|
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) {
|
||||||
|
printf("Board: MB%04x Var%d Rev.%c-%02d\n",
|
||||||
|
otp >> 16,
|
||||||
|
(otp >> 12) & 0xF,
|
||||||
|
((otp >> 8) & 0xF) - 1 + 'A',
|
||||||
|
otp & 0xF);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static struct dwc2_plat_otg_data stm32mp_otg_data = {
|
static struct dwc2_plat_otg_data stm32mp_otg_data = {
|
||||||
.usb_gusbcfg = STM32MP_GUSBCFG,
|
.usb_gusbcfg = STM32MP_GUSBCFG,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue