mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| // pmppriority test cases
 | |
| // Kevin Wan kewan@hmc.edu 4/27/2023
 | |
| // want memory ranges to match:
 | |
| // 1. only the most significant address and none of the lower ones, 
 | |
| // 2. the most significant address and ANY of the lower ones. 
 | |
| 
 | |
| 
 | |
| 
 | |
| #include "WALLY-init-lib.h" 
 | |
| main: 
 | |
| 
 | |
|     li t1, 0x21FFFFFF // start at 0x8000000 with a range of 1000000. Address format is set to NAPOT in pmpcfg.
 | |
|     csrw pmpaddr0, t1  
 | |
|     csrw pmpaddr1, t1
 | |
|     csrw pmpaddr2, t1  
 | |
|     csrw pmpaddr3, t1
 | |
|     csrw pmpaddr4, t1  
 | |
|     csrw pmpaddr5, t1
 | |
|     csrw pmpaddr6, t1
 | |
|     csrw pmpaddr7, t1
 | |
| 
 | |
|     csrw pmpaddr8, t1
 | |
|     csrw pmpaddr9, t1
 | |
|     csrw pmpaddr10, t1  
 | |
|     csrw pmpaddr11, t1
 | |
|     csrw pmpaddr12, t1  
 | |
|     csrw pmpaddr13, t1
 | |
|     csrw pmpaddr14, t1
 | |
|     csrw pmpaddr15, t1
 | |
| 
 | |
| 
 | |
|     li t0, 0x1F
 | |
|     csrw pmpcfg0, t0 //set to XWR and NAPOT
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F00
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F0000
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
|     
 | |
|     li t0, 0x1F1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F000000
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
|     
 | |
|     li t0, 0x1F1F1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F00000000
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
|     
 | |
|     li t0, 0x1F1F1F1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F0000000000
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
|     
 | |
|     li t0, 0x1F1F1F1F1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F000000000000
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
|     
 | |
|     li t0, 0x1F1F1F1F1F1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F00000000000000
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
|     
 | |
|     li t0, 0x1F1F1F1F1F1F1F1F
 | |
|     csrw pmpcfg0, t0 
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x0
 | |
|     csrw pmpcfg0, t0
 | |
|     li t0, 0x1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F00
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F0000
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F00000000
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F0000000000
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F000000000000
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F00000000000000
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F1F1F1F1F1F
 | |
|     csrw pmpcfg0, t0
 | |
|     li t0, 0x1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F1F1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F1F1F1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
|     li t0, 0x1F1F1F1F1F1F1F1F
 | |
|     csrw pmpcfg2, t0
 | |
|     sw zero, 0(sp)
 | |
| 
 | |
| 
 | |
| 
 | |
|     j done
 | |
| 
 | |
| 
 | |
|     
 |