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