2.6 fixes
authormichael <michael>
Sun, 24 Jul 2005 17:43:55 +0000 (17:43 +0000)
committermichael <michael>
Sun, 24 Jul 2005 17:43:55 +0000 (17:43 +0000)
asm/asm.asm

index ddc6ef538431d735a35725bac39e7ed6e2abbed7..aae80b8634b940e4039facd05eaabd6fbf7ef0be 100644 (file)
@@ -88,6 +88,28 @@ label                ldr     r8, [r9]
                mov     r0, r0
                sub     pc, pc, #4              
 
+; This is needed to get Linux 2.6 booting
+               mov     r0, #0
+               mcr     p15, 0, r0, c7, c10, 4  ; Drain write buffer
+               mcr     p15, 0, r0, c7, c7, 0   ; invalidate I+D & BTB
+               
+               mrc     p15, 0, r0, c1, c0, 0
+               bic     r0, r0, #5              ; MMU & Dcache off
+               bic     r0, r0, #0x1000         ; Icache off
+               mcr     p15, 0, r0, c1, c0, 0   ; disable the MMU & caches
+               mrc     p15, 0, r0, c2, c0, 0
+               mov     r0, r0
+               sub     pc, pc, #4
+               
+               
+               mov     r0, #0
+               mcr     p15, 0, r0, c13, c0, 0  ; clear PID
+               mcr     p15, 0, r0, c8, c7, 0   ; invalidate I+D TLB
+               mrc     p15, 0, r0, c2, c0, 0
+               mov     r0, r0
+               sub     pc, pc, #4
+
+;Set parameters for kernel
                mov     r0, #0
                mov     r1, r10
                ldr     r2, [r2, #0]
Impressum, Datenschutz