4
#include <asm/openprom.h>
8
* sun4p is a fake architecture, representing IIep based system.
9
* Krups has no architecture in the PROM tree.
10
* CP-1200 has "sun4s" which is obviously a mistake [don't ask, huh].
12
enum arch { sun4, sun4c, sun4m, sun4d, sun4e, sun4u, sun4p, sununknown };
14
extern struct linux_romvec *romvec;
16
void prom_init(struct linux_romvec *rp, void *cifh, void *cifsp);
18
void prom_cmdline(void);
19
int prom_getchild (int);
20
int prom_getsibling (int);
21
int prom_getproplen (int, char *);
22
int prom_getproperty (int, char *, char *, int);
23
int prom_getint (int, char *);
24
int prom_getintdefault (int, char *, int);
25
int prom_finddevice (char *);
26
void prom_getstring (int, char *, char *, int);
27
void prom_chain (unsigned long, int, unsigned long, char *, int);
28
void prom_reboot (char *command);
29
int prom_searchsiblings (int, char *);
30
int prom_setprop (int, char *, char *, int);
31
void prom_adjust_regs (struct linux_prom_registers *, int,
32
struct linux_prom_ranges *, int);
33
void prom_adjust_ranges (struct linux_prom_ranges *, int,
34
struct linux_prom_ranges *, int);
36
void prom_apply_obio_ranges (struct linux_prom_registers *, int);
37
void prom_ranges_init(void);
38
void prom_puts (char *, int);
39
void prom_putchar (char);
40
char prom_getchar (void);
41
int prom_nbputchar (char);
42
int prom_nbgetchar (void);
43
void prom_printf (char *, ...);
44
#define printf prom_printf
45
int p1275_cmd (char *, unsigned, ...);
46
#define P1275_ARG_64B(x) (1 << ((x) + 8))
48
/* Map/Unmap client program address ranges. First the format of
49
* the mapping mode argument.
51
#define PROM_MAP_WRITE 0x0001 /* Writable */
52
#define PROM_MAP_READ 0x0002 /* Readable - sw */
53
#define PROM_MAP_EXEC 0x0004 /* Executable - sw */
54
#define PROM_MAP_LOCKED 0x0010 /* Locked, use i/dtlb load calls for this instead */
55
#define PROM_MAP_CACHED 0x0020 /* Cacheable in both L1 and L2 caches */
56
#define PROM_MAP_SE 0x0040 /* Side-Effects */
57
#define PROM_MAP_GLOB 0x0080 /* Global */
58
#define PROM_MAP_IE 0x0100 /* Invert-Endianness */
59
#define PROM_MAP_DEFAULT (PROM_MAP_WRITE | PROM_MAP_READ | PROM_MAP_EXEC | PROM_MAP_CACHED)
61
int prom_map(int mode, unsigned long long size,
62
unsigned long long vaddr,
63
unsigned long long paddr);
64
void prom_unmap(unsigned long long size, unsigned long long vaddr);
67
enum prom_major_version { PROM_V0, PROM_V2, PROM_V3, PROM_P1275 };
68
extern enum prom_major_version prom_vers;
69
extern unsigned int prom_rev, prom_prev;
70
extern int prom_root_node;
71
extern int prom_stdin, prom_stdout;
72
extern int prom_chosen;
73
extern struct linux_nodeops *prom_nodeops;