mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-01 17:34:27 +00:00
Merge branch 'main' of https://github.com/davidharrishmc/riscv-wally
This commit is contained in:
commit
70d2b2fdd7
@ -11,8 +11,8 @@ sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h \
|
||||
$(PORT_DIR)/crt.S $(PORT_DIR)/encoding.h $(PORT_DIR)/util.h $(PORT_DIR)/syscalls.c
|
||||
ABI := $(if $(findstring "64","$(XLEN)"),lp64,ilp32)
|
||||
ARCH := rv$(XLEN)im
|
||||
PORT_CFLAGS = -g -march=rv$(XLEN)im -mabi=$(ABI) -march=$(ARCH) -static -falign-functions=16 \
|
||||
-mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-3-series -O3 -funroll-all-loops -finline-functions -falign-jumps=4 \
|
||||
PORT_CFLAGS = -g -mabi=$(ABI) -march=$(ARCH) -static -falign-functions=16 \
|
||||
-mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-3-series -O3 -finline-functions -falign-jumps=4 \
|
||||
-fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 \
|
||||
-funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fipa-pta \
|
||||
-nostdlib -nostartfiles -ffreestanding -mstrict-align \
|
||||
|
@ -4,7 +4,8 @@
|
||||
|
||||
embench_dir = ../../addins/embench-iot
|
||||
|
||||
all: build sim size
|
||||
all: build
|
||||
run: sim size
|
||||
|
||||
allClean: clean all
|
||||
|
||||
|
@ -49,24 +49,24 @@ string tvpaths[] = '{
|
||||
`EMBENCH,
|
||||
"bd_speedopt_speed/src/aha-mont64/aha-mont64",
|
||||
"bd_speedopt_speed/src/crc32/crc32",
|
||||
"bd_speedopt_speed/src/cubic/cubic",
|
||||
"bd_speedopt_speed/src/cubic/cubic", // cubic is likely going to removed when embench 2.0 launches
|
||||
"bd_speedopt_speed/src/edn/edn",
|
||||
"bd_speedopt_speed/src/huffbench/huffbench",
|
||||
"bd_speedopt_speed/src/matmult-int/matmult-int",
|
||||
"bd_speedopt_speed/src/md5sum/md5sum",
|
||||
// "bd_speedopt_speed/src/md5sum/md5sum", //commenting out tests from embench 2.0. When embench 2.0 launches stabilty, add these tests back
|
||||
"bd_speedopt_speed/src/minver/minver",
|
||||
"bd_speedopt_speed/src/nbody/nbody",
|
||||
"bd_speedopt_speed/src/nettle-aes/nettle-aes",
|
||||
"bd_speedopt_speed/src/nettle-sha256/nettle-sha256",
|
||||
"bd_speedopt_speed/src/nsichneu/nsichneu",
|
||||
"bd_speedopt_speed/src/picojpeg/picojpeg",
|
||||
"bd_speedopt_speed/src/primecount/primecount",
|
||||
// "bd_speedopt_speed/src/primecount/primecount",
|
||||
"bd_speedopt_speed/src/qrduino/qrduino",
|
||||
"bd_speedopt_speed/src/sglib-combined/sglib-combined",
|
||||
"bd_speedopt_speed/src/slre/slre",
|
||||
"bd_speedopt_speed/src/st/st",
|
||||
"bd_speedopt_speed/src/statemate/statemate",
|
||||
"bd_speedopt_speed/src/tarfind/tarfind",
|
||||
// "bd_speedopt_speed/src/tarfind/tarfind",
|
||||
"bd_speedopt_speed/src/ud/ud",
|
||||
"bd_speedopt_speed/src/wikisort/wikisort",
|
||||
"bd_sizeopt_speed/src/aha-mont64/aha-mont64",
|
||||
@ -75,7 +75,7 @@ string tvpaths[] = '{
|
||||
"bd_sizeopt_speed/src/edn/edn",
|
||||
"bd_sizeopt_speed/src/huffbench/huffbench",
|
||||
"bd_sizeopt_speed/src/matmult-int/matmult-int",
|
||||
"bd_sizeopt_speed/src/md5sum/md5sum",
|
||||
// "bd_sizeopt_speed/src/md5sum/md5sum",
|
||||
"bd_sizeopt_speed/src/minver/minver",
|
||||
"bd_sizeopt_speed/src/nbody/nbody",
|
||||
"bd_sizeopt_speed/src/nettle-aes/nettle-aes",
|
||||
@ -88,7 +88,7 @@ string tvpaths[] = '{
|
||||
"bd_sizeopt_speed/src/slre/slre",
|
||||
"bd_sizeopt_speed/src/st/st",
|
||||
"bd_sizeopt_speed/src/statemate/statemate",
|
||||
"bd_sizeopt_speed/src/tarfind/tarfind",
|
||||
// "bd_sizeopt_speed/src/tarfind/tarfind",
|
||||
"bd_sizeopt_speed/src/ud/ud",
|
||||
"bd_sizeopt_speed/src/wikisort/wikisort"
|
||||
};
|
||||
|
@ -973,6 +973,45 @@ readsip_test: // read the MIP into the signature
|
||||
addi a6, a6, 4
|
||||
j test_loop // go to next test case
|
||||
|
||||
claim_m_plic_interrupts: // clears one non-pending PLIC interrupt
|
||||
li t2, 0x0C002000
|
||||
li t3, 0x0C200004
|
||||
li t4, 0xFFF
|
||||
lw t6, 0(t2) // save current enable status
|
||||
sw t4, 0(t2) // enable all relevant interrupts on PLIC
|
||||
lw t5, 0(t3) // make PLIC claim
|
||||
sw t5, 0(t3) // complete claim made
|
||||
sw t6, 0(t2) // restore saved enable status
|
||||
j test_loop
|
||||
|
||||
claim_s_plic_interrupts: // clears one non-pending PLIC interrupt
|
||||
li t2, 0x0C002080
|
||||
li t3, 0x0C201004
|
||||
li t4, 0xFFF
|
||||
lw t6, 0(t2) // save current enable status
|
||||
sw t4, 0(t2) // enable all relevant interrupts on PLIC
|
||||
lw t5, 0(t3) // make PLIC claim
|
||||
sw t5, 0(t3) // complete claim made
|
||||
sw t6, 0(t2) // restore saved enable status
|
||||
j test_loop
|
||||
|
||||
uart_data_wait:
|
||||
li t2, 0x10000005 // LSR
|
||||
li t3, 0x10000002 // IIR
|
||||
lb t4, 0(t3) // save IIR before potential clear
|
||||
lb t5, 0(t2)
|
||||
andi t5, t5, 1 // only care if data is ready
|
||||
li t6, 1
|
||||
beq t5, t6, uart_data_ready
|
||||
j uart_data_wait
|
||||
|
||||
uart_data_ready:
|
||||
sb t4, 0(t1)
|
||||
sb t5, 1(t1)
|
||||
addi t1, t1, 4
|
||||
addi a6, a6, 4
|
||||
j test_loop
|
||||
|
||||
goto_s_mode:
|
||||
// return to address in t3,
|
||||
li a0, 3 // Trap handler behavior (go to supervisor mode)
|
||||
|
@ -140,18 +140,22 @@ SETUP_PLIC
|
||||
.4byte high_ie, 0x00020000, write32_test # enable high interrupt on bit 17, which is pending
|
||||
.4byte 0x0, 0x00000800, readmip_test # MEIP should be raised
|
||||
.4byte high_ie, 0x00000000, write32_test # disable high interrupt on bit 17
|
||||
.4byte 0x0, 0x00000000, claim_m_plic_interrupts # clear PLIC pending interrupts
|
||||
.4byte 0x0, 0x00000000, readmip_test # MEIP should be released
|
||||
.4byte low_ie, 0x00010000, write32_test # enable low interrupt on bit 16, which is pending
|
||||
.4byte 0x0, 0x00000800, readmip_test # MEIP should be raised
|
||||
.4byte low_ie, 0x00000000, write32_test # disable low interrupt on bit 16
|
||||
.4byte 0x0, 0x00000000, claim_m_plic_interrupts # clear PLIC pending interrupts
|
||||
.4byte 0x0, 0x00000000, readmip_test # MEIP should be released
|
||||
.4byte rise_ie, 0x00200000, write32_test # enable rise interrupt on bit 21, which is pending
|
||||
.4byte 0x0, 0x00000800, readmip_test # MEIP should be raised
|
||||
.4byte rise_ie, 0x00000000, write32_test # disable rise interrupt on bit 21, which is pending
|
||||
.4byte 0x0, 0x00000000, claim_m_plic_interrupts # clear PLIC pending interrupts
|
||||
.4byte 0x0, 0x00000000, readmip_test # MEIP should be released
|
||||
.4byte fall_ie, 0x01000000, write32_test # enable high interrupt on bit 24, which is pending
|
||||
.4byte 0x0, 0x00000800, readmip_test # MEIP should be raised
|
||||
.4byte fall_ie, 0x00000000, write32_test # disable high interrupt on bit 24, which is pending
|
||||
.4byte 0x0, 0x00000000, claim_m_plic_interrupts # clear PLIC pending interrupts
|
||||
.4byte 0x0, 0x00000000, readmip_test # MEIP should be released
|
||||
|
||||
.4byte 0x0, 0x0, terminate_test # terminate tests
|
||||
|
Loading…
Reference in New Issue
Block a user