xref: /openbmc/linux/arch/mips/include/asm/fw/arc/hinv.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2384740dcSRalf Baechle /*
3384740dcSRalf Baechle  * ARCS hardware/memory inventory/configuration and system ID definitions.
4384740dcSRalf Baechle  */
5384740dcSRalf Baechle #ifndef _ASM_ARC_HINV_H
6384740dcSRalf Baechle #define _ASM_ARC_HINV_H
7384740dcSRalf Baechle 
8384740dcSRalf Baechle #include <asm/sgidefs.h>
9384740dcSRalf Baechle #include <asm/fw/arc/types.h>
10384740dcSRalf Baechle 
11384740dcSRalf Baechle /* configuration query defines */
12384740dcSRalf Baechle typedef enum configclass {
13384740dcSRalf Baechle 	SystemClass,
14384740dcSRalf Baechle 	ProcessorClass,
15384740dcSRalf Baechle 	CacheClass,
16384740dcSRalf Baechle #ifndef _NT_PROM
17384740dcSRalf Baechle 	MemoryClass,
18384740dcSRalf Baechle 	AdapterClass,
19384740dcSRalf Baechle 	ControllerClass,
20384740dcSRalf Baechle 	PeripheralClass
21384740dcSRalf Baechle #else	/* _NT_PROM */
22384740dcSRalf Baechle 	AdapterClass,
23384740dcSRalf Baechle 	ControllerClass,
24384740dcSRalf Baechle 	PeripheralClass,
25384740dcSRalf Baechle 	MemoryClass
26384740dcSRalf Baechle #endif	/* _NT_PROM */
27384740dcSRalf Baechle } CONFIGCLASS;
28384740dcSRalf Baechle 
29384740dcSRalf Baechle typedef enum configtype {
30384740dcSRalf Baechle 	ARC,
31384740dcSRalf Baechle 	CPU,
32384740dcSRalf Baechle 	FPU,
33384740dcSRalf Baechle 	PrimaryICache,
34384740dcSRalf Baechle 	PrimaryDCache,
35384740dcSRalf Baechle 	SecondaryICache,
36384740dcSRalf Baechle 	SecondaryDCache,
37384740dcSRalf Baechle 	SecondaryCache,
38384740dcSRalf Baechle #ifndef _NT_PROM
39384740dcSRalf Baechle 	Memory,
40384740dcSRalf Baechle #endif
41384740dcSRalf Baechle 	EISAAdapter,
42384740dcSRalf Baechle 	TCAdapter,
43384740dcSRalf Baechle 	SCSIAdapter,
44384740dcSRalf Baechle 	DTIAdapter,
45384740dcSRalf Baechle 	MultiFunctionAdapter,
46384740dcSRalf Baechle 	DiskController,
47384740dcSRalf Baechle 	TapeController,
48384740dcSRalf Baechle 	CDROMController,
49384740dcSRalf Baechle 	WORMController,
50384740dcSRalf Baechle 	SerialController,
51384740dcSRalf Baechle 	NetworkController,
52384740dcSRalf Baechle 	DisplayController,
53384740dcSRalf Baechle 	ParallelController,
54384740dcSRalf Baechle 	PointerController,
55384740dcSRalf Baechle 	KeyboardController,
56384740dcSRalf Baechle 	AudioController,
57384740dcSRalf Baechle 	OtherController,
58384740dcSRalf Baechle 	DiskPeripheral,
59384740dcSRalf Baechle 	FloppyDiskPeripheral,
60384740dcSRalf Baechle 	TapePeripheral,
61384740dcSRalf Baechle 	ModemPeripheral,
62384740dcSRalf Baechle 	MonitorPeripheral,
63384740dcSRalf Baechle 	PrinterPeripheral,
64384740dcSRalf Baechle 	PointerPeripheral,
65384740dcSRalf Baechle 	KeyboardPeripheral,
66384740dcSRalf Baechle 	TerminalPeripheral,
67384740dcSRalf Baechle 	LinePeripheral,
68384740dcSRalf Baechle 	NetworkPeripheral,
69384740dcSRalf Baechle #ifdef	_NT_PROM
70384740dcSRalf Baechle 	Memory,
71384740dcSRalf Baechle #endif
72384740dcSRalf Baechle 	OtherPeripheral,
73384740dcSRalf Baechle 
74384740dcSRalf Baechle 	/* new stuff for IP30 */
75384740dcSRalf Baechle 	/* added without moving anything */
76384740dcSRalf Baechle 	/* except ANONYMOUS. */
77384740dcSRalf Baechle 
78384740dcSRalf Baechle 	XTalkAdapter,
79384740dcSRalf Baechle 	PCIAdapter,
80384740dcSRalf Baechle 	GIOAdapter,
81384740dcSRalf Baechle 	TPUAdapter,
82384740dcSRalf Baechle 
83384740dcSRalf Baechle 	Anonymous
84384740dcSRalf Baechle } CONFIGTYPE;
85384740dcSRalf Baechle 
86384740dcSRalf Baechle typedef enum {
87384740dcSRalf Baechle 	Failed = 1,
88384740dcSRalf Baechle 	ReadOnly = 2,
89384740dcSRalf Baechle 	Removable = 4,
90384740dcSRalf Baechle 	ConsoleIn = 8,
91384740dcSRalf Baechle 	ConsoleOut = 16,
92384740dcSRalf Baechle 	Input = 32,
93384740dcSRalf Baechle 	Output = 64
94384740dcSRalf Baechle } IDENTIFIERFLAG;
95384740dcSRalf Baechle 
96384740dcSRalf Baechle #ifndef NULL			/* for GetChild(NULL); */
97384740dcSRalf Baechle #define NULL	0
98384740dcSRalf Baechle #endif
99384740dcSRalf Baechle 
100384740dcSRalf Baechle union key_u {
101384740dcSRalf Baechle 	struct {
102384740dcSRalf Baechle #ifdef	_MIPSEB
103384740dcSRalf Baechle 		unsigned char  c_bsize;		/* block size in lines */
104384740dcSRalf Baechle 		unsigned char  c_lsize;		/* line size in bytes/tag */
105384740dcSRalf Baechle 		unsigned short c_size;		/* cache size in 4K pages */
106384740dcSRalf Baechle #else	/* _MIPSEL */
107384740dcSRalf Baechle 		unsigned short c_size;		/* cache size in 4K pages */
108384740dcSRalf Baechle 		unsigned char  c_lsize;		/* line size in bytes/tag */
109384740dcSRalf Baechle 		unsigned char  c_bsize;		/* block size in lines */
110384740dcSRalf Baechle #endif	/* _MIPSEL */
111384740dcSRalf Baechle 	} cache;
112384740dcSRalf Baechle 	ULONG FullKey;
113384740dcSRalf Baechle };
114384740dcSRalf Baechle 
115384740dcSRalf Baechle #if _MIPS_SIM == _MIPS_SIM_ABI64
116384740dcSRalf Baechle #define SGI_ARCS_VERS	64			/* sgi 64-bit version */
117384740dcSRalf Baechle #define SGI_ARCS_REV	0			/* rev .00 */
118384740dcSRalf Baechle #else
119384740dcSRalf Baechle #define SGI_ARCS_VERS	1			/* first version */
120384740dcSRalf Baechle #define SGI_ARCS_REV	10			/* rev .10, 3/04/92 */
121384740dcSRalf Baechle #endif
122384740dcSRalf Baechle 
12393000719SRalf Baechle typedef struct {
124384740dcSRalf Baechle 	CONFIGCLASS	Class;
125384740dcSRalf Baechle 	CONFIGTYPE	Type;
126384740dcSRalf Baechle 	IDENTIFIERFLAG	Flags;
127384740dcSRalf Baechle 	USHORT		Version;
128384740dcSRalf Baechle 	USHORT		Revision;
129384740dcSRalf Baechle 	ULONG		Key;
130384740dcSRalf Baechle 	ULONG		AffinityMask;
131384740dcSRalf Baechle 	ULONG		ConfigurationDataSize;
132384740dcSRalf Baechle 	ULONG		IdentifierLength;
133384740dcSRalf Baechle 	char		*Identifier;
134384740dcSRalf Baechle } COMPONENT;
135384740dcSRalf Baechle 
136384740dcSRalf Baechle /* internal structure that holds pathname parsing data */
137384740dcSRalf Baechle struct cfgdata {
138384740dcSRalf Baechle 	char *name;			/* full name */
139384740dcSRalf Baechle 	int minlen;			/* minimum length to match */
140384740dcSRalf Baechle 	CONFIGTYPE type;		/* type of token */
141384740dcSRalf Baechle };
142384740dcSRalf Baechle 
143384740dcSRalf Baechle /* System ID */
14493000719SRalf Baechle typedef struct {
145384740dcSRalf Baechle 	CHAR VendorId[8];
146384740dcSRalf Baechle 	CHAR ProductId[8];
147384740dcSRalf Baechle } SYSTEMID;
148384740dcSRalf Baechle 
149384740dcSRalf Baechle /* memory query functions */
150384740dcSRalf Baechle typedef enum memorytype {
151384740dcSRalf Baechle 	ExceptionBlock,
152384740dcSRalf Baechle 	SPBPage,			/* ARCS == SystemParameterBlock */
153384740dcSRalf Baechle #ifndef _NT_PROM
154384740dcSRalf Baechle 	FreeContiguous,
155384740dcSRalf Baechle 	FreeMemory,
156384740dcSRalf Baechle 	BadMemory,
157384740dcSRalf Baechle 	LoadedProgram,
158384740dcSRalf Baechle 	FirmwareTemporary,
159384740dcSRalf Baechle 	FirmwarePermanent
160384740dcSRalf Baechle #else	/* _NT_PROM */
161384740dcSRalf Baechle 	FreeMemory,
162384740dcSRalf Baechle 	BadMemory,
163384740dcSRalf Baechle 	LoadedProgram,
164384740dcSRalf Baechle 	FirmwareTemporary,
165384740dcSRalf Baechle 	FirmwarePermanent,
166384740dcSRalf Baechle 	FreeContiguous
167384740dcSRalf Baechle #endif	/* _NT_PROM */
168384740dcSRalf Baechle } MEMORYTYPE;
169384740dcSRalf Baechle 
17093000719SRalf Baechle typedef struct {
171384740dcSRalf Baechle 	MEMORYTYPE	Type;
172384740dcSRalf Baechle 	LONG		BasePage;
173384740dcSRalf Baechle 	LONG		PageCount;
174384740dcSRalf Baechle } MEMORYDESCRIPTOR;
175384740dcSRalf Baechle 
176384740dcSRalf Baechle #endif /* _ASM_ARC_HINV_H */
177