mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Merge pull request #1096 from davidharrishmc/dev
XLEN32 support for functional coverage, restore WALLY-init-lib
This commit is contained in:
commit
06fb807839
@ -5,6 +5,9 @@
|
|||||||
// This file is needed in the config subdirectory for each config supporting coverage.
|
// This file is needed in the config subdirectory for each config supporting coverage.
|
||||||
// It defines which extensions are enabled for that config.
|
// It defines which extensions are enabled for that config.
|
||||||
|
|
||||||
|
// Define XLEN, used in covergroups
|
||||||
|
`define XLEN32 1
|
||||||
|
|
||||||
// Unprivileged extensions
|
// Unprivileged extensions
|
||||||
`include "RV32I_coverage.svh"
|
`include "RV32I_coverage.svh"
|
||||||
`include "RV32M_coverage.svh"
|
`include "RV32M_coverage.svh"
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
// This file is needed in the config subdirectory for each config supporting coverage.
|
// This file is needed in the config subdirectory for each config supporting coverage.
|
||||||
// It defines which extensions are enabled for that config.
|
// It defines which extensions are enabled for that config.
|
||||||
|
|
||||||
|
// Define XLEN, used in covergroups
|
||||||
|
`define XLEN64 1
|
||||||
|
|
||||||
// Unprivileged extensions
|
// Unprivileged extensions
|
||||||
`include "RV64I_coverage.svh"
|
`include "RV64I_coverage.svh"
|
||||||
`include "RV64M_coverage.svh"
|
`include "RV64M_coverage.svh"
|
||||||
|
@ -28,12 +28,6 @@
|
|||||||
// The PMP tests are sensitive to the exact addresses in this code, so unfortunately
|
// The PMP tests are sensitive to the exact addresses in this code, so unfortunately
|
||||||
// modifying anything breaks those tests.
|
// modifying anything breaks those tests.
|
||||||
|
|
||||||
// Provides simple firmware services through ecall. Place argument in a0 and issue ecall:
|
|
||||||
// 0: change to user mode
|
|
||||||
// 1: change to supervisor mode
|
|
||||||
// 3: change to machine mode
|
|
||||||
// 4: terminate program
|
|
||||||
|
|
||||||
.section .text.init
|
.section .text.init
|
||||||
.global rvtest_entry_point
|
.global rvtest_entry_point
|
||||||
|
|
||||||
@ -134,18 +128,6 @@ write_tohost:
|
|||||||
self_loop:
|
self_loop:
|
||||||
j self_loop # wait
|
j self_loop # wait
|
||||||
|
|
||||||
// utility routines
|
|
||||||
|
|
||||||
# put a 1 in msb of a0 (position XLEN-1); works for both RV32 and RV64
|
|
||||||
setmsb:
|
|
||||||
li a0, 0x80000000 # 1 in bit 31
|
|
||||||
slli a1, a0, 1 # check if register is wider than 31 bits
|
|
||||||
beqz a1, setmsbdone # yes, a0 has 1 in bit 31
|
|
||||||
slli a0, a0, 16 # no: shift a0 to have 1 inn bit 63
|
|
||||||
slli a0, a0, 16 # use two shifts of 16 bits each to be compatible with compiling either RV32 or 64
|
|
||||||
setmsbdone:
|
|
||||||
ret # return to calller
|
|
||||||
|
|
||||||
.section .tohost
|
.section .tohost
|
||||||
tohost: # write to HTIF
|
tohost: # write to HTIF
|
||||||
.dword 0
|
.dword 0
|
||||||
@ -157,9 +139,6 @@ begin_signature:
|
|||||||
.fill 6*(XLEN/32),4,0xdeadbeef #
|
.fill 6*(XLEN/32),4,0xdeadbeef #
|
||||||
end_signature:
|
end_signature:
|
||||||
|
|
||||||
scratch:
|
|
||||||
.fill 4,4,0x0
|
|
||||||
|
|
||||||
# Initialize stack with room for 512 bytes
|
# Initialize stack with room for 512 bytes
|
||||||
.bss
|
.bss
|
||||||
.space 512
|
.space 512
|
||||||
|
Loading…
Reference in New Issue
Block a user