Skip to content

Commit c4524fc

Browse files
authored
Merge pull request #1936 from ved-rivos/svrsw60t59b
Add Svrsw60t59b extension
2 parents 00db4e1 + 5ea30aa commit c4524fc

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

riscv/encoding.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
/*
66
* This file is auto-generated by running 'make' in
7-
* https://github.com/riscv/riscv-opcodes (56f9011)
7+
* https://github.com/riscv/riscv-opcodes (3deaa8c)
88
*/
99

1010
#ifndef RISCV_CSR_ENCODING_H
@@ -383,6 +383,9 @@
383383
#define PMP_NA4 0x10
384384
#define PMP_NAPOT 0x18
385385

386+
#define SPMP_U 0x100
387+
#define SPMP_SHARED 0x200
388+
386389
#define MCTRCTL_U 0x0000000000000001
387390
#define MCTRCTL_S 0x0000000000000002
388391
#define MCTRCTL_M 0x0000000000000004
@@ -492,7 +495,8 @@
492495
#define PTE_A 0x040 /* Accessed */
493496
#define PTE_D 0x080 /* Dirty */
494497
#define PTE_SOFT 0x300 /* Reserved for Software */
495-
#define PTE_RSVD 0x1FC0000000000000 /* Reserved for future standard use */
498+
#define PTE_SVRSW60T59B 0x1800000000000000 /* Svrsw60t59b: Reserved for software use */
499+
#define PTE_RSVD 0x07C0000000000000 /* Reserved for future standard use */
496500
#define PTE_PBMT 0x6000000000000000 /* Svpbmt: Page-based memory types */
497501
#define PTE_N 0x8000000000000000 /* Svnapot: NAPOT translation contiguity */
498502
#define PTE_ATTR 0xFFC0000000000000 /* All attributes and reserved bits */

riscv/isa_parser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ typedef enum {
4949
EXT_SVPBMT,
5050
EXT_SVINVAL,
5151
EXT_SVUKTE,
52+
EXT_SVRSW60T59B,
5253
EXT_ZDINX,
5354
EXT_ZFA,
5455
EXT_ZFBFMIN,

riscv/mmu.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,8 @@ reg_t mmu_t::s2xlate(reg_t gva, reg_t gpa, access_type type, access_type trap_ty
561561

562562
if (pte & PTE_RSVD) {
563563
break;
564+
} else if (!proc->extension_enabled(EXT_SVRSW60T59B) && (pte & PTE_SVRSW60T59B)) {
565+
break;
564566
} else if (!proc->extension_enabled(EXT_SVNAPOT) && (pte & PTE_N)) {
565567
break;
566568
} else if (!pbmte && (pte & PTE_PBMT)) {
@@ -691,6 +693,8 @@ reg_t mmu_t::walk(mem_access_info_t access_info)
691693

692694
if (pte & PTE_RSVD) {
693695
break;
696+
} else if (!proc->extension_enabled(EXT_SVRSW60T59B) && (pte & PTE_SVRSW60T59B)) {
697+
break;
694698
} else if (!proc->extension_enabled(EXT_SVNAPOT) && (pte & PTE_N)) {
695699
break;
696700
} else if (!pbmte && (pte & PTE_PBMT)) {

0 commit comments

Comments
 (0)