]> cvs.zerfleddert.de Git - linexec-j720/blobdiff - asm/asm.asm
fix kernel commandline "parsing" -> do not always cut off the last
[linexec-j720] / 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