root/arch/mips/include/asm/fw/arc/hinv.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * ARCS hardware/memory inventory/configuration and system ID definitions.
   4  */
   5 #ifndef _ASM_ARC_HINV_H
   6 #define _ASM_ARC_HINV_H
   7 
   8 #include <asm/sgidefs.h>
   9 #include <asm/fw/arc/types.h>
  10 
  11 /* configuration query defines */
  12 typedef enum configclass {
  13         SystemClass,
  14         ProcessorClass,
  15         CacheClass,
  16 #ifndef _NT_PROM
  17         MemoryClass,
  18         AdapterClass,
  19         ControllerClass,
  20         PeripheralClass
  21 #else   /* _NT_PROM */
  22         AdapterClass,
  23         ControllerClass,
  24         PeripheralClass,
  25         MemoryClass
  26 #endif  /* _NT_PROM */
  27 } CONFIGCLASS;
  28 
  29 typedef enum configtype {
  30         ARC,
  31         CPU,
  32         FPU,
  33         PrimaryICache,
  34         PrimaryDCache,
  35         SecondaryICache,
  36         SecondaryDCache,
  37         SecondaryCache,
  38 #ifndef _NT_PROM
  39         Memory,
  40 #endif
  41         EISAAdapter,
  42         TCAdapter,
  43         SCSIAdapter,
  44         DTIAdapter,
  45         MultiFunctionAdapter,
  46         DiskController,
  47         TapeController,
  48         CDROMController,
  49         WORMController,
  50         SerialController,
  51         NetworkController,
  52         DisplayController,
  53         ParallelController,
  54         PointerController,
  55         KeyboardController,
  56         AudioController,
  57         OtherController,
  58         DiskPeripheral,
  59         FloppyDiskPeripheral,
  60         TapePeripheral,
  61         ModemPeripheral,
  62         MonitorPeripheral,
  63         PrinterPeripheral,
  64         PointerPeripheral,
  65         KeyboardPeripheral,
  66         TerminalPeripheral,
  67         LinePeripheral,
  68         NetworkPeripheral,
  69 #ifdef  _NT_PROM
  70         Memory,
  71 #endif
  72         OtherPeripheral,
  73 
  74         /* new stuff for IP30 */
  75         /* added without moving anything */
  76         /* except ANONYMOUS. */
  77 
  78         XTalkAdapter,
  79         PCIAdapter,
  80         GIOAdapter,
  81         TPUAdapter,
  82 
  83         Anonymous
  84 } CONFIGTYPE;
  85 
  86 typedef enum {
  87         Failed = 1,
  88         ReadOnly = 2,
  89         Removable = 4,
  90         ConsoleIn = 8,
  91         ConsoleOut = 16,
  92         Input = 32,
  93         Output = 64
  94 } IDENTIFIERFLAG;
  95 
  96 #ifndef NULL                    /* for GetChild(NULL); */
  97 #define NULL    0
  98 #endif
  99 
 100 union key_u {
 101         struct {
 102 #ifdef  _MIPSEB
 103                 unsigned char  c_bsize;         /* block size in lines */
 104                 unsigned char  c_lsize;         /* line size in bytes/tag */
 105                 unsigned short c_size;          /* cache size in 4K pages */
 106 #else   /* _MIPSEL */
 107                 unsigned short c_size;          /* cache size in 4K pages */
 108                 unsigned char  c_lsize;         /* line size in bytes/tag */
 109                 unsigned char  c_bsize;         /* block size in lines */
 110 #endif  /* _MIPSEL */
 111         } cache;
 112         ULONG FullKey;
 113 };
 114 
 115 #if _MIPS_SIM == _MIPS_SIM_ABI64
 116 #define SGI_ARCS_VERS   64                      /* sgi 64-bit version */
 117 #define SGI_ARCS_REV    0                       /* rev .00 */
 118 #else
 119 #define SGI_ARCS_VERS   1                       /* first version */
 120 #define SGI_ARCS_REV    10                      /* rev .10, 3/04/92 */
 121 #endif
 122 
 123 typedef struct {
 124         CONFIGCLASS     Class;
 125         CONFIGTYPE      Type;
 126         IDENTIFIERFLAG  Flags;
 127         USHORT          Version;
 128         USHORT          Revision;
 129         ULONG           Key;
 130         ULONG           AffinityMask;
 131         ULONG           ConfigurationDataSize;
 132         ULONG           IdentifierLength;
 133         char            *Identifier;
 134 } COMPONENT;
 135 
 136 /* internal structure that holds pathname parsing data */
 137 struct cfgdata {
 138         char *name;                     /* full name */
 139         int minlen;                     /* minimum length to match */
 140         CONFIGTYPE type;                /* type of token */
 141 };
 142 
 143 /* System ID */
 144 typedef struct {
 145         CHAR VendorId[8];
 146         CHAR ProductId[8];
 147 } SYSTEMID;
 148 
 149 /* memory query functions */
 150 typedef enum memorytype {
 151         ExceptionBlock,
 152         SPBPage,                        /* ARCS == SystemParameterBlock */
 153 #ifndef _NT_PROM
 154         FreeContiguous,
 155         FreeMemory,
 156         BadMemory,
 157         LoadedProgram,
 158         FirmwareTemporary,
 159         FirmwarePermanent
 160 #else   /* _NT_PROM */
 161         FreeMemory,
 162         BadMemory,
 163         LoadedProgram,
 164         FirmwareTemporary,
 165         FirmwarePermanent,
 166         FreeContiguous
 167 #endif  /* _NT_PROM */
 168 } MEMORYTYPE;
 169 
 170 typedef struct {
 171         MEMORYTYPE      Type;
 172         LONG            BasePage;
 173         LONG            PageCount;
 174 } MEMORYDESCRIPTOR;
 175 
 176 #endif /* _ASM_ARC_HINV_H */

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