aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/misc_32.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/misc_32.S')
-rw-r--r--arch/powerpc/kernel/misc_32.S56
1 files changed, 39 insertions, 17 deletions
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 8b642ab26d37..5c2e253ddfb1 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -206,6 +206,45 @@ _GLOBAL(_nmask_and_or_msr)
206 isync 206 isync
207 blr /* Done */ 207 blr /* Done */
208 208
209#ifdef CONFIG_40x
210
211/*
212 * Do an IO access in real mode
213 */
214_GLOBAL(real_readb)
215 mfmsr r7
216 ori r0,r7,MSR_DR
217 xori r0,r0,MSR_DR
218 sync
219 mtmsr r0
220 sync
221 isync
222 lbz r3,0(r3)
223 sync
224 mtmsr r7
225 sync
226 isync
227 blr
228
229 /*
230 * Do an IO access in real mode
231 */
232_GLOBAL(real_writeb)
233 mfmsr r7
234 ori r0,r7,MSR_DR
235 xori r0,r0,MSR_DR
236 sync
237 mtmsr r0
238 sync
239 isync
240 stb r3,0(r4)
241 sync
242 mtmsr r7
243 sync
244 isync
245 blr
246
247#endif /* CONFIG_40x */
209 248
210/* 249/*
211 * Flush MMU TLB 250 * Flush MMU TLB
@@ -236,12 +275,6 @@ _GLOBAL(_tlbia)
236 /* Invalidate all entries in TLB1 */ 275 /* Invalidate all entries in TLB1 */
237 li r3, 0x0c 276 li r3, 0x0c
238 tlbivax 0,3 277 tlbivax 0,3
239 /* Invalidate all entries in TLB2 */
240 li r3, 0x14
241 tlbivax 0,3
242 /* Invalidate all entries in TLB3 */
243 li r3, 0x1c
244 tlbivax 0,3
245 msync 278 msync
246#ifdef CONFIG_SMP 279#ifdef CONFIG_SMP
247 tlbsync 280 tlbsync
@@ -336,12 +369,8 @@ _GLOBAL(_tlbie)
336#elif defined(CONFIG_FSL_BOOKE) 369#elif defined(CONFIG_FSL_BOOKE)
337 rlwinm r4, r3, 0, 0, 19 370 rlwinm r4, r3, 0, 0, 19
338 ori r5, r4, 0x08 /* TLBSEL = 1 */ 371 ori r5, r4, 0x08 /* TLBSEL = 1 */
339 ori r6, r4, 0x10 /* TLBSEL = 2 */
340 ori r7, r4, 0x18 /* TLBSEL = 3 */
341 tlbivax 0, r4 372 tlbivax 0, r4
342 tlbivax 0, r5 373 tlbivax 0, r5
343 tlbivax 0, r6
344 tlbivax 0, r7
345 msync 374 msync
346#if defined(CONFIG_SMP) 375#if defined(CONFIG_SMP)
347 tlbsync 376 tlbsync
@@ -793,13 +822,6 @@ _GLOBAL(kernel_thread)
793 addi r1,r1,16 822 addi r1,r1,16
794 blr 823 blr
795 824
796_GLOBAL(kernel_execve)
797 li r0,__NR_execve
798 sc
799 bnslr
800 neg r3,r3
801 blr
802
803/* 825/*
804 * This routine is just here to keep GCC happy - sigh... 826 * This routine is just here to keep GCC happy - sigh...
805 */ 827 */