linux/arch/mips/include/asm/sn/gda.h
<<
>>
Prefs
   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 * Derived from IRIX <sys/SN/gda.h>.
   7 *
   8 * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
   9 *
  10 * gda.h -- Contains the data structure for the global data area,
  11 *      The GDA contains information communicated between the
  12 *      PROM, SYMMON, and the kernel.
  13 */
  14#ifndef _ASM_SN_GDA_H
  15#define _ASM_SN_GDA_H
  16
  17#include <asm/sn/addrs.h>
  18
  19#define GDA_MAGIC       0x58464552
  20
  21/*
  22 * GDA Version History
  23 *
  24 * Version #    | Change
  25 * -------------+-------------------------------------------------------
  26 *      1       | Initial SN0 version
  27 *      2       | Prom sets g_partid field to the partition number. 0 IS
  28 *              | a valid partition #.
  29 */
  30
  31#define GDA_VERSION     2       /* Current GDA version # */
  32
  33#define G_MAGICOFF      0
  34#define G_VERSIONOFF    4
  35#define G_PROMOPOFF     6
  36#define G_MASTEROFF     8
  37#define G_VDSOFF        12
  38#define G_HKDNORMOFF    16
  39#define G_HKDUTLBOFF    24
  40#define G_HKDXUTLBOFF   32
  41#define G_PARTIDOFF     40
  42#define G_TABLEOFF      128
  43
  44#ifndef __ASSEMBLY__
  45
  46typedef struct gda {
  47        u32     g_magic;        /* GDA magic number */
  48        u16     g_version;      /* Version of this structure */
  49        u16     g_masterid;     /* The NASID:CPUNUM of the master cpu */
  50        u32     g_promop;       /* Passes requests from the kernel to prom */
  51        u32     g_vds;          /* Store the virtual dipswitches here */
  52        void    **g_hooked_norm;/* ptr to pda loc for norm hndlr */
  53        void    **g_hooked_utlb;/* ptr to pda loc for utlb hndlr */
  54        void    **g_hooked_xtlb;/* ptr to pda loc for xtlb hndlr */
  55        int     g_partid;       /* partition id */
  56        int     g_symmax;       /* Max symbols in name table. */
  57        void    *g_dbstab;      /* Address of idbg symbol table */
  58        char    *g_nametab;     /* Address of idbg name table */
  59        void    *g_ktext_repmask;
  60                                /* Pointer to a mask of nodes with copies
  61                                 * of the kernel. */
  62        char    g_padding[56];  /* pad out to 128 bytes */
  63        nasid_t g_nasidtable[MAX_COMPACT_NODES]; /* NASID of each node,
  64                                                  * indexed by cnodeid.
  65                                                  */
  66} gda_t;
  67
  68#define GDA ((gda_t*) GDA_ADDR(get_nasid()))
  69
  70#endif /* !__ASSEMBLY__ */
  71/*
  72 * Define:      PART_GDA_VERSION
  73 * Purpose:     Define the minimum version of the GDA required, lower
  74 *              revisions assume GDA is NOT set up, and read partition
  75 *              information from the board info.
  76 */
  77#define PART_GDA_VERSION        2
  78
  79/*
  80 * The following requests can be sent to the PROM during startup.
  81 */
  82
  83#define PROMOP_MAGIC            0x0ead0000
  84#define PROMOP_MAGIC_MASK       0x0fff0000
  85
  86#define PROMOP_BIST_SHIFT       11
  87#define PROMOP_BIST_MASK        (0x3 << 11)
  88
  89#define PROMOP_REG              PI_ERR_STACK_ADDR_A
  90
  91#define PROMOP_INVALID          (PROMOP_MAGIC | 0x00)
  92#define PROMOP_HALT             (PROMOP_MAGIC | 0x10)
  93#define PROMOP_POWERDOWN        (PROMOP_MAGIC | 0x20)
  94#define PROMOP_RESTART          (PROMOP_MAGIC | 0x30)
  95#define PROMOP_REBOOT           (PROMOP_MAGIC | 0x40)
  96#define PROMOP_IMODE            (PROMOP_MAGIC | 0x50)
  97
  98#define PROMOP_CMD_MASK         0x00f0
  99#define PROMOP_OPTIONS_MASK     0xfff0
 100
 101#define PROMOP_SKIP_DIAGS       0x0100          /* don't bother running diags */
 102#define PROMOP_SKIP_MEMINIT     0x0200          /* don't bother initing memory */
 103#define PROMOP_SKIP_DEVINIT     0x0400          /* don't bother initing devices */
 104#define PROMOP_BIST1            0x0800          /* keep track of which BIST ran */
 105#define PROMOP_BIST2            0x1000          /* keep track of which BIST ran */
 106
 107#endif /* _ASM_SN_GDA_H */
 108