mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			159 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			2.7 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
 |