2005-04-16 15:20:36 -07:00
/*
* 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 ) 1995 , 1996 , 2003 by Ralf Baechle
* Copyright ( C ) 1995 , 1996 Andreas Busse
* Copyright ( C ) 1995 , 1996 Stoned Elipot
* Copyright ( C ) 1995 , 1996 Paul M . Antoine .
2009-07-02 23:27:12 +08:00
* Copyright ( C ) 2009 Zhang Le
2005-04-16 15:20:36 -07:00
*/
# ifndef _ASM_BOOTINFO_H
# define _ASM_BOOTINFO_H
# include <linux/types.h>
# include <asm/setup.h>
/*
2007-10-11 23:46:08 +01:00
* The MACH_ IDs are sort of equivalent to PCI product IDs . As such the
* numbers do not necessarily reflect technical relations or similarities
* between systems .
2005-04-16 15:20:36 -07:00
*/
/*
* Valid machtype values for group unknown
*/
# define MACH_UNKNOWN 0 /* whatever... */
/*
* Valid machtype for group DEC
*/
# define MACH_DSUNKNOWN 0
# define MACH_DS23100 1 /* DECstation 2100 or 3100 */
# define MACH_DS5100 2 /* DECsystem 5100 */
# define MACH_DS5000_200 3 /* DECstation 5000/200 */
# define MACH_DS5000_1XX 4 /* DECstation 5000/120, 125, 133, 150 */
# define MACH_DS5000_XX 5 /* DECstation 5000/20, 25, 33, 50 */
# define MACH_DS5000_2X0 6 /* DECstation 5000/240, 260 */
# define MACH_DS5400 7 /* DECsystem 5400 */
# define MACH_DS5500 8 /* DECsystem 5500 */
# define MACH_DS5800 9 /* DECsystem 5800 */
# define MACH_DS5900 10 /* DECsystem 5900 */
2007-06-14 15:55:31 -06:00
/*
* Valid machtype for group PMC - MSP
*/
2013-01-22 12:59:30 +01:00
# define MACH_MSP4200_EVAL 0 /* PMC-Sierra MSP4200 Evaluation */
# define MACH_MSP4200_GW 1 /* PMC-Sierra MSP4200 Gateway demo */
# define MACH_MSP4200_FPGA 2 /* PMC-Sierra MSP4200 Emulation */
# define MACH_MSP7120_EVAL 3 /* PMC-Sierra MSP7120 Evaluation */
# define MACH_MSP7120_GW 4 /* PMC-Sierra MSP7120 Residential GW */
# define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */
# define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */
2007-06-14 15:55:31 -06:00
2008-07-16 16:12:25 +01:00
/*
* Valid machtype for group Mikrotik
*/
2013-01-22 12:59:30 +01:00
# define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */
# define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */
2008-07-16 16:12:25 +01:00
2009-07-02 23:27:12 +08:00
/*
* Valid machtype for Loongson family
*/
2014-03-21 18:44:01 +08:00
enum loongson_machine_type {
MACH_LOONGSON_UNKNOWN ,
MACH_LEMOTE_FL2E ,
MACH_LEMOTE_FL2F ,
MACH_LEMOTE_ML2F7 ,
MACH_LEMOTE_YL2F89 ,
MACH_DEXXON_GDIUM2F10 ,
MACH_LEMOTE_NAS ,
MACH_LEMOTE_LL2F ,
2014-11-04 14:13:27 +08:00
MACH_LOONGSON_GENERIC ,
2014-03-21 18:44:01 +08:00
MACH_LOONGSON_END
} ;
2009-07-02 23:27:12 +08:00
2010-07-17 11:07:51 +00:00
/*
* Valid machtype for group INGENIC
*/
# define MACH_INGENIC_JZ4730 0 /* JZ4730 SOC */
# define MACH_INGENIC_JZ4740 1 /* JZ4740 SOC */
2008-01-04 23:31:07 +01:00
extern char * system_type ;
2005-04-16 15:20:36 -07:00
const char * get_system_type ( void ) ;
extern unsigned long mips_machtype ;
# define BOOT_MEM_MAP_MAX 32
# define BOOT_MEM_RAM 1
# define BOOT_MEM_ROM_DATA 2
# define BOOT_MEM_RESERVED 3
2011-11-22 14:38:03 +00:00
# define BOOT_MEM_INIT_RAM 4
2005-04-16 15:20:36 -07:00
/*
* A memory map that ' s built upon what was determined
* or specified on the command line .
*/
struct boot_mem_map {
int nr_map ;
struct boot_mem_map_entry {
2014-11-22 00:22:09 +01:00
phys_addr_t addr ; /* start of memory segment */
phys_addr_t size ; /* size of memory segment */
2005-04-16 15:20:36 -07:00
long type ; /* type of memory segment */
} map [ BOOT_MEM_MAP_MAX ] ;
} ;
extern struct boot_mem_map boot_mem_map ;
2014-11-22 00:22:09 +01:00
extern void add_memory_region ( phys_addr_t start , phys_addr_t size , long type ) ;
extern void detect_memory_region ( phys_addr_t start , phys_addr_t sz_min , phys_addr_t sz_max ) ;
2005-04-16 15:20:36 -07:00
extern void prom_init ( void ) ;
2006-12-30 00:43:59 +09:00
extern void prom_free_prom_memory ( void ) ;
extern void free_init_pages ( const char * what ,
unsigned long begin , unsigned long end ) ;
2005-04-16 15:20:36 -07:00
2014-01-15 14:06:03 +00:00
extern void ( * free_init_pages_eva ) ( void * begin , void * end ) ;
2005-04-16 15:20:36 -07:00
/*
* Initial kernel command line , usually setup by prom_init ( )
*/
2009-10-13 23:43:24 +03:00
extern char arcs_cmdline [ COMMAND_LINE_SIZE ] ;
2005-04-16 15:20:36 -07:00
/*
2007-05-09 07:14:03 +02:00
* Registers a0 , a1 , a3 and a4 as passed to the kernel entry by firmware
2005-04-16 15:20:36 -07:00
*/
extern unsigned long fw_arg0 , fw_arg1 , fw_arg2 , fw_arg3 ;
2006-06-18 01:32:22 +01:00
/*
* Platform memory detection hook called by setup_arch
*/
extern void plat_mem_setup ( void ) ;
2010-10-01 13:27:33 -07:00
# ifdef CONFIG_SWIOTLB
/*
* Optional platform hook to call swiotlb_setup ( ) .
*/
extern void plat_swiotlb_setup ( void ) ;
# else
static inline void plat_swiotlb_setup ( void ) { }
# endif /* CONFIG_SWIOTLB */
2005-04-16 15:20:36 -07:00
# endif /* _ASM_BOOTINFO_H */