mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Edited and added constants to support SV48
This commit is contained in:
parent
eba7ce64f5
commit
40cfa86935
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// added svmode constants. These aren't strictly necessary since we're just checking one bit,
|
||||||
|
// but they're here to stay consistent and to make sure we dont wind up
|
||||||
|
// a "NO_TRANSLATE undefined" situation.
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
||||||
// These macros should not be changed, except in the event of an
|
// These macros should not be changed, except in the event of an
|
||||||
@ -31,3 +34,10 @@
|
|||||||
`define PPN_BITS 22
|
`define PPN_BITS 22
|
||||||
`define PPN_HIGH_SEGMENT_BITS 12
|
`define PPN_HIGH_SEGMENT_BITS 12
|
||||||
`define PA_BITS 34
|
`define PA_BITS 34
|
||||||
|
`define SVMODE_BITS 1
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8 // These two are only here to stop
|
||||||
|
`define SV48 9 // the verilator from yelling at me
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
// wally-constants.vh
|
// wally-constants.vh
|
||||||
//
|
//
|
||||||
// Written: tfleming@hmc.edu 4 March 2021
|
// Written: tfleming@hmc.edu 4 March 2021
|
||||||
// Modified:
|
// Modified: Kmacsaigoren@hmc.edu 31 May 2021
|
||||||
|
// Added constants for checking sv mode and changed existing constants to accomodate
|
||||||
|
// both sv48 and sv39
|
||||||
//
|
//
|
||||||
// Purpose: Specify certain constants defined in the RISC-V 64-bit architecture.
|
// Purpose: Specify constants nexessary for different memory virtualization modes.
|
||||||
// These macros should not be changed, except in the event of an
|
// These are specific to sv49, defined in section 4.5 of the privileged spec.
|
||||||
// update to the architecture or particularly special circumstances.
|
// However, despite different constants for different modes, the hardware helps distinguish between
|
||||||
|
// each mode.
|
||||||
//
|
//
|
||||||
// A component of the Wally configurable RISC-V project.
|
// A component of the Wally configurable RISC-V project.
|
||||||
//
|
//
|
||||||
@ -25,9 +28,16 @@
|
|||||||
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
// Virtual Memory Constants (sv39)
|
// Virtual Memory Constants (sv48)
|
||||||
`define VPN_SEGMENT_BITS 9
|
`define VPN_SEGMENT_BITS 9
|
||||||
`define VPN_BITS 27
|
`define VPN_BITS 36
|
||||||
|
`define PPN_HIGH_SEGMENT_BITS 17
|
||||||
`define PPN_BITS 44
|
`define PPN_BITS 44
|
||||||
`define PPN_HIGH_SEGMENT_BITS 26
|
|
||||||
`define PA_BITS 56
|
`define PA_BITS 56
|
||||||
|
`define SVMODE_BITS 4
|
||||||
|
// constants to check SATP_MODE against
|
||||||
|
// defined in Table 4.3 of the privileged spec
|
||||||
|
`define NO_TRANSLATE 0
|
||||||
|
`define SV32 1
|
||||||
|
`define SV39 8
|
||||||
|
`define SV48 9
|
||||||
|
Loading…
Reference in New Issue
Block a user