diff options
-rw-r--r-- | arch/powerpc/boot/of.c | 30 | ||||
-rw-r--r-- | arch/powerpc/boot/of.h | 6 | ||||
-rw-r--r-- | arch/powerpc/boot/ofconsole.c | 8 | ||||
-rw-r--r-- | arch/powerpc/boot/oflib.c | 40 |
4 files changed, 45 insertions, 39 deletions
diff --git a/arch/powerpc/boot/of.c b/arch/powerpc/boot/of.c index 6108aef28f03..385e08b83b7e 100644 --- a/arch/powerpc/boot/of.c +++ b/arch/powerpc/boot/of.c | |||
@@ -63,36 +63,6 @@ static void of_image_hdr(const void *hdr) | |||
63 | } | 63 | } |
64 | } | 64 | } |
65 | 65 | ||
66 | static void *of_vmlinux_alloc(unsigned long size) | ||
67 | { | ||
68 | void *p = malloc(size); | ||
69 | |||
70 | if (!p) | ||
71 | fatal("Can't allocate memory for kernel image!\n\r"); | ||
72 | |||
73 | return p; | ||
74 | } | ||
75 | |||
76 | /* | ||
77 | * OF device tree routines | ||
78 | */ | ||
79 | static void *of_finddevice(const char *name) | ||
80 | { | ||
81 | return (phandle) of_call_prom("finddevice", 1, 1, name); | ||
82 | } | ||
83 | |||
84 | static int of_getprop(const void *phandle, const char *name, void *buf, | ||
85 | const int buflen) | ||
86 | { | ||
87 | return of_call_prom("getprop", 4, 1, phandle, name, buf, buflen); | ||
88 | } | ||
89 | |||
90 | static int of_setprop(const void *phandle, const char *name, const void *buf, | ||
91 | const int buflen) | ||
92 | { | ||
93 | return of_call_prom("setprop", 4, 1, phandle, name, buf, buflen); | ||
94 | } | ||
95 | |||
96 | void platform_init(unsigned long a1, unsigned long a2, void *promptr) | 66 | void platform_init(unsigned long a1, unsigned long a2, void *promptr) |
97 | { | 67 | { |
98 | platform_ops.image_hdr = of_image_hdr; | 68 | platform_ops.image_hdr = of_image_hdr; |
diff --git a/arch/powerpc/boot/of.h b/arch/powerpc/boot/of.h index 169d31106991..e4c68f7391c5 100644 --- a/arch/powerpc/boot/of.h +++ b/arch/powerpc/boot/of.h | |||
@@ -7,7 +7,13 @@ typedef void *ihandle; | |||
7 | void of_init(void *promptr); | 7 | void of_init(void *promptr); |
8 | int of_call_prom(const char *service, int nargs, int nret, ...); | 8 | int of_call_prom(const char *service, int nargs, int nret, ...); |
9 | void *of_claim(unsigned long virt, unsigned long size, unsigned long align); | 9 | void *of_claim(unsigned long virt, unsigned long size, unsigned long align); |
10 | void *of_vmlinux_alloc(unsigned long size); | ||
10 | void of_exit(void); | 11 | void of_exit(void); |
12 | void *of_finddevice(const char *name); | ||
13 | int of_getprop(const void *phandle, const char *name, void *buf, | ||
14 | const int buflen); | ||
15 | int of_setprop(const void *phandle, const char *name, const void *buf, | ||
16 | const int buflen); | ||
11 | 17 | ||
12 | /* Console functions */ | 18 | /* Console functions */ |
13 | void of_console_init(void); | 19 | void of_console_init(void); |
diff --git a/arch/powerpc/boot/ofconsole.c b/arch/powerpc/boot/ofconsole.c index 43c0f36c3326..ce0e02424453 100644 --- a/arch/powerpc/boot/ofconsole.c +++ b/arch/powerpc/boot/ofconsole.c | |||
@@ -24,10 +24,10 @@ static int of_console_open(void) | |||
24 | { | 24 | { |
25 | void *devp; | 25 | void *devp; |
26 | 26 | ||
27 | if (((devp = finddevice("/chosen")) != NULL) | 27 | if (((devp = of_finddevice("/chosen")) != NULL) |
28 | && (getprop(devp, "stdout", &of_stdout_handle, | 28 | && (of_getprop(devp, "stdout", &of_stdout_handle, |
29 | sizeof(of_stdout_handle)) | 29 | sizeof(of_stdout_handle)) |
30 | == sizeof(of_stdout_handle))) | 30 | == sizeof(of_stdout_handle))) |
31 | return 0; | 31 | return 0; |
32 | 32 | ||
33 | return -1; | 33 | return -1; |
diff --git a/arch/powerpc/boot/oflib.c b/arch/powerpc/boot/oflib.c index e9b95d8ae7ff..95b8fd69a403 100644 --- a/arch/powerpc/boot/oflib.c +++ b/arch/powerpc/boot/oflib.c | |||
@@ -110,25 +110,25 @@ static int check_of_version(void) | |||
110 | phandle oprom, chosen; | 110 | phandle oprom, chosen; |
111 | char version[64]; | 111 | char version[64]; |
112 | 112 | ||
113 | oprom = finddevice("/openprom"); | 113 | oprom = of_finddevice("/openprom"); |
114 | if (oprom == (phandle) -1) | 114 | if (oprom == (phandle) -1) |
115 | return 0; | 115 | return 0; |
116 | if (getprop(oprom, "model", version, sizeof(version)) <= 0) | 116 | if (of_getprop(oprom, "model", version, sizeof(version)) <= 0) |
117 | return 0; | 117 | return 0; |
118 | version[sizeof(version)-1] = 0; | 118 | version[sizeof(version)-1] = 0; |
119 | printf("OF version = '%s'\r\n", version); | 119 | printf("OF version = '%s'\r\n", version); |
120 | if (!string_match(version, "Open Firmware, 1.") | 120 | if (!string_match(version, "Open Firmware, 1.") |
121 | && !string_match(version, "FirmWorks,3.")) | 121 | && !string_match(version, "FirmWorks,3.")) |
122 | return 0; | 122 | return 0; |
123 | chosen = finddevice("/chosen"); | 123 | chosen = of_finddevice("/chosen"); |
124 | if (chosen == (phandle) -1) { | 124 | if (chosen == (phandle) -1) { |
125 | chosen = finddevice("/chosen@0"); | 125 | chosen = of_finddevice("/chosen@0"); |
126 | if (chosen == (phandle) -1) { | 126 | if (chosen == (phandle) -1) { |
127 | printf("no chosen\n"); | 127 | printf("no chosen\n"); |
128 | return 0; | 128 | return 0; |
129 | } | 129 | } |
130 | } | 130 | } |
131 | if (getprop(chosen, "mmu", &chosen_mmu, sizeof(chosen_mmu)) <= 0) { | 131 | if (of_getprop(chosen, "mmu", &chosen_mmu, sizeof(chosen_mmu)) <= 0) { |
132 | printf("no mmu\n"); | 132 | printf("no mmu\n"); |
133 | return 0; | 133 | return 0; |
134 | } | 134 | } |
@@ -166,7 +166,37 @@ void *of_claim(unsigned long virt, unsigned long size, unsigned long align) | |||
166 | return (void *) virt; | 166 | return (void *) virt; |
167 | } | 167 | } |
168 | 168 | ||
169 | void *of_vmlinux_alloc(unsigned long size) | ||
170 | { | ||
171 | void *p = malloc(size); | ||
172 | |||
173 | if (!p) | ||
174 | fatal("Can't allocate memory for kernel image!\n\r"); | ||
175 | |||
176 | return p; | ||
177 | } | ||
178 | |||
169 | void of_exit(void) | 179 | void of_exit(void) |
170 | { | 180 | { |
171 | of_call_prom("exit", 0, 0); | 181 | of_call_prom("exit", 0, 0); |
172 | } | 182 | } |
183 | |||
184 | /* | ||
185 | * OF device tree routines | ||
186 | */ | ||
187 | void *of_finddevice(const char *name) | ||
188 | { | ||
189 | return (phandle) of_call_prom("finddevice", 1, 1, name); | ||
190 | } | ||
191 | |||
192 | int of_getprop(const void *phandle, const char *name, void *buf, | ||
193 | const int buflen) | ||
194 | { | ||
195 | return of_call_prom("getprop", 4, 1, phandle, name, buf, buflen); | ||
196 | } | ||
197 | |||
198 | int of_setprop(const void *phandle, const char *name, const void *buf, | ||
199 | const int buflen) | ||
200 | { | ||
201 | return of_call_prom("setprop", 4, 1, phandle, name, buf, buflen); | ||
202 | } | ||