diff options
Diffstat (limited to 'target/linux/realtek/files/arch/rlx/include/asm/fw')
4 files changed, 463 insertions, 0 deletions
diff --git a/target/linux/realtek/files/arch/rlx/include/asm/fw/arc/hinv.h b/target/linux/realtek/files/arch/rlx/include/asm/fw/arc/hinv.h new file mode 100644 index 000000000..e6ff4add0 --- /dev/null +++ b/target/linux/realtek/files/arch/rlx/include/asm/fw/arc/hinv.h @@ -0,0 +1,175 @@ +/* + * 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 component { +	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 systemid { +	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 memorydescriptor { +	MEMORYTYPE	Type; +	LONG		BasePage; +	LONG		PageCount; +} MEMORYDESCRIPTOR; + +#endif /* _ASM_ARC_HINV_H */ diff --git a/target/linux/realtek/files/arch/rlx/include/asm/fw/arc/types.h b/target/linux/realtek/files/arch/rlx/include/asm/fw/arc/types.h new file mode 100644 index 000000000..b9adcd6f0 --- /dev/null +++ b/target/linux/realtek/files/arch/rlx/include/asm/fw/arc/types.h @@ -0,0 +1,86 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License.  See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright 1999 Ralf Baechle (ralf@gnu.org) + * Copyright 1999 Silicon Graphics, Inc. + */ +#ifndef _ASM_ARC_TYPES_H +#define _ASM_ARC_TYPES_H + + +#ifdef CONFIG_ARC32 + +typedef char		CHAR; +typedef short		SHORT; +typedef long		LARGE_INTEGER __attribute__ ((__mode__ (__DI__))); +typedef	long		LONG __attribute__ ((__mode__ (__SI__))); +typedef unsigned char	UCHAR; +typedef unsigned short	USHORT; +typedef unsigned long	ULONG __attribute__ ((__mode__ (__SI__))); +typedef void		VOID; + +/* The pointer types.  Note that we're using a 64-bit compiler but all +   pointer in the ARC structures are only 32-bit, so we need some disgusting +   workarounds.  Keep your vomit bag handy.  */ +typedef LONG		_PCHAR; +typedef LONG		_PSHORT; +typedef LONG		_PLARGE_INTEGER; +typedef	LONG		_PLONG; +typedef LONG		_PUCHAR; +typedef LONG		_PUSHORT; +typedef LONG		_PULONG; +typedef LONG		_PVOID; + +#endif /* CONFIG_ARC32 */ + +#ifdef CONFIG_ARC64 + +typedef char		CHAR; +typedef short		SHORT; +typedef long		LARGE_INTEGER __attribute__ ((__mode__ (__DI__))); +typedef	long		LONG __attribute__ ((__mode__ (__DI__))); +typedef unsigned char	UCHAR; +typedef unsigned short	USHORT; +typedef unsigned long	ULONG __attribute__ ((__mode__ (__DI__))); +typedef void		VOID; + +/* The pointer types.  We're 64-bit and the firmware is also 64-bit, so +   live is sane ...  */ +typedef CHAR		*_PCHAR; +typedef SHORT		*_PSHORT; +typedef LARGE_INTEGER	*_PLARGE_INTEGER; +typedef	LONG		*_PLONG; +typedef UCHAR		*_PUCHAR; +typedef USHORT		*_PUSHORT; +typedef ULONG		*_PULONG; +typedef VOID		*_PVOID; + +#endif /* CONFIG_ARC64  */ + +typedef CHAR		*PCHAR; +typedef SHORT		*PSHORT; +typedef LARGE_INTEGER	*PLARGE_INTEGER; +typedef	LONG		*PLONG; +typedef UCHAR		*PUCHAR; +typedef USHORT		*PUSHORT; +typedef ULONG		*PULONG; +typedef VOID		*PVOID; + +/* + * Return type of ArcGetDisplayStatus() + */ +typedef struct { +	USHORT	CursorXPosition; +	USHORT	CursorYPosition; +	USHORT	CursorMaxXPosition; +	USHORT	CursorMaxYPosition; +	USHORT	ForegroundColor; +	USHORT	BackgroundColor; +	UCHAR	HighIntensity; +	UCHAR	Underscored; +	UCHAR	ReverseVideo; +} DISPLAY_STATUS; + +#endif /* _ASM_ARC_TYPES_H */ diff --git a/target/linux/realtek/files/arch/rlx/include/asm/fw/cfe/cfe_api.h b/target/linux/realtek/files/arch/rlx/include/asm/fw/cfe/cfe_api.h new file mode 100644 index 000000000..0995575db --- /dev/null +++ b/target/linux/realtek/files/arch/rlx/include/asm/fw/cfe/cfe_api.h @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2000, 2001, 2002 Broadcom Corporation + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. + */ +/* + * Broadcom Common Firmware Environment (CFE) + * + * This file contains declarations for doing callbacks to + * cfe from an application.  It should be the only header + * needed by the application to use this library + * + * Authors:  Mitch Lichtenberg, Chris Demetriou + */ +#ifndef CFE_API_H +#define CFE_API_H + +#include <linux/types.h> +#include <linux/string.h> + +typedef long intptr_t; + + +/* + * Constants + */ + +/* Seal indicating CFE's presence, passed to user program. */ +#define CFE_EPTSEAL 0x43464531 + +#define CFE_MI_RESERVED	0	/* memory is reserved, do not use */ +#define CFE_MI_AVAILABLE 1	/* memory is available */ + +#define CFE_FLG_WARMSTART     0x00000001 +#define CFE_FLG_FULL_ARENA    0x00000001 +#define CFE_FLG_ENV_PERMANENT 0x00000001 + +#define CFE_CPU_CMD_START 1 +#define CFE_CPU_CMD_STOP 0 + +#define CFE_STDHANDLE_CONSOLE	0 + +#define CFE_DEV_NETWORK 	1 +#define CFE_DEV_DISK		2 +#define CFE_DEV_FLASH		3 +#define CFE_DEV_SERIAL		4 +#define CFE_DEV_CPU		5 +#define CFE_DEV_NVRAM		6 +#define CFE_DEV_CLOCK           7 +#define CFE_DEV_OTHER		8 +#define CFE_DEV_MASK		0x0F + +#define CFE_CACHE_FLUSH_D	1 +#define CFE_CACHE_INVAL_I	2 +#define CFE_CACHE_INVAL_D	4 +#define CFE_CACHE_INVAL_L2	8 + +#define CFE_FWI_64BIT		0x00000001 +#define CFE_FWI_32BIT		0x00000002 +#define CFE_FWI_RELOC		0x00000004 +#define CFE_FWI_UNCACHED	0x00000008 +#define CFE_FWI_MULTICPU	0x00000010 +#define CFE_FWI_FUNCSIM		0x00000020 +#define CFE_FWI_RTLSIM		0x00000040 + +typedef struct { +	int64_t fwi_version;		/* major, minor, eco version */ +	int64_t fwi_totalmem;		/* total installed mem */ +	int64_t fwi_flags;		/* various flags */ +	int64_t fwi_boardid;		/* board ID */ +	int64_t fwi_bootarea_va;	/* VA of boot area */ +	int64_t fwi_bootarea_pa;	/* PA of boot area */ +	int64_t fwi_bootarea_size;	/* size of boot area */ +} cfe_fwinfo_t; + + +/* + * Defines and prototypes for functions which take no arguments. + */ +int64_t cfe_getticks(void); + +/* + * Defines and prototypes for the rest of the functions. + */ +int cfe_close(int handle); +int cfe_cpu_start(int cpu, void (*fn) (void), long sp, long gp, long a1); +int cfe_cpu_stop(int cpu); +int cfe_enumenv(int idx, char *name, int namelen, char *val, int vallen); +int cfe_enummem(int idx, int flags, uint64_t * start, uint64_t * length, +		uint64_t * type); +int cfe_exit(int warm, int status); +int cfe_flushcache(int flg); +int cfe_getdevinfo(char *name); +int cfe_getenv(char *name, char *dest, int destlen); +int cfe_getfwinfo(cfe_fwinfo_t * info); +int cfe_getstdhandle(int flg); +int cfe_init(uint64_t handle, uint64_t ept); +int cfe_inpstat(int handle); +int cfe_ioctl(int handle, unsigned int ioctlnum, unsigned char *buffer, +	      int length, int *retlen, uint64_t offset); +int cfe_open(char *name); +int cfe_read(int handle, unsigned char *buffer, int length); +int cfe_readblk(int handle, int64_t offset, unsigned char *buffer, +		int length); +int cfe_setenv(char *name, char *val); +int cfe_write(int handle, unsigned char *buffer, int length); +int cfe_writeblk(int handle, int64_t offset, unsigned char *buffer, +		 int length); + +#endif				/* CFE_API_H */ diff --git a/target/linux/realtek/files/arch/rlx/include/asm/fw/cfe/cfe_error.h b/target/linux/realtek/files/arch/rlx/include/asm/fw/cfe/cfe_error.h new file mode 100644 index 000000000..b80374636 --- /dev/null +++ b/target/linux/realtek/files/arch/rlx/include/asm/fw/cfe/cfe_error.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2000, 2001, 2002 Broadcom Corporation + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. + */ + +/* + * Broadcom Common Firmware Environment (CFE) + * + * CFE's global error code list is here. + * + * Author:  Mitch Lichtenberg + */ + +#define CFE_OK			 0 +#define CFE_ERR                 -1	/* generic error */ +#define CFE_ERR_INV_COMMAND	-2 +#define CFE_ERR_EOF		-3 +#define CFE_ERR_IOERR		-4 +#define CFE_ERR_NOMEM		-5 +#define CFE_ERR_DEVNOTFOUND	-6 +#define CFE_ERR_DEVOPEN		-7 +#define CFE_ERR_INV_PARAM	-8 +#define CFE_ERR_ENVNOTFOUND	-9 +#define CFE_ERR_ENVREADONLY	-10 + +#define CFE_ERR_NOTELF		-11 +#define CFE_ERR_NOT32BIT 	-12 +#define CFE_ERR_WRONGENDIAN 	-13 +#define CFE_ERR_BADELFVERS 	-14 +#define CFE_ERR_NOTMIPS 	-15 +#define CFE_ERR_BADELFFMT 	-16 +#define CFE_ERR_BADADDR 	-17 + +#define CFE_ERR_FILENOTFOUND	-18 +#define CFE_ERR_UNSUPPORTED	-19 + +#define CFE_ERR_HOSTUNKNOWN	-20 + +#define CFE_ERR_TIMEOUT		-21 + +#define CFE_ERR_PROTOCOLERR	-22 + +#define CFE_ERR_NETDOWN		-23 +#define CFE_ERR_NONAMESERVER	-24 + +#define CFE_ERR_NOHANDLES	-25 +#define CFE_ERR_ALREADYBOUND	-26 + +#define CFE_ERR_CANNOTSET	-27 +#define CFE_ERR_NOMORE		-28 +#define CFE_ERR_BADFILESYS	-29 +#define CFE_ERR_FSNOTAVAIL	-30 + +#define CFE_ERR_INVBOOTBLOCK	-31 +#define CFE_ERR_WRONGDEVTYPE	-32 +#define CFE_ERR_BBCHECKSUM	-33 +#define CFE_ERR_BOOTPROGCHKSUM	-34 + +#define CFE_ERR_LDRNOTAVAIL	-35 + +#define CFE_ERR_NOTREADY	-36 + +#define CFE_ERR_GETMEM          -37 +#define CFE_ERR_SETMEM          -38 + +#define CFE_ERR_NOTCONN		-39 +#define CFE_ERR_ADDRINUSE	-40  | 
