Edited and added constants to support SV48

This commit is contained in:
Kip Macsai-Goren 2021-06-01 17:49:45 -04:00
parent eba7ce64f5
commit 40cfa86935
9 changed files with 155 additions and 65 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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