root/arch/mips/include/asm/sn/gda.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  46 typedef 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 */

/* [<][>][^][v][top][bottom][index][help] */