linux/arch/arc/plat-eznps/include/plat/mtm.h
<<
>>
Prefs
   1/*
   2 * Copyright(c) 2015 EZchip Technologies.
   3 *
   4 * This program is free software; you can redistribute it and/or modify it
   5 * under the terms and conditions of the GNU General Public License,
   6 * version 2, as published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope it will be useful, but WITHOUT
   9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  11 * more details.
  12 *
  13 * The full GNU General Public License is included in this distribution in
  14 * the file called "COPYING".
  15 */
  16
  17#ifndef _PLAT_EZNPS_MTM_H
  18#define _PLAT_EZNPS_MTM_H
  19
  20#include <plat/ctop.h>
  21
  22static inline void *nps_mtm_reg_addr(u32 cpu, u32 reg)
  23{
  24        struct global_id gid;
  25        u32 core, blkid;
  26
  27        gid.value = cpu;
  28        core = gid.core;
  29        blkid = (((core & 0x0C) << 2) | (core & 0x03));
  30
  31        return nps_host_reg(cpu, blkid, reg);
  32}
  33
  34#ifdef CONFIG_EZNPS_MTM_EXT
  35#define NPS_CPU_TO_THREAD_NUM(cpu) \
  36        ({ struct global_id gid; gid.value = cpu; gid.thread; })
  37
  38/* MTM registers */
  39#define MTM_CFG(cpu)                    nps_mtm_reg_addr(cpu, 0x81)
  40#define MTM_THR_INIT(cpu)               nps_mtm_reg_addr(cpu, 0x92)
  41#define MTM_THR_INIT_STS(cpu)           nps_mtm_reg_addr(cpu, 0x93)
  42
  43#define get_thread(map) map.thread
  44#define eznps_max_cpus 4096
  45#define eznps_cpus_per_cluster  256
  46
  47void mtm_enable_core(unsigned int cpu);
  48int mtm_enable_thread(int cpu);
  49#else /* !CONFIG_EZNPS_MTM_EXT */
  50
  51#define get_thread(map) 0
  52#define eznps_max_cpus 256
  53#define eznps_cpus_per_cluster  16
  54#define mtm_enable_core(cpu)
  55#define mtm_enable_thread(cpu) 1
  56#define NPS_CPU_TO_THREAD_NUM(cpu) 0
  57
  58#endif /* CONFIG_EZNPS_MTM_EXT */
  59
  60#endif /* _PLAT_EZNPS_MTM_H */
  61