mirror of
				https://github.com/RaySollium99/picodrive.git
				synced 2025-10-27 21:48:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			714 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			714 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
|   .text
 | |
|   .arm
 | |
|   .balign 4
 | |
| 
 | |
|   .func ctr_clear_cache_kernel
 | |
| ctr_clear_cache_kernel:
 | |
|   cpsid aif
 | |
|   mov r0, #0
 | |
|   mcr p15, 0, r0, c7, c10, 0    @ Clean entire data cache
 | |
|   mcr p15, 0, r0, c7, c10, 5    @ Data Memory Barrier
 | |
|   mcr p15, 0, r0, c7, c5, 0     @ Invalidate entire instruction cache / Flush BTB
 | |
|   mcr p15, 0, r0, c7, c10, 4    @ Data Sync Barrier
 | |
|   bx lr
 | |
|   .endfunc
 | |
| 
 | |
|   @@ Clear the entire data cache / invalidate the instruction cache. Uses
 | |
|   @@ Rosalina svcCustomBackdoor to avoid svcBackdoor stack corruption
 | |
|   @@ during interrupts.
 | |
|   .global ctr_clear_cache
 | |
|   .func ctr_clear_cache
 | |
| ctr_clear_cache:
 | |
|   ldr r0, =ctr_clear_cache_kernel
 | |
|   svc 0x80                      @ svcCustomBackdoor
 | |
|   bx lr
 | |
|   .endfunc
 | 
