aboutsummaryrefslogtreecommitdiffstats
path: root/plat
diff options
context:
space:
mode:
authorSteven Kao <skao@nvidia.com>2017-11-30 11:53:29 +0800
committerVarun Wadekar <vwadekar@nvidia.com>2019-11-28 11:14:21 -0800
commit95397d96617ea2915ead715239ec7fc6e462c42f (patch)
tree9b151a43bf5d0b434edb7e8b6662ff081550c659 /plat
parent117dbe6ce91b85763d5d63964fb3b458462fddf8 (diff)
downloadplatform_external_arm-trusted-firmware-95397d96617ea2915ead715239ec7fc6e462c42f.tar.gz
platform_external_arm-trusted-firmware-95397d96617ea2915ead715239ec7fc6e462c42f.tar.bz2
platform_external_arm-trusted-firmware-95397d96617ea2915ead715239ec7fc6e462c42f.zip
Tegra194: memctrl: fix logic to check TZDRAM config register access
This patch fixes the logic to check if the previous bootloader has disabled access to the TZDRAM configuration registers. The polarity for the bit was incorrect in the previous check. Change-Id: I7a0ba4f7b1714997508ece904c0261ca2c901a03 Signed-off-by: Steven Kao <skao@nvidia.com>
Diffstat (limited to 'plat')
-rw-r--r--plat/nvidia/tegra/include/t194/tegra_def.h2
-rw-r--r--plat/nvidia/tegra/soc/t194/plat_memctrl.c10
2 files changed, 8 insertions, 4 deletions
diff --git a/plat/nvidia/tegra/include/t194/tegra_def.h b/plat/nvidia/tegra/include/t194/tegra_def.h
index bedf26888..212bd48e6 100644
--- a/plat/nvidia/tegra/include/t194/tegra_def.h
+++ b/plat/nvidia/tegra/include/t194/tegra_def.h
@@ -75,6 +75,8 @@
#define MC_SECURITY_CFG_REG_CTRL_0 U(0x154)
#define SECURITY_CFG_WRITE_ACCESS_BIT (U(0x1) << 0)
+#define SECURITY_CFG_WRITE_ACCESS_ENABLE U(0x0)
+#define SECURITY_CFG_WRITE_ACCESS_DISABLE U(0x1)
/* Video Memory carveout configuration registers */
#define MC_VIDEO_PROTECT_BASE_HI U(0x978)
diff --git a/plat/nvidia/tegra/soc/t194/plat_memctrl.c b/plat/nvidia/tegra/soc/t194/plat_memctrl.c
index 75705cff1..54dbe7cdb 100644
--- a/plat/nvidia/tegra/soc/t194/plat_memctrl.c
+++ b/plat/nvidia/tegra/soc/t194/plat_memctrl.c
@@ -646,12 +646,14 @@ tegra_mc_settings_t *tegra_get_mc_settings(void)
******************************************************************************/
void plat_memctrl_tzdram_setup(uint64_t phys_base, uint64_t size_in_bytes)
{
+ uint32_t sec_reg_ctrl = tegra_mc_read_32(MC_SECURITY_CFG_REG_CTRL_0);
+
/*
- * Check if the carveout register is already locked, if locked
- * no TZDRAM setup
+ * Check TZDRAM carveout register access status. Setup TZDRAM fence
+ * only if access is enabled.
*/
- if ((tegra_mc_read_32(MC_SECURITY_CFG_REG_CTRL_0) &
- SECURITY_CFG_WRITE_ACCESS_BIT) == SECURITY_CFG_WRITE_ACCESS_BIT) {
+ if ((sec_reg_ctrl & SECURITY_CFG_WRITE_ACCESS_BIT) ==
+ SECURITY_CFG_WRITE_ACCESS_ENABLE) {
/*
* Setup the Memory controller to allow only secure accesses to