aboutsummaryrefslogtreecommitdiff
path: root/machine
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2020-01-11 14:48:52 -0800
committerAndrew Waterman <andrew@sifive.com>2020-01-11 14:49:08 -0800
commit77a5df569451571d608650a34183d53df99790ec (patch)
tree817efb3116f168fcc04fa1abef9181beebecfbcf /machine
parent34ceb37298b3b6cdb7eaf38dd519f564a28bfb63 (diff)
downloadriscv-pk-77a5df569451571d608650a34183d53df99790ec.zip
riscv-pk-77a5df569451571d608650a34183d53df99790ec.tar.gz
riscv-pk-77a5df569451571d608650a34183d53df99790ec.tar.bz2
Enable vector unit if present
Diffstat (limited to 'machine')
-rw-r--r--machine/encoding.h1
-rw-r--r--machine/minit.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/machine/encoding.h b/machine/encoding.h
index c109ce1..20c44b9 100644
--- a/machine/encoding.h
+++ b/machine/encoding.h
@@ -14,6 +14,7 @@
#define MSTATUS_SPP 0x00000100
#define MSTATUS_HPP 0x00000600
#define MSTATUS_MPP 0x00001800
+#define MSTATUS_VS 0x01800000
#define MSTATUS_FS 0x00006000
#define MSTATUS_XS 0x00018000
#define MSTATUS_MPRV 0x00020000
diff --git a/machine/minit.c b/machine/minit.c
index 963010d..8c98e2b 100644
--- a/machine/minit.c
+++ b/machine/minit.c
@@ -27,6 +27,10 @@ static void mstatus_init()
if (supports_extension('F'))
write_csr(mstatus, MSTATUS_FS);
+ // Enable vector extension
+ if (supports_extension('V'))
+ write_csr(mstatus, MSTATUS_VS);
+
// Enable user/supervisor use of perf counters
if (supports_extension('S'))
write_csr(scounteren, -1);