+++ /dev/null
-/*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <arch.h>
-#include <assert.h>
-#include <cci400.h>
-#include <debug.h>
-#include <mmio.h>
-#include <stdint.h>
-
-#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)
- ;
-}
-
+++ /dev/null
-/*
- * 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 <stdint.h>
-
-/* 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__ */