177 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
/*
 | 
						|
 * ARCS hardware/memory inventory/configuration and system ID definitions.
 | 
						|
 */
 | 
						|
#ifndef _ASM_ARC_HINV_H
 | 
						|
#define _ASM_ARC_HINV_H
 | 
						|
 | 
						|
#include <asm/sgidefs.h>
 | 
						|
#include <asm/fw/arc/types.h>
 | 
						|
 | 
						|
/* configuration query defines */
 | 
						|
typedef enum configclass {
 | 
						|
	SystemClass,
 | 
						|
	ProcessorClass,
 | 
						|
	CacheClass,
 | 
						|
#ifndef _NT_PROM
 | 
						|
	MemoryClass,
 | 
						|
	AdapterClass,
 | 
						|
	ControllerClass,
 | 
						|
	PeripheralClass
 | 
						|
#else	/* _NT_PROM */
 | 
						|
	AdapterClass,
 | 
						|
	ControllerClass,
 | 
						|
	PeripheralClass,
 | 
						|
	MemoryClass
 | 
						|
#endif	/* _NT_PROM */
 | 
						|
} CONFIGCLASS;
 | 
						|
 | 
						|
typedef enum configtype {
 | 
						|
	ARC,
 | 
						|
	CPU,
 | 
						|
	FPU,
 | 
						|
	PrimaryICache,
 | 
						|
	PrimaryDCache,
 | 
						|
	SecondaryICache,
 | 
						|
	SecondaryDCache,
 | 
						|
	SecondaryCache,
 | 
						|
#ifndef _NT_PROM
 | 
						|
	Memory,
 | 
						|
#endif
 | 
						|
	EISAAdapter,
 | 
						|
	TCAdapter,
 | 
						|
	SCSIAdapter,
 | 
						|
	DTIAdapter,
 | 
						|
	MultiFunctionAdapter,
 | 
						|
	DiskController,
 | 
						|
	TapeController,
 | 
						|
	CDROMController,
 | 
						|
	WORMController,
 | 
						|
	SerialController,
 | 
						|
	NetworkController,
 | 
						|
	DisplayController,
 | 
						|
	ParallelController,
 | 
						|
	PointerController,
 | 
						|
	KeyboardController,
 | 
						|
	AudioController,
 | 
						|
	OtherController,
 | 
						|
	DiskPeripheral,
 | 
						|
	FloppyDiskPeripheral,
 | 
						|
	TapePeripheral,
 | 
						|
	ModemPeripheral,
 | 
						|
	MonitorPeripheral,
 | 
						|
	PrinterPeripheral,
 | 
						|
	PointerPeripheral,
 | 
						|
	KeyboardPeripheral,
 | 
						|
	TerminalPeripheral,
 | 
						|
	LinePeripheral,
 | 
						|
	NetworkPeripheral,
 | 
						|
#ifdef	_NT_PROM
 | 
						|
	Memory,
 | 
						|
#endif
 | 
						|
	OtherPeripheral,
 | 
						|
 | 
						|
	/* new stuff for IP30 */
 | 
						|
	/* added without moving anything */
 | 
						|
	/* except ANONYMOUS. */
 | 
						|
 | 
						|
	XTalkAdapter,
 | 
						|
	PCIAdapter,
 | 
						|
	GIOAdapter,
 | 
						|
	TPUAdapter,
 | 
						|
 | 
						|
	Anonymous
 | 
						|
} CONFIGTYPE;
 | 
						|
 | 
						|
typedef enum {
 | 
						|
	Failed = 1,
 | 
						|
	ReadOnly = 2,
 | 
						|
	Removable = 4,
 | 
						|
	ConsoleIn = 8,
 | 
						|
	ConsoleOut = 16,
 | 
						|
	Input = 32,
 | 
						|
	Output = 64
 | 
						|
} IDENTIFIERFLAG;
 | 
						|
 | 
						|
#ifndef NULL			/* for GetChild(NULL); */
 | 
						|
#define NULL	0
 | 
						|
#endif
 | 
						|
 | 
						|
union key_u {
 | 
						|
	struct {
 | 
						|
#ifdef	_MIPSEB
 | 
						|
		unsigned char  c_bsize;		/* block size in lines */
 | 
						|
		unsigned char  c_lsize;		/* line size in bytes/tag */
 | 
						|
		unsigned short c_size;		/* cache size in 4K pages */
 | 
						|
#else	/* _MIPSEL */
 | 
						|
		unsigned short c_size;		/* cache size in 4K pages */
 | 
						|
		unsigned char  c_lsize;		/* line size in bytes/tag */
 | 
						|
		unsigned char  c_bsize;		/* block size in lines */
 | 
						|
#endif	/* _MIPSEL */
 | 
						|
	} cache;
 | 
						|
	ULONG FullKey;
 | 
						|
};
 | 
						|
 | 
						|
#if _MIPS_SIM == _MIPS_SIM_ABI64
 | 
						|
#define SGI_ARCS_VERS	64			/* sgi 64-bit version */
 | 
						|
#define SGI_ARCS_REV	0			/* rev .00 */
 | 
						|
#else
 | 
						|
#define SGI_ARCS_VERS	1			/* first version */
 | 
						|
#define SGI_ARCS_REV	10			/* rev .10, 3/04/92 */
 | 
						|
#endif
 | 
						|
 | 
						|
typedef struct {
 | 
						|
	CONFIGCLASS	Class;
 | 
						|
	CONFIGTYPE	Type;
 | 
						|
	IDENTIFIERFLAG	Flags;
 | 
						|
	USHORT		Version;
 | 
						|
	USHORT		Revision;
 | 
						|
	ULONG		Key;
 | 
						|
	ULONG		AffinityMask;
 | 
						|
	ULONG		ConfigurationDataSize;
 | 
						|
	ULONG		IdentifierLength;
 | 
						|
	char		*Identifier;
 | 
						|
} COMPONENT;
 | 
						|
 | 
						|
/* internal structure that holds pathname parsing data */
 | 
						|
struct cfgdata {
 | 
						|
	char *name;			/* full name */
 | 
						|
	int minlen;			/* minimum length to match */
 | 
						|
	CONFIGTYPE type;		/* type of token */
 | 
						|
};
 | 
						|
 | 
						|
/* System ID */
 | 
						|
typedef struct {
 | 
						|
	CHAR VendorId[8];
 | 
						|
	CHAR ProductId[8];
 | 
						|
} SYSTEMID;
 | 
						|
 | 
						|
/* memory query functions */
 | 
						|
typedef enum memorytype {
 | 
						|
	ExceptionBlock,
 | 
						|
	SPBPage,			/* ARCS == SystemParameterBlock */
 | 
						|
#ifndef _NT_PROM
 | 
						|
	FreeContiguous,
 | 
						|
	FreeMemory,
 | 
						|
	BadMemory,
 | 
						|
	LoadedProgram,
 | 
						|
	FirmwareTemporary,
 | 
						|
	FirmwarePermanent
 | 
						|
#else	/* _NT_PROM */
 | 
						|
	FreeMemory,
 | 
						|
	BadMemory,
 | 
						|
	LoadedProgram,
 | 
						|
	FirmwareTemporary,
 | 
						|
	FirmwarePermanent,
 | 
						|
	FreeContiguous
 | 
						|
#endif	/* _NT_PROM */
 | 
						|
} MEMORYTYPE;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
	MEMORYTYPE	Type;
 | 
						|
	LONG		BasePage;
 | 
						|
	LONG		PageCount;
 | 
						|
} MEMORYDESCRIPTOR;
 | 
						|
 | 
						|
#endif /* _ASM_ARC_HINV_H */
 |