cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cputype.h (2317B)


      1/*
      2 * DaVinci CPU type detection
      3 *
      4 * Author: Kevin Hilman, Deep Root Systems, LLC
      5 *
      6 * Defines the cpu_is_*() macros for runtime detection of DaVinci
      7 * device type.  In addition, if support for a given device is not
      8 * compiled in to the kernel, the macros return 0 so that
      9 * resulting code can be optimized out.
     10 *
     11 * 2009 (c) Deep Root Systems, LLC. This file is licensed under
     12 * the terms of the GNU General Public License version 2. This program
     13 * is licensed "as is" without any warranty of any kind, whether express
     14 * or implied.
     15 */
     16#ifndef _ASM_ARCH_CPU_H
     17#define _ASM_ARCH_CPU_H
     18
     19#include "common.h"
     20
     21struct davinci_id {
     22	u8	variant;	/* JTAG ID bits 31:28 */
     23	u16	part_no;	/* JTAG ID bits 27:12 */
     24	u16	manufacturer;	/* JTAG ID bits 11:1 */
     25	u32	cpu_id;
     26	char	*name;
     27};
     28
     29/* Can use lower 16 bits of cpu id  for a variant when required */
     30#define	DAVINCI_CPU_ID_DM6446		0x64460000
     31#define	DAVINCI_CPU_ID_DM6467		0x64670000
     32#define	DAVINCI_CPU_ID_DM355		0x03550000
     33#define	DAVINCI_CPU_ID_DM365		0x03650000
     34#define	DAVINCI_CPU_ID_DA830		0x08300000
     35#define	DAVINCI_CPU_ID_DA850		0x08500000
     36
     37#define IS_DAVINCI_CPU(type, id)					\
     38static inline int is_davinci_ ##type(void)				\
     39{									\
     40	return (davinci_soc_info.cpu_id == (id));			\
     41}
     42
     43IS_DAVINCI_CPU(dm644x, DAVINCI_CPU_ID_DM6446)
     44IS_DAVINCI_CPU(dm646x, DAVINCI_CPU_ID_DM6467)
     45IS_DAVINCI_CPU(dm355, DAVINCI_CPU_ID_DM355)
     46IS_DAVINCI_CPU(dm365, DAVINCI_CPU_ID_DM365)
     47IS_DAVINCI_CPU(da830, DAVINCI_CPU_ID_DA830)
     48IS_DAVINCI_CPU(da850, DAVINCI_CPU_ID_DA850)
     49
     50#ifdef CONFIG_ARCH_DAVINCI_DM644x
     51#define cpu_is_davinci_dm644x() is_davinci_dm644x()
     52#else
     53#define cpu_is_davinci_dm644x() 0
     54#endif
     55
     56#ifdef CONFIG_ARCH_DAVINCI_DM646x
     57#define cpu_is_davinci_dm646x() is_davinci_dm646x()
     58#else
     59#define cpu_is_davinci_dm646x() 0
     60#endif
     61
     62#ifdef CONFIG_ARCH_DAVINCI_DM355
     63#define cpu_is_davinci_dm355() is_davinci_dm355()
     64#else
     65#define cpu_is_davinci_dm355() 0
     66#endif
     67
     68#ifdef CONFIG_ARCH_DAVINCI_DM365
     69#define cpu_is_davinci_dm365() is_davinci_dm365()
     70#else
     71#define cpu_is_davinci_dm365() 0
     72#endif
     73
     74#ifdef CONFIG_ARCH_DAVINCI_DA830
     75#define cpu_is_davinci_da830() is_davinci_da830()
     76#else
     77#define cpu_is_davinci_da830() 0
     78#endif
     79
     80#ifdef CONFIG_ARCH_DAVINCI_DA850
     81#define cpu_is_davinci_da850() is_davinci_da850()
     82#else
     83#define cpu_is_davinci_da850() 0
     84#endif
     85
     86#endif