Rework use of interconnect drivers
authorVikram Kanigiri <vikram.kanigiri@arm.com>
Mon, 15 Feb 2016 11:54:14 +0000 (11:54 +0000)
committerDan Handley <dan.handley@arm.com>
Tue, 16 Feb 2016 20:09:49 +0000 (20:09 +0000)
commit6355f2347aec8bf6ad74867c2b0c996e10546ad4
treecaa44e0ab0e71f961a66d4f3f268798ef41f5ff6
parent3aef80f5b2dd3de51e2ae63aac7980a6172f122e
Rework use of interconnect drivers

ARM Trusted Firmware supports 2 different interconnect peripheral
drivers: CCI and CCN. ARM platforms are implemented using either of the
interconnect peripherals.

This patch adds a layer of abstraction to help ARM platform ports to
choose the right interconnect driver and corresponding platform support.
This is as described below:

1. A set of ARM common functions have been implemented to initialise an
interconnect and for entering/exiting a cluster from coherency. These
functions are prefixed as "plat_arm_interconnect_". Weak definitions of
these functions have been provided for each type of driver.

2.`plat_print_interconnect_regs` macro used for printing CCI registers is
moved from a common arm_macros.S to cci_macros.S.

3. The `ARM_CONFIG_HAS_CCI` flag used in `arm_config_flags` structure
is renamed to `ARM_CONFIG_HAS_INTERCONNECT`.

Change-Id: I02f31184fbf79b784175892d5ce1161b65a0066c
20 files changed:
include/plat/arm/common/aarch64/arm_macros.S
include/plat/arm/common/aarch64/cci_macros.S [new file with mode: 0644]
include/plat/arm/common/arm_config.h
include/plat/arm/common/plat_arm.h
plat/arm/board/fvp/aarch64/fvp_common.c
plat/arm/board/fvp/fvp_bl1_setup.c
plat/arm/board/fvp/fvp_bl31_setup.c
plat/arm/board/fvp/fvp_pm.c
plat/arm/board/fvp/fvp_private.h
plat/arm/board/fvp/include/plat_macros.S
plat/arm/board/fvp/platform.mk
plat/arm/board/juno/include/plat_macros.S
plat/arm/board/juno/platform.mk
plat/arm/common/aarch64/arm_common.c
plat/arm/common/arm_bl1_setup.c
plat/arm/common/arm_bl31_setup.c
plat/arm/common/arm_cci.c [new file with mode: 0644]
plat/arm/common/arm_ccn.c [new file with mode: 0644]
plat/arm/common/arm_common.mk
plat/arm/css/common/css_pm.c