summaryrefslogtreecommitdiff
path: root/src/soc/nvidia/tegra132/ramstage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/nvidia/tegra132/ramstage.c')
-rw-r--r--src/soc/nvidia/tegra132/ramstage.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/soc/nvidia/tegra132/ramstage.c b/src/soc/nvidia/tegra132/ramstage.c
index 64b61e9b08..ca9cec49c3 100644
--- a/src/soc/nvidia/tegra132/ramstage.c
+++ b/src/soc/nvidia/tegra132/ramstage.c
@@ -16,8 +16,18 @@
#include <arch/stages.h>
#include <soc/addressmap.h>
#include <soc/clock.h>
+#include <soc/mc.h>
#include <soc/mmu_operations.h>
+static void lock_down_vpr(void)
+{
+ struct tegra_mc_regs *regs = (void *)(uintptr_t)TEGRA_MC_BASE;
+
+ write32(&regs->video_protect_bom, 0);
+ write32(&regs->video_protect_size_mb, 0);
+ write32(&regs->video_protect_reg_ctrl, 1);
+}
+
void arm64_soc_init(void)
{
trustzone_region_init();
@@ -25,4 +35,9 @@ void arm64_soc_init(void)
tegra132_mmu_init();
clock_cpu0_config();
+
+ clock_init_arm_generic_timer();
+
+ /* Lock down VPR */
+ lock_down_vpr();
}