]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
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 | ||
0caf5833 | 8 | #include <asm/sgidefs.h> |
2f56cfdd | 9 | #include <asm/fw/arc/types.h> |
1da177e4 LT |
10 | |
11 | /* configuration query defines */ | |
12 | typedef enum configclass { | |
13 | SystemClass, | |
14 | ProcessorClass, | |
15 | CacheClass, | |
70342287 | 16 | #ifndef _NT_PROM |
1da177e4 LT |
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, | |
70342287 | 38 | #ifndef _NT_PROM |
1da177e4 LT |
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); */ | |
70342287 | 97 | #define NULL 0 |
1da177e4 LT |
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 | ||
0caf5833 | 115 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
1da177e4 LT |
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 | ||
93000719 | 123 | typedef struct { |
1da177e4 LT |
124 | CONFIGCLASS Class; |
125 | CONFIGTYPE Type; | |
126 | IDENTIFIERFLAG Flags; | |
127 | USHORT Version; | |
128 | USHORT Revision; | |
70342287 | 129 | ULONG Key; |
1da177e4 LT |
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 */ | |
93000719 | 144 | typedef struct { |
1da177e4 LT |
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 */ | |
70342287 | 153 | #ifndef _NT_PROM |
1da177e4 LT |
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 | ||
93000719 | 170 | typedef struct { |
1da177e4 LT |
171 | MEMORYTYPE Type; |
172 | LONG BasePage; | |
173 | LONG PageCount; | |
174 | } MEMORYDESCRIPTOR; | |
175 | ||
176 | #endif /* _ASM_ARC_HINV_H */ |