1
2
3
4
5
6
7
8
9
10
11
12#ifndef _ASM_BOOTINFO_H
13#define _ASM_BOOTINFO_H
14
15#include <linux/types.h>
16#include <asm/setup.h>
17
18
19
20
21
22
23
24
25
26
27#define MACH_UNKNOWN 0
28
29
30
31
32#define MACH_DSUNKNOWN 0
33#define MACH_DS23100 1
34#define MACH_DS5100 2
35#define MACH_DS5000_200 3
36#define MACH_DS5000_1XX 4
37#define MACH_DS5000_XX 5
38#define MACH_DS5000_2X0 6
39#define MACH_DS5400 7
40#define MACH_DS5500 8
41#define MACH_DS5800 9
42#define MACH_DS5900 10
43
44
45
46
47#define MACH_MIKROTIK_RB532 0
48#define MACH_MIKROTIK_RB532A 1
49
50
51
52
53enum loongson2ef_machine_type {
54 MACH_LOONGSON_UNKNOWN,
55 MACH_LEMOTE_FL2E,
56 MACH_LEMOTE_FL2F,
57 MACH_LEMOTE_ML2F7,
58 MACH_LEMOTE_YL2F89,
59 MACH_DEXXON_GDIUM2F10,
60 MACH_LEMOTE_NAS,
61 MACH_LEMOTE_LL2F,
62 MACH_LOONGSON_END
63};
64
65
66
67
68enum ingenic_machine_type {
69 MACH_INGENIC_UNKNOWN,
70 MACH_INGENIC_JZ4720,
71 MACH_INGENIC_JZ4725,
72 MACH_INGENIC_JZ4725B,
73 MACH_INGENIC_JZ4730,
74 MACH_INGENIC_JZ4740,
75 MACH_INGENIC_JZ4750,
76 MACH_INGENIC_JZ4755,
77 MACH_INGENIC_JZ4760,
78 MACH_INGENIC_JZ4760B,
79 MACH_INGENIC_JZ4770,
80 MACH_INGENIC_JZ4775,
81 MACH_INGENIC_JZ4780,
82 MACH_INGENIC_X1000,
83 MACH_INGENIC_X1000E,
84 MACH_INGENIC_X1830,
85 MACH_INGENIC_X2000,
86 MACH_INGENIC_X2000E,
87 MACH_INGENIC_X2000H,
88 MACH_INGENIC_X2100,
89};
90
91extern char *system_type;
92const char *get_system_type(void);
93
94extern unsigned long mips_machtype;
95
96extern void detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_addr_t sz_max);
97
98extern void prom_init(void);
99extern void prom_free_prom_memory(void);
100extern void prom_cleanup(void);
101
102extern void free_init_pages(const char *what,
103 unsigned long begin, unsigned long end);
104
105extern void (*free_init_pages_eva)(void *begin, void *end);
106
107
108
109
110extern char arcs_cmdline[COMMAND_LINE_SIZE];
111
112
113
114
115extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
116
117#ifdef CONFIG_USE_OF
118#include <linux/libfdt.h>
119#include <linux/of_fdt.h>
120
121extern char __appended_dtb[];
122
123static inline void *get_fdt(void)
124{
125 if (IS_ENABLED(CONFIG_MIPS_RAW_APPENDED_DTB) ||
126 IS_ENABLED(CONFIG_MIPS_ELF_APPENDED_DTB))
127 if (fdt_magic(&__appended_dtb) == FDT_MAGIC)
128 return &__appended_dtb;
129
130 if (fw_arg0 == -2)
131 return (void *)fw_arg1;
132
133 if (IS_ENABLED(CONFIG_BUILTIN_DTB))
134 if (&__dtb_start != &__dtb_end)
135 return &__dtb_start;
136
137 return NULL;
138}
139#endif
140
141
142
143
144extern void plat_mem_setup(void);
145
146#ifdef CONFIG_SWIOTLB
147
148
149
150extern void plat_swiotlb_setup(void);
151
152#else
153
154static inline void plat_swiotlb_setup(void) {}
155
156#endif
157
158#ifdef CONFIG_USE_OF
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173extern void *plat_get_fdt(void);
174
175#ifdef CONFIG_RELOCATABLE
176
177
178
179
180
181
182
183
184void plat_fdt_relocated(void *new_location);
185
186#endif
187#endif
188
189#endif
190