Home | History | Annotate | Download | only in arm-neon-tests
      1 ; Copyright ARM Ltd 2005. All rights reserved.
      2 
      3 ;==================================================================
      4 ; This code provides basic global enable for a Cortex-A8 cache
      5 ; and program flow prediction
      6 ; This code must be run from a privileged mode
      7 ;==================================================================
      8 
      9         AREA   CORTEXA8CACHE, CODE, READONLY
     10         EXPORT core_init
     11 
     12 core_init
     13 
     14 ;==================================================================
     15 ; Global Enable for Cortex-A8 Instruction and Data Caching
     16 ;==================================================================
     17 
     18         MRC     p15, 0, r0, c1, c0, 0       ; read CP15 register 1 into r0
     19         ORR     r0, r0, #(0x1  <<12)        ; enable I Cache
     20 	;BIC   r0, r0, #(0x1  <<12)         ; Clear bit 0
     21         ORR     r0, r0, #(0x1  <<2)         ; enable D Cache
     22 	;BIC   r0, r0, #(0x1  << 2)         ; Clear bit 0
     23 	ORR     r0, r0, #0x1                ; enable MMU
     24         MCR     p15, 0, r0, c1, c0, 0       ; write CP15 register 1
     25 
     26 ;==================================================================
     27 ; Enable Cortex-A8 Level2 Unified Cache
     28 ;==================================================================
     29 
     30         MRC p15, 0, r0, c1, c0, 1           ; Read Auxiliary Control Register
     31         ORR r0, r0, #2                      ; L2EN bit, enable L2 cache
     32 	;BIC   r0, r0, #(0x1  << 1)         ; L2EN bit, disable L2 cache
     33 	;ORR     r0, r0, #(0x1  << 4)        ;Enables speculative accesses on AXI
     34 	ORR     r0, r0, #(0x1  << 4)        ;Enables speculative accesses on AXI
     35 	ORR     r0, r0, #(0x1  << 5)        ;Enables caching NEON data within the L1 data cache
     36         MCR p15, 0, r0, c1, c0, 1           ; Write Auxiliary Control Register
     37 
     38 ;==================================================================
     39 ; Cortex-A8 program flow prediction
     40 ;==================================================================
     41 
     42         MRC     p15, 0, r0, c1, c0, 0       ; read CP15 register 1 into r0
     43         ORR     r0, r0, #(0x1  <<11)        ; Enable all forms of branch prediction
     44 	;BIC   	r0, r0, #(0x1  << 11)	    ; Disable all forms of branch prediction
     45         MCR     p15, 0, r0, c1, c0, 0       ; write CP15 register 1
     46 
     47 ;==================================================================
     48 
     49         BX    lr
     50 
     51         END                                 ; mark the end of this file
     52 
     53