From d87a8562306a46049560ba4387789918ecbca4b6 Mon Sep 17 00:00:00 2001 From: Jagdish Gediya Date: Thu, 27 Jun 2024 06:38:18 +0000 Subject: [PATCH] feat(tc): print ni-tower discovery tree print ni-tower discovery tree to understand ni-tower hierarchy which might be useful during debugging. Change-Id: Ib49fef9c63f7740e04b4d8371c1083bd040f6e09 Signed-off-by: Jagdish Gediya Signed-off-by: Icen.Zeyada --- plat/arm/common/arm_ni.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plat/arm/common/arm_ni.c b/plat/arm/common/arm_ni.c index b3ad8b386..9c105f7e3 100644 --- a/plat/arm/common/arm_ni.c +++ b/plat/arm/common/arm_ni.c @@ -144,19 +144,33 @@ int plat_arm_ni_setup(uintptr_t global_cfg) for (uint32_t i = 0U; i < vd_count; i++) { vd_addr = global_cfg + mmio_read_32(global_cfg + NI_CHILD_POINTER(i)); + + VERBOSE("Voltage domain %u at 0x%lx node info: 0x%x\n", + i, vd_addr, mmio_read_32(vd_addr)); + pd_count = mmio_read_32(vd_addr + NI_CHILD_NODE_COUNT); for (uint32_t j = 0U; j < pd_count; j++) { pd_addr = global_cfg + mmio_read_32(vd_addr + NI_CHILD_POINTER(j)); cd_count = mmio_read_32(pd_addr + NI_CHILD_NODE_COUNT); + VERBOSE("Power domain %u at 0x%lx node info: 0x%x\n", + j, pd_addr, mmio_read_32(pd_addr)); + for (uint32_t k = 0U; k < cd_count; k++) { cd_addr = global_cfg + mmio_read_32(pd_addr + NI_CHILD_POINTER(k)); comp_count = mmio_read_32(cd_addr + NI_CHILD_NODE_COUNT); + VERBOSE("Clock domain %u at 0x%lx node info: 0x%x\n", + k, cd_addr, mmio_read_32(cd_addr)); + for (uint32_t l = 0U; l < comp_count; l++) { comp_addr = global_cfg + mmio_read_32(cd_addr + NI_CHILD_POINTER(l)); + + VERBOSE("Component %u at 0x%lx node info: 0x%x\n", + l, comp_addr, mmio_read_32(comp_addr)); + ni_setup_component(comp_addr); } }