Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / include / asm-mips / bootinfo.h
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file COPYING in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 1995, 1996, 2003 by Ralf Baechle
7  * Copyright (C) 1995, 1996 Andreas Busse
8  * Copyright (C) 1995, 1996 Stoned Elipot
9  * Copyright (C) 1995, 1996 Paul M. Antoine.
10  */
11 #ifndef _ASM_BOOTINFO_H
12 #define _ASM_BOOTINFO_H
13
14 #include <linux/types.h>
15 #include <asm/setup.h>
16
17 /*
18  * The MACH_ IDs are sort of equivalent to PCI product IDs.  As such the
19  * numbers do not necessarily reflect technical relations or similarities
20  * between systems.
21  */
22
23 /*
24  * Valid machtype values for group unknown
25  */
26 #define  MACH_UNKNOWN           0       /* whatever...                  */
27
28 /*
29  * Valid machtype for group DEC
30  */
31 #define  MACH_DSUNKNOWN         0
32 #define  MACH_DS23100           1       /* DECstation 2100 or 3100      */
33 #define  MACH_DS5100            2       /* DECsystem 5100               */
34 #define  MACH_DS5000_200        3       /* DECstation 5000/200          */
35 #define  MACH_DS5000_1XX        4       /* DECstation 5000/120, 125, 133, 150 */
36 #define  MACH_DS5000_XX         5       /* DECstation 5000/20, 25, 33, 50 */
37 #define  MACH_DS5000_2X0        6       /* DECstation 5000/240, 260     */
38 #define  MACH_DS5400            7       /* DECsystem 5400               */
39 #define  MACH_DS5500            8       /* DECsystem 5500               */
40 #define  MACH_DS5800            9       /* DECsystem 5800               */
41 #define  MACH_DS5900            10      /* DECsystem 5900               */
42
43 /*
44  * Valid machtype for group PMC-MSP
45  */
46 #define MACH_MSP4200_EVAL       0       /* PMC-Sierra MSP4200 Evaluation */
47 #define MACH_MSP4200_GW         1       /* PMC-Sierra MSP4200 Gateway demo */
48 #define MACH_MSP4200_FPGA       2       /* PMC-Sierra MSP4200 Emulation */
49 #define MACH_MSP7120_EVAL       3       /* PMC-Sierra MSP7120 Evaluation */
50 #define MACH_MSP7120_GW         4       /* PMC-Sierra MSP7120 Residential GW */
51 #define MACH_MSP7120_FPGA       5       /* PMC-Sierra MSP7120 Emulation */
52 #define MACH_MSP_OTHER        255       /* PMC-Sierra unknown board type */
53
54 /*
55  * Valid machtype for group Mikrotik
56  */
57 #define MACH_MIKROTIK_RB532     0       /* Mikrotik RouterBoard 532     */
58 #define MACH_MIKROTIK_RB532A    1       /* Mikrotik RouterBoard 532A    */
59
60 #define CL_SIZE                 COMMAND_LINE_SIZE
61
62 extern char *system_type;
63 const char *get_system_type(void);
64
65 extern unsigned long mips_machtype;
66
67 #define BOOT_MEM_MAP_MAX        32
68 #define BOOT_MEM_RAM            1
69 #define BOOT_MEM_ROM_DATA       2
70 #define BOOT_MEM_RESERVED       3
71
72 /*
73  * A memory map that's built upon what was determined
74  * or specified on the command line.
75  */
76 struct boot_mem_map {
77         int nr_map;
78         struct boot_mem_map_entry {
79                 phys_t addr;    /* start of memory segment */
80                 phys_t size;    /* size of memory segment */
81                 long type;              /* type of memory segment */
82         } map[BOOT_MEM_MAP_MAX];
83 };
84
85 extern struct boot_mem_map boot_mem_map;
86
87 extern void add_memory_region(phys_t start, phys_t size, long type);
88
89 extern void prom_init(void);
90 extern void prom_free_prom_memory(void);
91
92 extern void free_init_pages(const char *what,
93                             unsigned long begin, unsigned long end);
94
95 /*
96  * Initial kernel command line, usually setup by prom_init()
97  */
98 extern char arcs_cmdline[CL_SIZE];
99
100 /*
101  * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware
102  */
103 extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
104
105 /*
106  * Platform memory detection hook called by setup_arch
107  */
108 extern void plat_mem_setup(void);
109
110 #endif /* _ASM_BOOTINFO_H */