diff options
Diffstat (limited to 'arch/sparc64/prom/misc.c')
-rw-r--r-- | arch/sparc64/prom/misc.c | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/arch/sparc64/prom/misc.c b/arch/sparc64/prom/misc.c index 87f5cfce23bb..577bde8b6647 100644 --- a/arch/sparc64/prom/misc.c +++ b/arch/sparc64/prom/misc.c | |||
@@ -112,28 +112,20 @@ unsigned char prom_get_idprom(char *idbuf, int num_bytes) | |||
112 | return 0xff; | 112 | return 0xff; |
113 | } | 113 | } |
114 | 114 | ||
115 | /* Get the major prom version number. */ | 115 | /* Install Linux trap table so PROM uses that instead of its own. */ |
116 | int prom_version(void) | 116 | void prom_set_trap_table(unsigned long tba) |
117 | { | ||
118 | return PROM_P1275; | ||
119 | } | ||
120 | |||
121 | /* Get the prom plugin-revision. */ | ||
122 | int prom_getrev(void) | ||
123 | { | ||
124 | return prom_rev; | ||
125 | } | ||
126 | |||
127 | /* Get the prom firmware print revision. */ | ||
128 | int prom_getprev(void) | ||
129 | { | 117 | { |
130 | return prom_prev; | 118 | p1275_cmd("SUNW,set-trap-table", |
119 | (P1275_ARG(0, P1275_ARG_IN_64B) | | ||
120 | P1275_INOUT(1, 0)), tba); | ||
131 | } | 121 | } |
132 | 122 | ||
133 | /* Install Linux trap table so PROM uses that instead of its own. */ | 123 | void prom_set_trap_table_sun4v(unsigned long tba, unsigned long mmfsa) |
134 | void prom_set_trap_table(unsigned long tba) | ||
135 | { | 124 | { |
136 | p1275_cmd("SUNW,set-trap-table", P1275_INOUT(1, 0), tba); | 125 | p1275_cmd("SUNW,set-trap-table", |
126 | (P1275_ARG(0, P1275_ARG_IN_64B) | | ||
127 | P1275_ARG(1, P1275_ARG_IN_64B) | | ||
128 | P1275_INOUT(2, 0)), tba, mmfsa); | ||
137 | } | 129 | } |
138 | 130 | ||
139 | int prom_get_mmu_ihandle(void) | 131 | int prom_get_mmu_ihandle(void) |
@@ -303,9 +295,21 @@ int prom_wakeupsystem(void) | |||
303 | } | 295 | } |
304 | 296 | ||
305 | #ifdef CONFIG_SMP | 297 | #ifdef CONFIG_SMP |
306 | void prom_startcpu(int cpunode, unsigned long pc, unsigned long o0) | 298 | void prom_startcpu(int cpunode, unsigned long pc, unsigned long arg) |
299 | { | ||
300 | p1275_cmd("SUNW,start-cpu", P1275_INOUT(3, 0), cpunode, pc, arg); | ||
301 | } | ||
302 | |||
303 | void prom_startcpu_cpuid(int cpuid, unsigned long pc, unsigned long arg) | ||
304 | { | ||
305 | p1275_cmd("SUNW,start-cpu-by-cpuid", P1275_INOUT(3, 0), | ||
306 | cpuid, pc, arg); | ||
307 | } | ||
308 | |||
309 | void prom_stopcpu_cpuid(int cpuid) | ||
307 | { | 310 | { |
308 | p1275_cmd("SUNW,start-cpu", P1275_INOUT(3, 0), cpunode, pc, o0); | 311 | p1275_cmd("SUNW,stop-cpu-by-cpuid", P1275_INOUT(1, 0), |
312 | cpuid); | ||
309 | } | 313 | } |
310 | 314 | ||
311 | void prom_stopself(void) | 315 | void prom_stopself(void) |