mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-24 22:05:40 +00:00
stm32mp1: introduce shared resources support
STM32MP1 SoC includes peripheral interfaces that can be assigned to the secure world, or that can be opened to the non-secure world. This change introduces the basics of a driver that manages such resources which assignation is done at run time. It currently offers API functions that state whether a service exposed to non-secure world has permission to access a targeted clock or reset controller. Change-Id: Iff20028f41586bc501085488c03546ffe31046d8 Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
This commit is contained in:
parent
3fbec43648
commit
47cf5d3f28
3 changed files with 40 additions and 0 deletions
18
plat/st/common/include/stm32mp_shared_resources.h
Normal file
18
plat/st/common/include/stm32mp_shared_resources.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017-2020, STMicroelectronics - All Rights Reserved
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef STM32MP_SHARED_RESOURCES_H
|
||||||
|
#define STM32MP_SHARED_RESOURCES_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
/* Return true if @clock_id is shared by secure and non-secure worlds */
|
||||||
|
bool stm32mp_nsec_can_access_clock(unsigned long clock_id);
|
||||||
|
|
||||||
|
/* Return true if and only if @reset_id relates to a non-secure peripheral */
|
||||||
|
bool stm32mp_nsec_can_access_reset(unsigned int reset_id);
|
||||||
|
|
||||||
|
#endif /* STM32MP_SHARED_RESOURCES_H */
|
|
@ -6,10 +6,13 @@
|
||||||
|
|
||||||
SP_MIN_WITH_SECURE_FIQ := 1
|
SP_MIN_WITH_SECURE_FIQ := 1
|
||||||
|
|
||||||
|
BL32_CFLAGS += -DSTM32MP_SHARED_RESOURCES
|
||||||
|
|
||||||
BL32_SOURCES += drivers/st/etzpc/etzpc.c \
|
BL32_SOURCES += drivers/st/etzpc/etzpc.c \
|
||||||
plat/common/aarch32/platform_mp_stack.S \
|
plat/common/aarch32/platform_mp_stack.S \
|
||||||
plat/st/stm32mp1/sp_min/sp_min_setup.c \
|
plat/st/stm32mp1/sp_min/sp_min_setup.c \
|
||||||
plat/st/stm32mp1/stm32mp1_pm.c \
|
plat/st/stm32mp1/stm32mp1_pm.c \
|
||||||
|
plat/st/stm32mp1/stm32mp1_shared_resources.c \
|
||||||
plat/st/stm32mp1/stm32mp1_topology.c
|
plat/st/stm32mp1/stm32mp1_topology.c
|
||||||
|
|
||||||
# Generic GIC v2
|
# Generic GIC v2
|
||||||
|
|
19
plat/st/stm32mp1/stm32mp1_shared_resources.c
Normal file
19
plat/st/stm32mp1/stm32mp1_shared_resources.c
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017-2020, STMicroelectronics - All Rights Reserved
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stm32mp_shared_resources.h>
|
||||||
|
|
||||||
|
/* Currently allow full access by non-secure to platform clock services */
|
||||||
|
bool stm32mp_nsec_can_access_clock(unsigned long clock_id)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Currently allow full access by non-secure to platform reset services */
|
||||||
|
bool stm32mp_nsec_can_access_reset(unsigned int reset_id)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue