diff options
author | Soby Mathew <soby.mathew@arm.com> | 2019-01-17 14:57:54 +0000 |
---|---|---|
committer | Soby Mathew <soby.mathew@arm.com> | 2019-02-04 15:42:36 +0000 |
commit | 5dc2c3f95c97b7c1751c66ec9c231eae2db46086 (patch) | |
tree | 81be1b0f0f35e65d01815a87432b7ea287ccdd88 /drivers | |
parent | c57abde6f5b018a10162a76c1420f316dee1e50d (diff) | |
download | platform_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.c | 6 |
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); } |