diff --git a/drivers/arm/cci400/cci400.c b/drivers/arm/cci400/cci400.c deleted file mode 100644 index 402e5e1..0000000 --- a/drivers/arm/cci400/cci400.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#include -#include -#include -#include -#include -#include - -#define MAX_CLUSTERS 2 - -static uintptr_t cci_base_addr; -static unsigned int cci_cluster_ix_to_iface[MAX_CLUSTERS]; - - -void cci_init(uintptr_t cci_base, - int slave_iface3_cluster_ix, - int slave_iface4_cluster_ix) -{ - /* - * Check the passed arguments are valid. The cluster indices must be - * less than MAX_CLUSTERS, not the same as each other and at least one - * of them must refer to a valid cluster index. - */ - assert(cci_base); - assert(slave_iface3_cluster_ix < MAX_CLUSTERS); - assert(slave_iface4_cluster_ix < MAX_CLUSTERS); - assert(slave_iface3_cluster_ix != slave_iface4_cluster_ix); - assert((slave_iface3_cluster_ix >= 0) || - (slave_iface4_cluster_ix >= 0)); - - WARN("Please migrate to common cci driver, This driver will be" \ - " deprecated in future\n"); - - cci_base_addr = cci_base; - if (slave_iface3_cluster_ix >= 0) - cci_cluster_ix_to_iface[slave_iface3_cluster_ix] = - SLAVE_IFACE3_OFFSET; - if (slave_iface4_cluster_ix >= 0) - cci_cluster_ix_to_iface[slave_iface4_cluster_ix] = - SLAVE_IFACE4_OFFSET; -} - -static inline unsigned long get_slave_iface_base(unsigned long mpidr) -{ - /* - * We assume the TF topology code allocates affinity instances - * consecutively from zero. - * It is a programming error if this is called without initializing - * the slave interface to use for this cluster. - */ - unsigned int cluster_id = - (mpidr >> MPIDR_AFF1_SHIFT) & MPIDR_AFFLVL_MASK; - - assert(cluster_id < MAX_CLUSTERS); - assert(cci_cluster_ix_to_iface[cluster_id] != 0); - - return cci_base_addr + cci_cluster_ix_to_iface[cluster_id]; -} - -void cci_enable_cluster_coherency(unsigned long mpidr) -{ - assert(cci_base_addr); - /* Enable Snoops and DVM messages */ - mmio_write_32(get_slave_iface_base(mpidr) + SNOOP_CTRL_REG, - DVM_EN_BIT | SNOOP_EN_BIT); - - /* Wait for the dust to settle down */ - while (mmio_read_32(cci_base_addr + STATUS_REG) & CHANGE_PENDING_BIT) - ; -} - -void cci_disable_cluster_coherency(unsigned long mpidr) -{ - assert(cci_base_addr); - /* Disable Snoops and DVM messages */ - mmio_write_32(get_slave_iface_base(mpidr) + SNOOP_CTRL_REG, - ~(DVM_EN_BIT | SNOOP_EN_BIT)); - - /* Wait for the dust to settle down */ - while (mmio_read_32(cci_base_addr + STATUS_REG) & CHANGE_PENDING_BIT) - ; -} - diff --git a/include/drivers/arm/cci400.h b/include/drivers/arm/cci400.h deleted file mode 100644 index e11dad4..0000000 --- a/include/drivers/arm/cci400.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#ifndef __CCI_400_H__ -#define __CCI_400_H__ - -/************************************************************** - * THIS DRIVER IS DEPRECATED. Please use the driver in cci.h - **************************************************************/ -#if ERROR_DEPRECATED -#error " The CCI-400 specific driver is deprecated." -#endif - - -/* Slave interface offsets from PERIPHBASE */ -#define SLAVE_IFACE4_OFFSET 0x5000 -#define SLAVE_IFACE3_OFFSET 0x4000 -#define SLAVE_IFACE2_OFFSET 0x3000 -#define SLAVE_IFACE1_OFFSET 0x2000 -#define SLAVE_IFACE0_OFFSET 0x1000 -#define SLAVE_IFACE_OFFSET(index) SLAVE_IFACE0_OFFSET + \ - (0x1000 * (index)) - -/* Control and ID register offsets */ -#define CTRL_OVERRIDE_REG 0x0 -#define SPEC_CTRL_REG 0x4 -#define SECURE_ACCESS_REG 0x8 -#define STATUS_REG 0xc -#define IMPRECISE_ERR_REG 0x10 -#define PERFMON_CTRL_REG 0x100 - -/* Slave interface register offsets */ -#define SNOOP_CTRL_REG 0x0 -#define SH_OVERRIDE_REG 0x4 -#define READ_CHNL_QOS_VAL_OVERRIDE_REG 0x100 -#define WRITE_CHNL_QOS_VAL_OVERRIDE_REG 0x104 -#define QOS_CTRL_REG 0x10c -#define MAX_OT_REG 0x110 -#define TARGET_LATENCY_REG 0x130 -#define LATENCY_REGULATION_REG 0x134 -#define QOS_RANGE_REG 0x138 - -/* Snoop Control register bit definitions */ -#define DVM_EN_BIT (1 << 1) -#define SNOOP_EN_BIT (1 << 0) - -/* Status register bit definitions */ -#define CHANGE_PENDING_BIT (1 << 0) - -#ifndef __ASSEMBLY__ - -#include - -/* Function declarations */ - -/* - * The CCI-400 driver must be initialized with the base address of the - * CCI-400 device in the platform memory map, and the cluster indices for - * the CCI-400 slave interfaces 3 and 4 respectively. These are the fully - * coherent ACE slave interfaces of CCI-400. - * The cluster indices must either be 0 or 1, corresponding to the level 1 - * affinity instance of the mpidr representing the cluster. A negative cluster - * index indicates that no cluster is present on that slave interface. - */ -void cci_init(uintptr_t cci_base, - int slave_iface3_cluster_ix, - int slave_iface4_cluster_ix) __deprecated; - -void cci_enable_cluster_coherency(unsigned long mpidr) __deprecated; -void cci_disable_cluster_coherency(unsigned long mpidr) __deprecated; - -#endif /* __ASSEMBLY__ */ -#endif /* __CCI_400_H__ */