linux/arch/powerpc/sysdev/dart.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2004 Olof Johansson <olof@lixom.net>, IBM Corporation
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License as published by
   6 * the Free Software Foundation; either version 2 of the License, or
   7 * (at your option) any later version.
   8 *
   9 * This program is distributed in the hope that it will be useful,
  10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12 * GNU General Public License for more details.
  13 *
  14 * You should have received a copy of the GNU General Public License
  15 * along with this program; if not, write to the Free Software
  16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  17 */
  18
  19#ifndef _POWERPC_SYSDEV_DART_H
  20#define _POWERPC_SYSDEV_DART_H
  21
  22
  23/* Offset from base to control register */
  24#define DART_CNTL       0
  25
  26/* Offset from base to exception register */
  27#define DART_EXCP_U3    0x10
  28/* Offset from base to TLB tag registers */
  29#define DART_TAGS_U3    0x1000
  30
  31/* U4 registers */
  32#define DART_BASE_U4    0x10
  33#define DART_SIZE_U4    0x20
  34#define DART_EXCP_U4    0x30
  35#define DART_TAGS_U4    0x1000
  36
  37/* Control Register fields */
  38
  39/* U3 registers */
  40#define DART_CNTL_U3_BASE_MASK  0xfffff
  41#define DART_CNTL_U3_BASE_SHIFT 12
  42#define DART_CNTL_U3_FLUSHTLB   0x400
  43#define DART_CNTL_U3_ENABLE     0x200
  44#define DART_CNTL_U3_SIZE_MASK  0x1ff
  45#define DART_CNTL_U3_SIZE_SHIFT 0
  46
  47/* U4 registers */
  48#define DART_BASE_U4_BASE_MASK  0xffffff
  49#define DART_BASE_U4_BASE_SHIFT 0
  50#define DART_CNTL_U4_ENABLE     0x80000000
  51#define DART_CNTL_U4_IONE       0x40000000
  52#define DART_CNTL_U4_FLUSHTLB   0x20000000
  53#define DART_CNTL_U4_IDLE       0x10000000
  54#define DART_CNTL_U4_PAR_EN     0x08000000
  55#define DART_CNTL_U4_IONE_MASK  0x07ffffff
  56#define DART_SIZE_U4_SIZE_MASK  0x1fff
  57#define DART_SIZE_U4_SIZE_SHIFT 0
  58
  59#define DART_REG(r)     (dart + ((r) >> 2))
  60#define DART_IN(r)      (in_be32(DART_REG(r)))
  61#define DART_OUT(r,v)   (out_be32(DART_REG(r), (v)))
  62
  63
  64/* size of table in pages */
  65
  66
  67/* DART table fields */
  68
  69#define DARTMAP_VALID   0x80000000
  70#define DARTMAP_RPNMASK 0x00ffffff
  71
  72
  73#define DART_PAGE_SHIFT         12
  74#define DART_PAGE_SIZE          (1 << DART_PAGE_SHIFT)
  75
  76
  77#endif /* _POWERPC_SYSDEV_DART_H */
  78