Skip to content

Commit

Permalink
Add CV64A6_MMU core in user manual (#2324)
Browse files Browse the repository at this point in the history
  • Loading branch information
LQUA authored Jul 9, 2024
1 parent c50012a commit f446558
Show file tree
Hide file tree
Showing 19 changed files with 109 additions and 0 deletions.
25 changes: 25 additions & 0 deletions docs/01_cva6_user/CSR_CV64A6_MMU.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
..
Copyright (c) 2023 OpenHW Group
Copyright (c) 2023 Thales DIS design services SAS
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1

.. Level 1
=======
Level 2
-------
Level 3
~~~~~~~
Level 4
^^^^^^^
.. _CSR_CV64A6_MMU:


CV64A6_MMU Control Status Registers
==================================

*This chapter is not yet available.*
25 changes: 25 additions & 0 deletions docs/01_cva6_user/CSR_CV64A6_MMU_list.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
..
Copyright (c) 2023 OpenHW Group
Copyright (c) 2023 Thales DIS design services SAS
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1

.. Level 1
=======
Level 2
-------
Level 3
~~~~~~~
Level 4
^^^^^^^
.. _CSR_CV64A6_MMU_list:


CV64A6_MMU Control Status Registers List
=======================================

*This chapter is not yet available.*
1 change: 1 addition & 0 deletions docs/01_cva6_user/CSR_Performance_Counters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Performance counters included"
"CV32A60X", "No performance counters"
"CV64A6_MMU", "No performance counters"

CSR performance counters control
================================
Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/CVX_Interface_Coprocessor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ with external coprocessors.

"CV32A60AX", "CV-X-IF included"
"CV32A60X", "CV-X-IF included"
"CV64A6_MMU", "CV-X-IF included"


CV-X-IF interface specification
Expand Down
3 changes: 3 additions & 0 deletions docs/01_cva6_user/Interfaces.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ The AXI interface is described in a separate chapter.

"CV32A60AX", "AXI implemented"
"CV32A60X", "AXI implemented"
"CV64A6_MMU", "AXI implemented"

Debug Interface
---------------
Expand All @@ -52,6 +53,7 @@ Debug Interface

"CV32A60AX", "Debug interface implemented"
"CV32A60X", "No debug interface"
"CV64A6_MMU", "Debug interface implemented"

Interrupt Interface
-------------------
Expand All @@ -77,3 +79,4 @@ For more information, refer to OpenPiton documents.

"CV32A60AX", "No TRI interface"
"CV32A60X", "No TRI interface"
"CV64A6_MMU", "No TRI interface"
1 change: 1 addition & 0 deletions docs/01_cva6_user/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ As of today, two configurations are being verified and addressed in this documen

"**CV32A60AX**", "32-bit **application** core", "ASIC", "Machine, Supervisor, User", "RV32IMACZicsr_Zifencei_Zicount_Zba_Zbb_Zbc_Zbs_Zcb_Zicond", "Included"
"**CV32A60X**", "32-bit **embedded** core", "ASIC", "Machine only", "RV32IMCZicsr_Zifencei_Zba_Zbb_Zbc_Zbs_Zcb", "Included"
"**CV64A6_MMU**", "64-bit **embedded** core with MMU", "ASIC", "Machine, Supervisor, User", "RV64IMCZicsr_Zifencei_Zba_Zbb_Zbc_Zbs_Zcb", "Included"

CV32A60X is an interim part number until the team can decide if this configuration is single- or dual-issue.
If the dual-issue architecture is selected, the part number will become CV32A65X to denote the extra performance.
Expand Down
40 changes: 40 additions & 0 deletions docs/01_cva6_user/Programmer_View.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,29 @@ These extensions are available in CV32A60X:
"RVZifencei - Instruction-Fetch Fence", "✔"
"RVZicond - Integer Conditional Operations(Ratification pending)", ""

CV64A6_MMU extensions
~~~~~~~~~~~~~~~~~~~

These extensions are available in CV64A6_MMU:

.. csv-table::
:widths: auto
:align: left
:header: "Extension", "Available in CV64A6_MMU"

"RV32I - Base Integer Instruction Set", "✔"
"RV32A - Atomic Instructions", ""
"RV32Zb* - Bit-Manipulation (Zba, Zbb, Zbc, Zbs)", "✔"
"RV32C - Compressed Instructions ", "✔"
"RV32Zcb - Code Size Reduction", "✔"
"RVZcmp - Code Size Reduction", "✔"
"RV32D - Double precision floating-point", ""
"RV32F - Single precision floating-point", ""
"RV32M - Integer Multiply/Divide", "✔"
"RVZicount - Performance Counters", ""
"RVZicsr - Control and Status Register Instructions", "✔"
"RVZifencei - Instruction-Fetch Fence", "✔"
"RVZicond - Integer Conditional Operations(Ratification pending)", ""

RISC-V Privileges
-----------------
Expand Down Expand Up @@ -158,6 +181,19 @@ These privilege modes are available in CV32A60X:
"S - Supervior", ""
"U - User", ""

CV64A6_MMU privilege modes
~~~~~~~~~~~~~~~~~~~~~~~~~

These privilege modes are available in CV64A6_MMU:

.. csv-table::
:widths: auto
:align: left
:header: "Privileges", "Available in CV64A6_MMU"

"M - Machine", "✔"
"S - Supervior", "✔"
"U - User", "✔"

RISC-V Virtual Memory
---------------------
Expand Down Expand Up @@ -209,6 +245,10 @@ CV32A60X virtual memory

CV32A60X integrates no MMU and only supports the **Bare** addressing mode.

CV64A6_MMU virtual memory
~~~~~~~~~~~~~~~~~~~~~~~~

CV64A6_MMU integrates an MMU and supports both the **Bare** and **Sv39** addressing modes.

Memory Alignment
----------------
Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RV32A.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Not implemented extension"
"CV64A6_MMU", "Not implemented extension"

**Note**: This chapter is specific to CV32A6 configurations. CV64A6 configurations implement as an option RV64A, that includes additional instructions.

Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RV32C.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"

**Note**: This chapter is specific to CV32A6 configurations. CV64A6 configurations implement as an option RV64C, that includes a different list of instructions.

Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RV32I.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ This chapter is applicable to all CV32A6 configurations.

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"

**Note**: CV64A6 implements RV64I that includes additional instructions.

Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RV32M.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ This chapter is applicable to all CV32A6 configurations.

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"

**Note**: CV64A6 implements RV64M that includes additional instructions.

Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RV32ZCb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"

**Note**: This chapter is specific to CV32A6 configurations. CV64A6 configurations implement as an option RV64Zcb, that includes one additional instruction.

Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RVZba.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"


======================================
Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RVZbb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"

=============================
RVZbb: Basic bit-manipulation
Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RVZbc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"


=================================
Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RVZbs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"


==============================
Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RVZcmp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
:header: "Configuration", "Implementation"

"CV32A60X", "Implemented extension"
"CV64A6_MMU", "Implemented extension"

**Note**: Zcmp is primarily targeted at embedded class CPUs due to implementation complexity. Additionally, it is not compatible with architecture class profiles.

Expand Down
1 change: 1 addition & 0 deletions docs/01_cva6_user/RISCV_Instructions_RVZicond.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

"CV32A60AX", "Implemented extension"
"CV32A60X", "Not implemented extension"
"CV64A6_MMU", "Not implemented extension"

**Note**: RV32Zicond and RV64Zicond are identical.

Expand Down
2 changes: 2 additions & 0 deletions docs/01_cva6_user/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ CVA6 User Manual
CV32A60X CSR Details <CSR_CV32A60X>
CV32A60AX CSR List <CSR_CV32A60AX_list>
CV32A60AX CSR Details <CSR_CV32A60AX>
CV64A6_MMU CSR List <CSR_CV64A6_MMU_list>
CV64A6_MMU CSR Details <CSR_CV64A6_MMU>
CV64A6 CSR <CV64A6_Control_Status_Registers>
CSR_Cache_Control
CSR Performance Counters <CSR_Performance_Counters>
Expand Down

0 comments on commit f446558

Please sign in to comment.