/* * Copyright 2020 NXP * * SPDX-License-Identifier: BSD-3-Clause * */ #include #include #include /****************************************************************************** * 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())); }