feat(tc): add support for configuring DSU settings
This patch allows tc platforms to update DSU
CLUSTERPWRDN_EL1 and CLUSTERPWRCTLR_EL1 settings.
TC22 and TC23 use the DSU-120. Currently
we use the reset values as default settings as
per the DSU-120 TRM.
Reference: https://developer.arm.com/documentation/102547/0201
Change-Id: I48e0b5bd5881612e9b8b804948260f69c25c34d9
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
diff --git a/plat/arm/board/tc/platform.mk b/plat/arm/board/tc/platform.mk
index 9dd867d..b7edf28 100644
--- a/plat/arm/board/tc/platform.mk
+++ b/plat/arm/board/tc/platform.mk
@@ -16,6 +16,7 @@
HW_ASSISTED_COHERENCY := 1
USE_COHERENT_MEM := 0
USE_GIC_DRIVER := 3
+USE_DSU_DRIVER := 1
GIC_ENABLE_V4_EXTN := 1
GICV3_SUPPORT_GIC600 := 1
override NEED_BL2U := no
diff --git a/plat/arm/board/tc/tc_bl31_setup.c b/plat/arm/board/tc/tc_bl31_setup.c
index 7f2014b..073e487 100644
--- a/plat/arm/board/tc/tc_bl31_setup.c
+++ b/plat/arm/board/tc/tc_bl31_setup.c
@@ -14,6 +14,7 @@
#include <common/debug.h>
#include <drivers/arm/css/css_mhu_doorbell.h>
#include <drivers/arm/css/scmi.h>
+#include <drivers/arm/dsu.h>
#include <drivers/arm/sbsa.h>
#include <lib/fconf/fconf.h>
#include <lib/fconf/fconf_dyn_cfg_getter.h>
@@ -74,6 +75,13 @@
#endif
};
+const dsu_driver_data_t plat_dsu_data = {
+ .clusterpwrdwn_pwrdn = false,
+ .clusterpwrdwn_memret = false,
+ .clusterpwrctlr_cachepwr = CLUSTERPWRCTLR_CACHEPWR_RESET,
+ .clusterpwrctlr_funcret = CLUSTERPWRCTLR_FUNCRET_RESET
+};
+
#if (TARGET_PLATFORM == 3) || (TARGET_PLATFORM == 4)
static void enable_ns_mcn_pmu(void)
{