mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-30 07:39:24 +00:00
feat(stm32mp1): add "Boot mode" management for STM32MP13
Add new APIs to enter and exit "boot mode". In this mode a potential tamper won't block access or reset the secure IPs needed while boot, without this mode a dead lock may occurs. Change-Id: Iad60d4a0420ec125b842a285f73a20eb54cd1828 Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@st.com>
This commit is contained in:
parent
fca10a8f1b
commit
296ac8012b
2 changed files with 26 additions and 0 deletions
|
@ -23,6 +23,14 @@ void stm32mp1_syscfg_enable_io_compensation_finish(void);
|
||||||
void stm32mp1_syscfg_disable_io_compensation(void);
|
void stm32mp1_syscfg_disable_io_compensation(void);
|
||||||
uint32_t stm32mp1_syscfg_get_chip_version(void);
|
uint32_t stm32mp1_syscfg_get_chip_version(void);
|
||||||
uint32_t stm32mp1_syscfg_get_chip_dev_id(void);
|
uint32_t stm32mp1_syscfg_get_chip_dev_id(void);
|
||||||
|
#if STM32MP13
|
||||||
|
void stm32mp1_syscfg_boot_mode_enable(void);
|
||||||
|
void stm32mp1_syscfg_boot_mode_disable(void);
|
||||||
|
#endif
|
||||||
|
#if STM32MP15
|
||||||
|
static inline void stm32mp1_syscfg_boot_mode_enable(void){}
|
||||||
|
static inline void stm32mp1_syscfg_boot_mode_disable(void){}
|
||||||
|
#endif
|
||||||
|
|
||||||
void stm32mp1_deconfigure_uart_pins(void);
|
void stm32mp1_deconfigure_uart_pins(void);
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
* SYSCFG REGISTER OFFSET (base relative)
|
* SYSCFG REGISTER OFFSET (base relative)
|
||||||
*/
|
*/
|
||||||
#define SYSCFG_BOOTR 0x00U
|
#define SYSCFG_BOOTR 0x00U
|
||||||
|
#define SYSCFG_BOOTCR 0x0CU
|
||||||
#if STM32MP15
|
#if STM32MP15
|
||||||
#define SYSCFG_IOCTRLSETR 0x18U
|
#define SYSCFG_IOCTRLSETR 0x18U
|
||||||
#define SYSCFG_ICNR 0x1CU
|
#define SYSCFG_ICNR 0x1CU
|
||||||
|
@ -54,6 +55,11 @@
|
||||||
#define SYSCFG_BOOTR_BOOTPD_SHIFT 4
|
#define SYSCFG_BOOTR_BOOTPD_SHIFT 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SYSCFG_BOOTCR Register
|
||||||
|
*/
|
||||||
|
#define SYSCFG_BOOTCR_BMEN BIT(0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SYSCFG_IOCTRLSETR Register
|
* SYSCFG_IOCTRLSETR Register
|
||||||
*/
|
*/
|
||||||
|
@ -391,3 +397,15 @@ uint32_t stm32mp1_syscfg_get_chip_dev_id(void)
|
||||||
{
|
{
|
||||||
return mmio_read_32(SYSCFG_BASE + SYSCFG_IDC) & SYSCFG_IDC_DEV_ID_MASK;
|
return mmio_read_32(SYSCFG_BASE + SYSCFG_IDC) & SYSCFG_IDC_DEV_ID_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if STM32MP13
|
||||||
|
void stm32mp1_syscfg_boot_mode_enable(void)
|
||||||
|
{
|
||||||
|
mmio_setbits_32(SYSCFG_BASE + SYSCFG_BOOTCR, SYSCFG_BOOTCR_BMEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
void stm32mp1_syscfg_boot_mode_disable(void)
|
||||||
|
{
|
||||||
|
mmio_clrbits_32(SYSCFG_BASE + SYSCFG_BOOTCR, SYSCFG_BOOTCR_BMEN);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue