summaryrefslogtreecommitdiff
path: root/plat/arm/css
diff options
context:
space:
mode:
authorVikram Kanigiri <vikram.kanigiri@arm.com>2016-02-15 11:54:14 +0000
committerDan Handley <dan.handley@arm.com>2016-02-16 20:09:49 +0000
commit6355f2347aec8bf6ad74867c2b0c996e10546ad4 (patch)
treecaa44e0ab0e71f961a66d4f3f268798ef41f5ff6 /plat/arm/css
parent3aef80f5b2dd3de51e2ae63aac7980a6172f122e (diff)
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
Diffstat (limited to 'plat/arm/css')
-rw-r--r--plat/arm/css/common/css_pm.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/plat/arm/css/common/css_pm.c b/plat/arm/css/common/css_pm.c
index 6d6646e0..b6f94ac2 100644
--- a/plat/arm/css/common/css_pm.c
+++ b/plat/arm/css/common/css_pm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -31,7 +31,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <cassert.h>
-#include <cci.h>
#include <css_pm.h>
#include <debug.h>
#include <errno.h>
@@ -108,7 +107,7 @@ static void css_pwr_domain_on_finisher_common(
* if this cluster was off.
*/
if (CSS_CLUSTER_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF)
- cci_enable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(read_mpidr_el1()));
+ plat_arm_interconnect_enter_coherency();
}
/*******************************************************************************
@@ -153,7 +152,7 @@ static void css_power_down_common(const psci_power_state_t *target_state)
/* Cluster is to be turned off, so disable coherency */
if (CSS_CLUSTER_PWR_STATE(target_state) == ARM_LOCAL_STATE_OFF) {
- cci_disable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(read_mpidr()));
+ plat_arm_interconnect_exit_coherency();
cluster_state = scpi_power_off;
}