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_JZ4770,
79 MACH_INGENIC_JZ4775,
80 MACH_INGENIC_JZ4780,
81 MACH_INGENIC_X1000,
82 MACH_INGENIC_X1000E,
83 MACH_INGENIC_X1830,
84 MACH_INGENIC_X2000,
85 MACH_INGENIC_X2000E,
86};
87
88extern char *system_type;
89const char *get_system_type(void);
90
91extern unsigned long mips_machtype;
92
93extern void detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_addr_t sz_max);
94
95extern void prom_init(void);
96extern void prom_free_prom_memory(void);
97extern void prom_cleanup(void);
98
99extern void free_init_pages(const char *what,
100 unsigned long begin, unsigned long end);
101
102extern void (*free_init_pages_eva)(void *begin, void *end);
103
104
105
106
107extern char arcs_cmdline[COMMAND_LINE_SIZE];
108
109
110
111
112extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
113
114#ifdef CONFIG_USE_OF
115#include <linux/libfdt.h>
116#include <linux/of_fdt.h>
117
118extern char __appended_dtb[];
119
120static inline void *get_fdt(void)
121{
122 if (IS_ENABLED(CONFIG_MIPS_RAW_APPENDED_DTB) ||
123 IS_ENABLED(CONFIG_MIPS_ELF_APPENDED_DTB))
124 if (fdt_magic(&__appended_dtb) == FDT_MAGIC)
125 return &__appended_dtb;
126
127 if (fw_arg0 == -2)
128 return (void *)fw_arg1;
129
130 if (IS_ENABLED(CONFIG_BUILTIN_DTB))
131 if (&__dtb_start != &__dtb_end)
132 return &__dtb_start;
133
134 return NULL;
135}
136#endif
137
138
139
140
141extern void plat_mem_setup(void);
142
143#ifdef CONFIG_SWIOTLB
144
145
146
147extern void plat_swiotlb_setup(void);
148
149#else
150
151static inline void plat_swiotlb_setup(void) {}
152
153#endif
154
155#ifdef CONFIG_USE_OF
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170extern void *plat_get_fdt(void);
171
172#ifdef CONFIG_RELOCATABLE
173
174
175
176
177
178
179
180
181void plat_fdt_relocated(void *new_location);
182
183#endif
184#endif
185
186#endif
187