home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / sn / gda.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.2 KB  |  108 lines

  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 */
  108.