diff options
Diffstat (limited to 'arch/mips/include/asm/fw/fw.h')
| -rw-r--r-- | arch/mips/include/asm/fw/fw.h | 47 | 
1 files changed, 47 insertions, 0 deletions
diff --git a/arch/mips/include/asm/fw/fw.h b/arch/mips/include/asm/fw/fw.h new file mode 100644 index 00000000000..d6c50a7e9ed --- /dev/null +++ b/arch/mips/include/asm/fw/fw.h @@ -0,0 +1,47 @@ +/* + * 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 (C) 2012 MIPS Technologies, Inc. + */ +#ifndef __ASM_FW_H_ +#define __ASM_FW_H_ + +#include <asm/bootinfo.h>	/* For cleaner code... */ + +enum fw_memtypes { +	fw_dontuse, +	fw_code, +	fw_free, +}; + +typedef struct { +	unsigned long base;	/* Within KSEG0 */ +	unsigned int size;	/* bytes */ +	enum fw_memtypes type;	/* fw_memtypes */ +} fw_memblock_t; + +/* Maximum number of memory block descriptors. */ +#define FW_MAX_MEMBLOCKS	32 + +extern int fw_argc; +extern int *_fw_argv; +extern int *_fw_envp; + +/* + * Most firmware like YAMON, PMON, etc. pass arguments and environment + * variables as 32-bit pointers. These take care of sign extension. + */ +#define fw_argv(index)		((char *)(long)_fw_argv[(index)]) +#define fw_envp(index)		((char *)(long)_fw_envp[(index)]) + +extern void fw_init_cmdline(void); +extern char *fw_getcmdline(void); +extern fw_memblock_t *fw_getmdesc(void); +extern void fw_meminit(void); +extern char *fw_getenv(char *name); +extern unsigned long fw_getenvl(char *name); +extern void fw_init_early_console(char port); + +#endif /* __ASM_FW_H_ */  |