Skip to content

Commit

Permalink
Svhad -> Svadu
Browse files Browse the repository at this point in the history
  • Loading branch information
ved-rivos committed Aug 14, 2023
1 parent 7995094 commit 724d922
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 30 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# CHANGELOG

## [3.7.1] - 2023-07-30
- Add support for unratified Svhad extension
- Add support for unratified Svadu extension

## [3.7.0] - 2023-05-16
- Updated the LI macro
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions riscv-test-suite/env/encoding.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,11 @@
#define MENVCFG_CBIE 0x00000030
#define MENVCFG_CBCFE 0x00000040
#define MENVCFG_CBZE 0x00000080
#define MENVCFG_HADE 0x2000000000000000
#define MENVCFG_ADUE 0x2000000000000000
#define MENVCFG_PBMTE 0x4000000000000000
#define MENVCFG_STCE 0x8000000000000000

#define MENVCFGH_HADE 0x20000000
#define MENVCFGH_ADUE 0x20000000
#define MENVCFGH_PBMTE 0x40000000
#define MENVCFGH_STCE 0x80000000

Expand Down
6 changes: 3 additions & 3 deletions riscv-test-suite/env/test_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -984,7 +984,7 @@ RVTEST_SIGUPD_F(swreg,destreg,flagreg)
sub x1,x1,tempreg ;\
RVTEST_SIGUPD(swreg,x1,offset)

#define SETUP_PMP_SVHAD_TEST(swreg, offset, TR0, TR1, TR2) \
#define SETUP_PMP_SVADU_TEST(swreg, offset, TR0, TR1, TR2) \
li TR0, -1 ;\
csrw pmpaddr0, TR0 ;\
j PMP_exist ;\
Expand All @@ -1004,7 +1004,7 @@ Mend_PMP: ;\
RVTEST_SIGUPD(x1,TR0,offset) ;\
RVTEST_SIGUPD(x1,TR1,offset) ;\

#define TEST_SVHAD(swreg, PTE_ADDR, VA, offset, menvcfgaddr, hade_bit) \
#define TEST_SVADU(swreg, PTE_ADDR, VA, offset, menvcfgaddr, adue_bit) \
sfence.vma ;\
la t0, VA ;\
li t2, PTE_X | PTE_W | PTE_R ;\
Expand Down Expand Up @@ -1077,7 +1077,7 @@ Mend_PMP: ;\
SREG t0, (PTE_ADDR) ;\
sfence.vma ;\
;\
li t0, hade_bit ;\
li t0, adue_bit ;\
csrs menvcfgaddr, t0 ;\
;\
la t0, VA ;\
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// SPDX-License-Identifier: BSD-3-Clause
// -----------
//
// This assembly file tests the Svhad extension
// This assembly file tests the Svadu extension
//
#include "model_test.h"
#include "arch_test.h"
Expand All @@ -19,12 +19,12 @@ RVMODEL_BOOT
RVTEST_CODE_BEGIN

#ifdef TEST_CASE_1
RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svhad.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svhad_sv32)
RVTEST_CASE(1,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svadu.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svadu_sv32)

RVTEST_SIGBASE(x1, signature_x1_0)

# Setup PMP to cover 4G of address space
SETUP_PMP_SVHAD_TEST(x1, offset, t0, t1, t2)
SETUP_PMP_SVADU_TEST(x1, offset, t0, t1, t2)

# Identity map the page_4k
la t1, page_4k
Expand All @@ -34,12 +34,12 @@ RVTEST_CODE_BEGIN
# enable virtual memory in Sv32 mode
SATP_SETUP(t0, t1, SATP32_MODE)

# test svhad
TEST_SVHAD(x1, s2, page_4k, offset, 0x31a, MENVCFGH_HADE)
RVMODEL_HALT
# test svadu
TEST_SVADU(x1, s2, page_4k, offset, 0x31a, MENVCFGH_ADUE)

#endif
RVTEST_CODE_END
RVMODEL_HALT

RVTEST_DATA_BEGIN
.align 12
Expand All @@ -60,8 +60,10 @@ CANARY;
signature_x1_0:
.fill 128*(XLEN/32),4,0xdeadbeef

#ifdef rvtest_mtrap_routine
mtrap_sigptr:
.fill 128*4, 4, 0xdeadbeef
#endif

#ifdef rvtest_gpr_save
gpr_save:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// SPDX-License-Identifier: BSD-3-Clause
// -----------
//
// This assembly file tests the Svhad extension
// This assembly file tests the Svadu extension
//
#include "model_test.h"
#include "arch_test.h"
Expand All @@ -19,12 +19,12 @@ RVMODEL_BOOT
RVTEST_CODE_BEGIN

#ifdef TEST_CASE_1
RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svhad.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svhad_sv39)
RVTEST_CASE(1,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svadu.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svadu_sv39)

RVTEST_SIGBASE(x1, signature_x1_0)

