1
2
3
4
5
6
7
8#ifndef __SPARC64_OPLIB_H
9#define __SPARC64_OPLIB_H
10
11#include <asm/openprom.h>
12
13
14extern char prom_version[];
15
16
17
18
19extern phandle prom_root_node;
20
21
22extern int prom_stdout;
23
24
25
26
27extern phandle prom_chosen_node;
28
29
30extern const char prom_peer_name[];
31extern const char prom_compatible_name[];
32extern const char prom_root_compatible[];
33extern const char prom_cpu_compatible[];
34extern const char prom_finddev_name[];
35extern const char prom_chosen_path[];
36extern const char prom_cpu_path[];
37extern const char prom_getprop_name[];
38extern const char prom_mmu_name[];
39extern const char prom_callmethod_name[];
40extern const char prom_translate_name[];
41extern const char prom_map_name[];
42extern const char prom_unmap_name[];
43extern int prom_mmu_ihandle_cache;
44extern unsigned int prom_boot_mapped_pc;
45extern unsigned int prom_boot_mapping_mode;
46extern unsigned long prom_boot_mapping_phys_high, prom_boot_mapping_phys_low;
47
48struct linux_mlist_p1275 {
49 struct linux_mlist_p1275 *theres_more;
50 unsigned long start_adr;
51 unsigned long num_bytes;
52};
53
54struct linux_mem_p1275 {
55 struct linux_mlist_p1275 **p1275_totphys;
56 struct linux_mlist_p1275 **p1275_prommap;
57 struct linux_mlist_p1275 **p1275_available;
58};
59
60
61
62
63
64
65void prom_init(void *cif_handler);
66void prom_init_report(void);
67
68
69char *prom_getbootargs(void);
70
71
72
73
74void prom_reboot(const char *boot_command);
75
76
77void prom_feval(const char *forth_string);
78
79
80
81
82void prom_cmdline(void);
83
84
85
86
87void prom_halt(void) __attribute__ ((noreturn));
88
89
90void prom_halt_power_off(void) __attribute__ ((noreturn));
91
92
93
94
95
96unsigned char prom_get_idprom(char *idp_buffer, int idpbuf_size);
97
98
99void prom_console_write_buf(const char *buf, int len);
100
101
102__printf(1, 2) void prom_printf(const char *fmt, ...);
103void prom_write(const char *buf, unsigned int len);
104
105
106#ifdef CONFIG_SMP
107
108
109
110void prom_startcpu(int cpunode, unsigned long pc, unsigned long arg);
111
112
113
114
115void prom_startcpu_cpuid(int cpuid, unsigned long pc, unsigned long arg);
116
117
118void prom_stopcpu_cpuid(int cpuid);
119
120
121void prom_stopself(void);
122
123
124void prom_idleself(void);
125
126
127void prom_resumecpu(int cpunode);
128#endif
129
130
131
132
133void prom_sleepself(void);
134
135
136int prom_sleepsystem(void);
137
138
139int prom_wakeupsystem(void);
140
141
142
143
144int prom_getunumber(int syndrome_code,
145 unsigned long phys_addr,
146 char *buf, int buflen);
147
148
149int prom_retain(const char *name, unsigned long size,
150 unsigned long align, unsigned long *paddr);
151
152
153long prom_itlb_load(unsigned long index,
154 unsigned long tte_data,
155 unsigned long vaddr);
156
157long prom_dtlb_load(unsigned long index,
158 unsigned long tte_data,
159 unsigned long vaddr);
160
161
162
163
164#define PROM_MAP_WRITE 0x0001
165#define PROM_MAP_READ 0x0002
166#define PROM_MAP_EXEC 0x0004
167#define PROM_MAP_LOCKED 0x0010
168#define PROM_MAP_CACHED 0x0020
169#define PROM_MAP_SE 0x0040
170#define PROM_MAP_GLOB 0x0080
171#define PROM_MAP_IE 0x0100
172#define PROM_MAP_DEFAULT (PROM_MAP_WRITE | PROM_MAP_READ | PROM_MAP_EXEC | PROM_MAP_CACHED)
173
174int prom_map(int mode, unsigned long size,
175 unsigned long vaddr, unsigned long paddr);
176void prom_unmap(unsigned long size, unsigned long vaddr);
177
178
179
180
181
182phandle prom_getchild(phandle parent_node);
183
184
185
186
187phandle prom_getsibling(phandle node);
188
189
190
191
192int prom_getproplen(phandle thisnode, const char *property);
193
194
195
196
197int prom_getproperty(phandle thisnode, const char *property,
198 char *prop_buffer, int propbuf_size);
199
200
201int prom_getint(phandle node, const char *property);
202
203
204int prom_getintdefault(phandle node, const char *property, int defval);
205
206
207int prom_getbool(phandle node, const char *prop);
208
209
210void prom_getstring(phandle node, const char *prop, char *buf,
211 int bufsize);
212
213
214int prom_nodematch(phandle thisnode, const char *name);
215
216
217
218
219phandle prom_searchsiblings(phandle node_start, const char *name);
220
221
222
223
224char *prom_firstprop(phandle node, char *buffer);
225
226
227
228
229char *prom_nextprop(phandle node, const char *prev_property, char *buf);
230
231
232int prom_node_has_property(phandle node, const char *property);
233
234
235phandle prom_finddevice(const char *name);
236
237
238
239
240int prom_setprop(phandle node, const char *prop_name, char *prop_value,
241 int value_size);
242
243phandle prom_inst2pkg(int);
244void prom_sun4v_guest_soft_state(void);
245
246int prom_ihandle2path(int handle, char *buffer, int bufsize);
247
248
249void p1275_cmd_direct(unsigned long *);
250
251#endif
252