aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2019-01-17 14:57:54 +0000
committerSoby Mathew <soby.mathew@arm.com>2019-02-04 15:42:36 +0000
commit5dc2c3f95c97b7c1751c66ec9c231eae2db46086 (patch)
tree81be1b0f0f35e65d01815a87432b7ea287ccdd88 /drivers
parentc57abde6f5b018a10162a76c1420f316dee1e50d (diff)
downloadplatform_external_arm-trusted-firmware-5dc2c3f95c97b7c1751c66ec9c231eae2db46086.tar.gz
platform_external_arm-trusted-firmware-5dc2c3f95c97b7c1751c66ec9c231eae2db46086.tar.bz2
platform_external_arm-trusted-firmware-5dc2c3f95c97b7c1751c66ec9c231eae2db46086.zip
GICv3: Allow probe for fewer GICR interfaces than exposed by the frame
Previously the GICv3 redistributor probe function (gicv3_rdistif_base_addrs_probe()) asserted that the number of per-CPU redistributor interfaces expected to be probed by the platform is equal to the number exported by the redistributor frame. This is a problem in case the number of CPUs in the platform is less than the number of redistributor interfaces in the frame. Hence this patch removes the assertion check and allows probe for fewer redistributor interfaces as required by the platform. Change-Id: I3449763a3ad70817224442cbe184d001030c9874 Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/arm/gic/v3/gicv3_helpers.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/arm/gic/v3/gicv3_helpers.c b/drivers/arm/gic/v3/gicv3_helpers.c
index 39ea2a374..710532e3c 100644
--- a/drivers/arm/gic/v3/gicv3_helpers.c
+++ b/drivers/arm/gic/v3/gicv3_helpers.c
@@ -341,8 +341,10 @@ void gicv3_rdistif_base_addrs_probe(uintptr_t *rdistif_base_addrs,
proc_num = (typer_val >> TYPER_PROC_NUM_SHIFT) &
TYPER_PROC_NUM_MASK;
}
- assert(proc_num < rdistif_num);
- rdistif_base_addrs[proc_num] = rdistif_base;
+
+ if (proc_num < rdistif_num)
+ rdistif_base_addrs[proc_num] = rdistif_base;
+
rdistif_base += (1U << GICR_PCPUBASE_SHIFT);
} while ((typer_val & TYPER_LAST_BIT) == 0U);
}