mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 10:34:19 +00:00

To be able to further restrict the memory access for the Arm(R) Ethos(TM)-N NPU, separate read-only and read/write NSAIDs for the non-protected and protected memory have been added to the Juno platform's TZMP1 TZC configuration for the NPU. The platform definition has been updated accordingly and the NPU driver will now only give read/write access to the streams that require it. Signed-off-by: Mikael Olsson <mikael.olsson@arm.com> Change-Id: I5a173500fc1943a5cd406a3b379e1f1f554eeda6
60 lines
2.4 KiB
C
60 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2023, Arm Limited. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef JUNO_ETHOSN_TZMP1_DEF_H
|
|
#define JUNO_ETHOSN_TZMP1_DEF_H
|
|
|
|
#define JUNO_ETHOSN_TZC400_NSAID_FW_PROT 7
|
|
#define JUNO_ETHOSN_TZC400_NSAID_DATA_RW_PROT 8
|
|
#define JUNO_ETHOSN_TZC400_NSAID_DATA_RO_PROT 13
|
|
|
|
/* 0 is the default NSAID and is included in PLAT_ARM_TZC_NS_DEV_ACCESS */
|
|
#define JUNO_ETHOSN_TZC400_NSAID_DATA_RW_NS 0
|
|
#define JUNO_ETHOSN_TZC400_NSAID_DATA_RO_NS 14
|
|
|
|
#define JUNO_ETHOSN_FW_TZC_PROT_DRAM2_SIZE UL(0x000400000) /* 4 MB */
|
|
#define JUNO_ETHOSN_FW_TZC_PROT_DRAM2_BASE (ARM_DRAM2_BASE)
|
|
#define JUNO_ETHOSN_FW_TZC_PROT_DRAM2_END (ARM_DRAM2_BASE + \
|
|
JUNO_ETHOSN_FW_TZC_PROT_DRAM2_SIZE \
|
|
- 1U)
|
|
|
|
#define JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_SIZE UL(0x004000000) /* 64 MB */
|
|
#define JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_BASE ( \
|
|
JUNO_ETHOSN_FW_TZC_PROT_DRAM2_END + 1)
|
|
#define JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_END ( \
|
|
JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_BASE + \
|
|
JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_SIZE - 1U)
|
|
|
|
#define JUNO_ETHOSN_NS_DRAM2_BASE (JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_END + \
|
|
1)
|
|
#define JUNO_ETHOSN_NS_DRAM2_END (ARM_DRAM2_END)
|
|
#define JUNO_ETHOSN_NS_DRAM2_SIZE (ARM_DRAM2_SIZE - \
|
|
JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_END)
|
|
|
|
#define JUNO_FW_TZC_PROT_ACCESS \
|
|
(TZC_REGION_ACCESS_RDWR(JUNO_ETHOSN_TZC400_NSAID_FW_PROT))
|
|
#define JUNO_DATA_TZC_PROT_ACCESS \
|
|
(TZC_REGION_ACCESS_RDWR(JUNO_ETHOSN_TZC400_NSAID_DATA_RW_PROT) | \
|
|
TZC_REGION_ACCESS_RD(JUNO_ETHOSN_TZC400_NSAID_DATA_RO_PROT))
|
|
#define JUNO_DATA_TZC_NS_ACCESS \
|
|
(PLAT_ARM_TZC_NS_DEV_ACCESS | \
|
|
TZC_REGION_ACCESS_RD(JUNO_ETHOSN_TZC400_NSAID_DATA_RO_NS))
|
|
|
|
#define JUNO_ETHOSN_TZMP_REGIONS_DEF \
|
|
{ ARM_AP_TZC_DRAM1_BASE, ARM_EL3_TZC_DRAM1_END + ARM_L1_GPT_SIZE, \
|
|
TZC_REGION_S_RDWR, 0 }, \
|
|
{ ARM_NS_DRAM1_BASE, ARM_NS_DRAM1_END, \
|
|
ARM_TZC_NS_DRAM_S_ACCESS, JUNO_DATA_TZC_NS_ACCESS}, \
|
|
{ JUNO_ETHOSN_FW_TZC_PROT_DRAM2_BASE, \
|
|
JUNO_ETHOSN_FW_TZC_PROT_DRAM2_END, \
|
|
TZC_REGION_S_RDWR, JUNO_FW_TZC_PROT_ACCESS }, \
|
|
{ JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_BASE, \
|
|
JUNO_ETHOSN_DATA_TZC_PROT_DRAM2_END, \
|
|
TZC_REGION_S_NONE, JUNO_DATA_TZC_PROT_ACCESS }, \
|
|
{ JUNO_ETHOSN_NS_DRAM2_BASE, JUNO_ETHOSN_NS_DRAM2_END, \
|
|
ARM_TZC_NS_DRAM_S_ACCESS, JUNO_DATA_TZC_NS_ACCESS}
|
|
|
|
#endif /* JUNO_ETHOSN_TZMP1_DEF_H */
|