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

io.h (1868B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 2000, 2003 Ralf Baechle
      7 * Copyright (C) 2000 Silicon Graphics, Inc.
      8 */
      9#ifndef _ASM_SN_IO_H
     10#define _ASM_SN_IO_H
     11
     12#if defined(CONFIG_SGI_IP27)
     13#include <asm/sn/sn0/hubio.h>
     14#endif
     15
     16
     17#define IIO_ITTE_BASE		0x400160 /* base of translation table entries */
     18#define IIO_ITTE(bigwin)	(IIO_ITTE_BASE + 8*(bigwin))
     19
     20#define IIO_ITTE_OFFSET_BITS	5	/* size of offset field */
     21#define IIO_ITTE_OFFSET_MASK	((1<<IIO_ITTE_OFFSET_BITS)-1)
     22#define IIO_ITTE_OFFSET_SHIFT	0
     23
     24#define IIO_ITTE_WIDGET_BITS	4	/* size of widget field */
     25#define IIO_ITTE_WIDGET_MASK	((1<<IIO_ITTE_WIDGET_BITS)-1)
     26#define IIO_ITTE_WIDGET_SHIFT	8
     27
     28#define IIO_ITTE_IOSP		1	/* I/O Space bit */
     29#define IIO_ITTE_IOSP_MASK	1
     30#define IIO_ITTE_IOSP_SHIFT	12
     31#define HUB_PIO_MAP_TO_MEM	0
     32#define HUB_PIO_MAP_TO_IO	1
     33
     34#define IIO_ITTE_INVALID_WIDGET 3	/* an invalid widget  */
     35
     36#define IIO_ITTE_PUT(nasid, bigwin, io_or_mem, widget, addr) \
     37	REMOTE_HUB_S((nasid), IIO_ITTE(bigwin), \
     38		(((((addr) >> BWIN_SIZE_BITS) & \
     39		   IIO_ITTE_OFFSET_MASK) << IIO_ITTE_OFFSET_SHIFT) | \
     40		(io_or_mem << IIO_ITTE_IOSP_SHIFT) | \
     41		(((widget) & IIO_ITTE_WIDGET_MASK) << IIO_ITTE_WIDGET_SHIFT)))
     42
     43#define IIO_ITTE_DISABLE(nasid, bigwin) \
     44	IIO_ITTE_PUT((nasid), HUB_PIO_MAP_TO_MEM, \
     45		     (bigwin), IIO_ITTE_INVALID_WIDGET, 0)
     46
     47#define IIO_ITTE_GET(nasid, bigwin) REMOTE_HUB_PTR((nasid), IIO_ITTE(bigwin))
     48
     49/*
     50 * Macro which takes the widget number, and returns the
     51 * IO PRB address of that widget.
     52 * value _x is expected to be a widget number in the range
     53 * 0, 8 - 0xF
     54 */
     55#define IIO_IOPRB(_x)	(IIO_IOPRB_0 + ( ( (_x) < HUB_WIDGET_ID_MIN ? \
     56			(_x) : \
     57			(_x) - (HUB_WIDGET_ID_MIN-1)) << 3) )
     58
     59#endif /* _ASM_SN_IO_H */