arm: fconf: Fix GICv3 dynamic configuration
At the moment the fconf_populate_gicv3_config() implementation is
somewhat incomplete: First it actually fails to store the retrieved
information (the local addr[] array is going nowhere), but also it makes
quite some assumptions about the device tree passed to it: it needs to
use two address-cells and two size-cells, and also requires all five
register regions to be specified, where actually only the first two
are mandatory according to the binding (and needed by our code).

Fix this by introducing a proper generic function to retrieve "reg"
property information from a DT node:
We retrieve the #address-cells and #size-cells properties from the
parent node, then use those to extract the right values from the "reg"
property. The function takes an index to select one region of a reg
property.

This is loosely based on the STM32 implementation using "reg-names",
which we will subsume in a follow-up patch.

Change-Id: Ia59bfdf80aea4e36876c7b6ed4d153e303f482e8
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
1 parent be858cf commit 364ad245a24efce0732245f050a80b9b702fc7b2
@Andre Przywara Andre Przywara authored on 26 Mar 2020
Showing 6 changed files
View
common/fdt_wrappers.c
View
include/common/fdt_wrappers.h
View
plat/arm/board/fvp/fconf/fconf_hw_config_getter.c
View
plat/arm/board/fvp/include/fconf_hw_config_getter.h
View
plat/arm/board/fvp/jmptbl.i
View
plat/arm/board/juno/jmptbl.i