# Setup PMP to cover 4G of address space
SETUP_PMP_SVHAD_TEST(x1, offset, t0, t1, t2)
SETUP_PMP_SVADU_TEST(x1, offset, t0, t1, t2)

# Idenity map the page_4k
la t1, page_4k
Expand All @@ -34,11 +34,11 @@ RVTEST_CODE_BEGIN
# enable virtual memory in Sv39 mode
SATP_SETUP(t0, t1, ((SATP_MODE & ~(SATP_MODE<<1)) * SATP_MODE_SV39))

# test svhad
TEST_SVHAD(x1, s2, page_4k, offset, 0x30a, MENVCFG_HADE)
RVMODEL_HALT
# test svadu
TEST_SVADU(x1, s2, page_4k, offset, 0x30a, MENVCFG_ADUE)
#endif
RVTEST_CODE_END
RVMODEL_HALT

RVTEST_DATA_BEGIN
.align 12
Expand All @@ -59,8 +59,10 @@ CANARY;
signature_x1_0:
.fill 64*(XLEN/32),4,0xdeadbeef

#ifdef rvtest_mtrap_routine
mtrap_sigptr:
.fill 128*4, 4, 0xdeadbeef
#endif

#ifdef rvtest_gpr_save
gpr_save:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// SPDX-License-Identifier: BSD-3-Clause
// -----------
//
// This assembly file tests the Svhad extension
// This assembly file tests the Svadu extension
//
#include "model_test.h"
#include "arch_test.h"
Expand All @@ -19,12 +19,12 @@ RVMODEL_BOOT
RVTEST_CODE_BEGIN

#ifdef TEST_CASE_1
RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svhad.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svhad_sv48)
RVTEST_CASE(1,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svadu.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svadu_sv48)

RVTEST_SIGBASE(x1, signature_x1_0)

# Setup PMP to cover 4G of address space
SETUP_PMP_SVHAD_TEST(x1, offset, t0, t1, t2)
SETUP_PMP_SVADU_TEST(x1, offset, t0, t1, t2)

# Identity map the page_4k
la t1, page_4k
Expand All @@ -34,11 +34,11 @@ RVTEST_CODE_BEGIN
# enable virtual memory in Sv48 mode
SATP_SETUP(t0, t1, ((SATP_MODE & ~(SATP_MODE<<1)) * SATP_MODE_SV48))

# test svhad
TEST_SVHAD(x1, s2, page_4k, offset, 0x30a, MENVCFG_HADE)
RVMODEL_HALT
# test svadu
TEST_SVADU(x1, s2, page_4k, offset, 0x30a, MENVCFG_ADUE)
#endif
RVTEST_CODE_END
RVMODEL_HALT

RVTEST_DATA_BEGIN
.align 12
Expand All @@ -59,8 +59,10 @@ CANARY;
signature_x1_0:
.fill 64*(XLEN/32),4,0xdeadbeef

#ifdef rvtest_mtrap_routine
mtrap_sigptr:
.fill 128*4, 4, 0xdeadbeef
#endif

#ifdef rvtest_gpr_save
gpr_save:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// SPDX-License-Identifier: BSD-3-Clause
// -----------
//
// This assembly file tests the Svhad extension
// This assembly file tests the Svadu extension
//
#include "model_test.h"
#include "arch_test.h"
Expand All @@ -19,12 +19,12 @@ RVMODEL_BOOT
RVTEST_CODE_BEGIN

#ifdef TEST_CASE_1
RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svhad.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svhad_sv57)
RVTEST_CASE(1,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);check ISA:=regex(.*Svadu.*);def rvtest_mtrap_routine=True;def TEST_CASE_1=True;",svadu_sv57)

RVTEST_SIGBASE(x1, signature_x1_0)

# Setup PMP to cover 4G of address space
SETUP_PMP_SVHAD_TEST(x1, offset, t0, t1, t2)
SETUP_PMP_SVADU_TEST(x1, offset, t0, t1, t2)

# Identity map the page_4k
la t1, page_4k
Expand All @@ -34,11 +34,11 @@ RVTEST_CODE_BEGIN
# enable virtual memory in Sv57 mode
SATP_SETUP(t0, t1, ((SATP_MODE & ~(SATP_MODE<<1)) * SATP_MODE_SV57))

# test svhad
TEST_SVHAD(x1, s2, page_4k, offset, 0x30a, MENVCFG_HADE)
RVMODEL_HALT
# test svadu
TEST_SVADU(x1, s2, page_4k, offset, 0x30a, MENVCFG_ADUE)
#endif
RVTEST_CODE_END
RVMODEL_HALT

RVTEST_DATA_BEGIN
.align 12
Expand All @@ -59,8 +59,10 @@ CANARY;
signature_x1_0:
.fill 64*(XLEN/32),4,0xdeadbeef

#ifdef rvtest_mtrap_routine
mtrap_sigptr:
.fill 128*4, 4, 0xdeadbeef
#endif

#ifdef rvtest_gpr_save
gpr_save:
Expand Down

0 comments on commit 724d922

Please sign in to comment.