arm-trusted-firmware/drivers/nxp/interconnect/ls_cci.c
Pankaj Gupta 76f735fd82 NXP: Interconnect API based on ARM CCN-CCI driver
CCN API(s) to be used NXP SoC(s) are added.
These API(s) based on ARM CCN driver
- driver/arm/ccn

CCI API(s) to be used NXP SoC(s) are added.
These API(s) based on ARM CCI driver
- driver/arm/cci

Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
Change-Id: I7682c4c9bd42f63542b3ffd3cb6c5d2effe4ae0a
2021-03-24 09:49:31 +05:30

38 lines
1.3 KiB
C

/*
* Copyright 2020 NXP
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#include <arch.h>
#include <cci.h>
#include <plat_arm.h>
/******************************************************************************
* The following functions are defined as weak to allow a platform to override
* the way ARM CCI driver is initialised and used.
*****************************************************************************/
#pragma weak plat_arm_interconnect_enter_coherency
#pragma weak plat_arm_interconnect_exit_coherency
/******************************************************************************
* Helper function to place current master into coherency
*****************************************************************************/
void plat_ls_interconnect_enter_coherency(unsigned int num_clusters)
{
cci_enable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(read_mpidr_el1()));
for (uint32_t index = 1U; index < num_clusters; index++) {
cci_enable_snoop_dvm_reqs(index);
}
}
/******************************************************************************
* Helper function to remove current master from coherency
*****************************************************************************/
void plat_ls_interconnect_exit_coherency(void)
{
cci_disable_snoop_dvm_reqs(MPIDR_AFFLVL1_VAL(read_mpidr_el1()));
}