Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reintegrate main -> dev-goog #270

Merged
merged 123 commits into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
b473793
Add test for Mailbox JTAG accesses with clock gating
robertszczepanski Aug 24, 2023
321e7ae
Update on Readme
Sep 8, 2023
bd6d759
SHA 256 final
Sep 8, 2023
514a42e
update on readme
Sep 12, 2023
42de674
Added HMAC
Sep 12, 2023
797dda7
Updated coprights
ludwigatlubis Sep 13, 2023
5ff2cbc
Create Security and Response policy
FerralCoder Sep 28, 2023
fd73b54
Merge pull request #234 from chipsalliance/main
calebofearth Sep 30, 2023
5b2a0b2
Merged PR 124577: Fix WDT NMI prediction
upadhyayulakiran Sep 15, 2023
ecd5319
Merged PR 125379: added message reduction
mojtaba-bisheh Sep 20, 2023
86a41e6
Merged PR 125576: Increase WDT timer timeout value
upadhyayulakiran Sep 22, 2023
3c503cc
Merged PR 125587: KV clear prediction fix, debug x AHB sequence, conv…
upadhyayulakiran Sep 22, 2023
47b4ceb
Merged PR 126129: added failure in signing if generated signature has…
mojtaba-bisheh Sep 26, 2023
121689d
Merged PR 125683: Scan mode dft override and synchronizer removal
Nitsirks Sep 26, 2023
e39cc0b
Merged PR 126213: Check for pending t1 interrupt before changing time…
upadhyayulakiran Sep 26, 2023
a3c29b8
Merged PR 126577: Coverage merge all duts
Nitsirks Sep 29, 2023
2c300e0
Merged PR 126835: Fixing +COVERAGE compiles that broke after coverage…
Nitsirks Sep 29, 2023
e90baa9
Merged PR 127057: added a missing default case to hmac_drbg_interface
mojtaba-bisheh Oct 2, 2023
62cf3ce
Remove MSFT internal collateral files
calebofearth Oct 2, 2023
779dcee
Merge pull request #235 from chipsalliance/dev-msft-20231002
calebofearth Oct 3, 2023
4fb29d2
Merge pull request #236 from chipsalliance/dev-msft
calebofearth Oct 3, 2023
5608dfa
Merge pull request #238 from chipsalliance/main
calebofearth Oct 3, 2023
cd79995
Merge pull request #239 from chipsalliance/dev-goog
calebofearth Oct 3, 2023
098ef07
Merge pull request #233 from chipsalliance/lferraro_PSIRT
pkwidzin-amd Oct 4, 2023
0c837bf
Merge pull request #240 from chipsalliance/dev-integrate
bharatpillilli Oct 4, 2023
f34255e
Merge pull request #241 from chipsalliance/main
calebofearth Oct 5, 2023
4834f1c
Merged PR 127071: UVM validation FW fix - check/clear error interrupt…
calebofearth Oct 2, 2023
e92adc5
Merged PR 127106: Fix rd_data cg instantiation
upadhyayulakiran Oct 3, 2023
bac4890
Merged PR 127097: More fixes to coverage merging
Nitsirks Oct 3, 2023
677aea2
Merged PR 127448: MSFT sync: Manual file-copy from GH dev-integrate t…
calebofearth Oct 5, 2023
9faace5
Merged PR 127773: Adding caliptra top tb directed regression to cover…
Nitsirks Oct 6, 2023
94ae9e9
Merged PR 127232: UVM fix for soc_ifc_rand_test deadlock edge case
calebofearth Oct 6, 2023
5b1a68f
Merged PR 127980: Fixing MBOX spurious double ecc error
Nitsirks Oct 6, 2023
94d1a60
Merged PR 128205: UVM regression fix for multi-agent arb issue, force…
calebofearth Oct 9, 2023
9d106cd
Merged PR 127470: Disable timers after first timeout before NMI check
upadhyayulakiran Oct 10, 2023
3d18311
Merged PR 128247: [UVM] Fixes in val env. for several regression fail…
calebofearth Oct 12, 2023
d7c4dcc
Merged PR 128855: [Bug fix] Mailbox rd_valid_f signal rst/init value;…
calebofearth Oct 13, 2023
822092f
Remove integ spec PDF as we migrate to Markdown format
calebofearth Oct 17, 2023
77a85df
README updates:
calebofearth Oct 17, 2023
396e5b9
Formatting
calebofearth Oct 17, 2023
1be2d3d
Formatting
calebofearth Oct 17, 2023
bb8288d
Formatting
calebofearth Oct 17, 2023
7a22a64
Formatting
calebofearth Oct 17, 2023
1b3e919
Formatting
calebofearth Oct 17, 2023
c54c3ec
README: Tool version info
calebofearth Oct 17, 2023
751abe7
Merge pull request #253 from chipsalliance/dev-goog
calebofearth Oct 20, 2023
3fed8d2
Merge pull request #252 from chipsalliance/dev-msft-20231017
calebofearth Oct 20, 2023
28adde5
Merge pull request #254 from chipsalliance/dev-msft
calebofearth Oct 21, 2023
c77faf0
initial markdown conversion
steph-morton Oct 24, 2023
3d1fb9f
Merge pull request #205 from ludwigatlubis/main
andreslagarcavilla Oct 25, 2023
5eb4852
Merge pull request #197 from antmicro/rszc/jtag-cg-test
andreslagarcavilla Oct 25, 2023
a11b2f3
Merge pull request #255 from chipsalliance/dev-integrate
andreslagarcavilla Oct 25, 2023
7d9703d
minor updates based on feedback
steph-morton Oct 25, 2023
347600a
Merge pull request #258 from chipsalliance/main
calebofearth Oct 26, 2023
e8e5a41
Merge pull request #256 from chipsalliance/stephm-newdoc
andreslagarcavilla Oct 26, 2023
8798526
add images and image references
steph-morton Nov 1, 2023
5c66ed0
Update Caliptra_rtl.md
Nitsirks Nov 1, 2023
f8993b4
Merged PR 129340: KV debug test update and other misc items
upadhyayulakiran Oct 24, 2023
e0f658f
Merged PR 130632: Remove common_defines from clk_gate
upadhyayulakiran Oct 24, 2023
955d03b
Merged PR 130640: Small coverage improvements and adding directed tb …
Nitsirks Oct 24, 2023
31da078
Merged PR 130547: UVM val FW bug fix to resolve regression failure
calebofearth Oct 24, 2023
f7daac8
Merged PR 131583: Regression test list typo fix
calebofearth Oct 30, 2023
c932181
Merged PR 131385: fix for req hold bug, issue 259
Nitsirks Oct 31, 2023
64888d3
Merged PR 131836: Include config_defines in clk_gate
upadhyayulakiran Oct 31, 2023
b6e79dc
Merged PR 131898: RDL register description updates and fix for UVM pr…
calebofearth Nov 1, 2023
4631e4f
Merge pull request #267 from chipsalliance/stephm-addimages
andreslagarcavilla Nov 1, 2023
1448b38
Merge pull request #269 from chipsalliance/dev-msft-20231101
calebofearth Nov 1, 2023
229ff7a
Merge pull request #271 from chipsalliance/dev-msft
calebofearth Nov 2, 2023
d652e01
Merge pull request #268 from chipsalliance/michnorris-msft-issue266
andreslagarcavilla Nov 2, 2023
2f101fb
Camel case for markdown docs
andreslagarcavilla Nov 2, 2023
0e050e9
Merged PR 132089: fixing wait count, worst case is actually 33 for di…
Nitsirks Nov 1, 2023
92c6aea
Merged PR 132153: TB Fix: soc_ifc_tb standalone test is incorrectly c…
calebofearth Nov 2, 2023
b29d967
Merge pull request #272 from andreslagarcavilla/docs
andreslagarcavilla Nov 2, 2023
4130f93
Fix mv path
andreslagarcavilla Nov 2, 2023
a1035bd
Merge pull request #274 from andreslagarcavilla/docs
andreslagarcavilla Nov 2, 2023
ef953f9
Clarify eTRNG usage
andreslagarcavilla Nov 2, 2023
b54911f
Language: RNG -> TRNG
andreslagarcavilla Nov 2, 2023
447bf27
Update integ spec to 0.9 version; rollback release notes to reflect 0…
calebofearth Nov 3, 2023
f86a38d
Language, simplification
andreslagarcavilla Nov 3, 2023
92876e1
Merge pull request #273 from chipsalliance/dev-msft-20231102
calebofearth Nov 3, 2023
452e187
Version docs at 1.0-rc1
calebofearth Nov 3, 2023
9983f6c
Update CaliptraIntegrationSpecification.md
Nitsirks Nov 3, 2023
bc8642f
Merge pull request #277 from chipsalliance/dev-msft
calebofearth Nov 3, 2023
7c3e295
Merge pull request #275 from andreslagarcavilla/docs
andreslagarcavilla Nov 3, 2023
2b21b0d
Update CaliptraIntegrationSpecification.md
Nitsirks Nov 3, 2023
45a095b
RDL: Add RNG unavail bit to dbg manuf reg description (#283)
calebofearth Nov 3, 2023
1af0865
Merge pull request #279 from chipsalliance/michnorris-msft-issue278
andreslagarcavilla Nov 4, 2023
6ed6523
Merge pull request #281 from chipsalliance/dev-integrate
andreslagarcavilla Nov 7, 2023
020d315
Merge pull request #276 from chipsalliance/cwhitehead-msft-issue263
andreslagarcavilla Nov 7, 2023
b0a25ba
Merge pull request #286 from chipsalliance/main
calebofearth Nov 10, 2023
fa5e334
Merged PR 132462: [UVM] Fix for regression failure caused by soc_ifc …
calebofearth Nov 3, 2023
052c39e
Merged PR 133196: KV test content for coverage
upadhyayulakiran Nov 8, 2023
c3b817d
Merged PR 132944: UVM val firmware bug fix: solve a possible error ra…
calebofearth Nov 8, 2023
86d6ecf
Merged PR 133433: Add SV assertions to uvmf_caliptra_top testbench
calebofearth Nov 9, 2023
7c49c8c
Merged PR 133575: Remove top port TODO comments
calebofearth Nov 10, 2023
7a499fa
Spec update with synthesis warnings and jtag tck requirement
Nov 10, 2023
869c44f
Added some more description
Nov 13, 2023
5bbdd26
Apply suggestion from review
Nov 13, 2023
fd928d2
Remove accidentally placed description
Nov 13, 2023
63ad025
Merge pull request #292 from chipsalliance/kupadhyayula-msft-integ-sp…
bharatpillilli Nov 13, 2023
81a774b
Merge pull request #293 from chipsalliance/dev-msft-20231110
calebofearth Nov 13, 2023
1ce9ea6
Update expected mailbox rdptr value
mkurc-ant Nov 14, 2023
f12c8fe
Merge pull request #296 from chipsalliance/dev-msft
calebofearth Nov 14, 2023
4a89cff
Remove I3C interface placeholder comment (#300)
calebofearth Nov 15, 2023
674ac5f
Merge pull request #302 from antmicro/mkurc/fix-mailbox-test
mcockrell-google Nov 16, 2023
986b12a
Remove support for JTAG read IDCODE instruction from VeeR TAP
mkurc-ant Nov 14, 2023
cf4903d
Remove expected IDCODE from OpenOCD config
mkurc-ant Nov 14, 2023
7589fe4
Merge pull request #298 from antmicro/mkurc/remove-idcode
kgugala Nov 21, 2023
0a512a7
initial markdown conversion of hardware spec
steph-morton Nov 21, 2023
eeb0a57
[README] Update VCS steps (#308)
calebofearth Nov 22, 2023
532117f
Merge pull request #309 from chipsalliance/stephm-newdoc
andreslagarcavilla Nov 28, 2023
63a40f0
Fix VCS invocation in Makefile so that DPI functions get compiled. (#…
mkurc-ant Nov 30, 2023
8173b30
Merged PR 133861: Filesystem merge from caliptra-rtl GitHub to MSFT i…
calebofearth Nov 14, 2023
3cc699b
Commit minor tweaks to sync infrastructure with MSFT internal repo (h…
calebofearth Nov 30, 2023
38d5fd7
Merged PR 134395: KV UVM fixes
upadhyayulakiran Nov 15, 2023
a622696
Merged PR 134100: Update synthesis script with FC commands
upadhyayulakiran Nov 15, 2023
340a3cd
Merged PR 134598: UVM regression fixes for soc_ifc deadlock and AHB s…
calebofearth Nov 17, 2023
c5884b8
Merged PR 134981: Update kv scan sequence
upadhyayulakiran Nov 18, 2023
15acd7b
Merged PR 136182: Fix ICCM ECC error not reported
calebofearth Nov 30, 2023
5bdfabd
Merge pull request #318 from chipsalliance/dev-msft-20231130
calebofearth Dec 1, 2023
c1ad07c
Merge pull request #319 from chipsalliance/dev-msft
calebofearth Dec 1, 2023
9082743
Merge pull request #310 from chipsalliance/dev-public
calebofearth Dec 1, 2023
e181daf
Merge pull request #299 from chipsalliance/dev-integrate
andreslagarcavilla Dec 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/interactive-debugging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -315,3 +315,19 @@ jobs:
${CALIPTRA_ROOT}/.github/scripts/openocd_test.sh \
-f board/caliptra-verilator-rst.cfg \
-f ${CALIPTRA_ROOT}/src/integration/test_suites/infinite_loop/peripheral_access.tcl

- name: Build Verilated simulation
run: |
export CALIPTRA_ROOT=$(pwd)
rm -rf run/*
make -C run -f ${CALIPTRA_ROOT}/tools/scripts/Makefile verilator-build TESTNAME=infinite_loop DEBUG_UNLOCKED=1 \
OBJCACHE="" CC=gcc CXX=g++ LINK=g++
make -C run -f ${CALIPTRA_ROOT}/tools/scripts/Makefile program.hex TESTNAME=infinite_loop

- name: Test JTAG access with clock gating
run: |
export CALIPTRA_ROOT=$(pwd)
cd run
${CALIPTRA_ROOT}/.github/scripts/openocd_test.sh \
-f board/caliptra-verilator.cfg \
-f ${CALIPTRA_ROOT}/src/integration/test_suites/infinite_loop/jtag_cg.tcl
119 changes: 102 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and<BR>
limitations under the License.*_<BR>

# **Caliptra Hands-On Guide** #
_*Last Update: 2023/09/06*_
_*Last Update: 2023/10/17*_


## **Tools Used** ##
Expand All @@ -37,10 +37,12 @@ Simulation:
- `Version 2021.2.1` of AHB/APB models
- UVM installation
- `Version 1.1d`
- Mentor Graphics UVM-Frameworks
- `2022.3`

Synthesis:
- Synopsys DC
- `Version 2020.09-SP1`
- Synopsys Fusion Compiler
- `Version 2022.12-SP3`

GCC:
- RISCV Toolchain for generating memory initialization files
Expand All @@ -53,7 +55,7 @@ Other:
- Playbook (Microsoft Internal workflow management tool)

### **RISCV Toolchain installation** ###
Note that there is significant configurability when installing the RISCV toolchain.
There is significant configurability when installing the RISCV toolchain.
These instructions may be used to create a RISCV installation that will be compatible
with the provided Makefile for compiling test C programs.

Expand All @@ -72,7 +74,7 @@ Required for simulation:<BR>
`CALIPTRA_ROOT`: Defines the absolute path to the Project repository root (called "Caliptra" or "caliptra-rtl"). Recommended to define as `${CALIPTRA_WORKSPACE}/Caliptra`.<BR>

Required for Firmware (i.e. Test suites) makefile:<BR>
`TESTNAME`: Contains the name of one of the tests listed inside the `src/integration/test_suites` folder<BR>
`TESTNAME`: Contains the name of one of the tests listed inside the `src/integration/test_suites` folder; only used for `caliptra_top_tb` tests<BR>

## **Repository Overview** ##
```
Expand Down Expand Up @@ -121,6 +123,9 @@ VF files provide absolute filepaths (prefixed by the `CALIPTRA_ROOT` environment
The "Integration" sub-component contains the top-level fileset for Caliptra. `src/integration/config/compile.yml` defines the required filesets and sub-component dependencies for this build target. All of the files/dependencies are explicitly listed in `src/integration/config/caliptra_top_tb.vf`. Users may compile the entire design using only this VF filelist.<BR>


## **Verilog File Lists** ##
Verilog file lists are generated via VCS and included in the config directory for each unit. New files added to the design should be included in the vf list. They can be included manually or by using VCS to regenerate the vf file. File lists define the compilation sources (including all dependencies) required to build and simulate a given module or testbench, and should be used for simulation, lint, and synthesis.

## **Scripts Description** ##

`demo.rdl`:Sample RDL file<BR>
Expand All @@ -138,21 +143,32 @@ The "Integration" sub-component contains the top-level fileset for Caliptra. `sr

## **Simulation Flow** ##

### VCS Steps: ###
### Caliptra Top VCS Steps: ###
1. Setup tools, add to PATH (ensure riscv64-unknown-elf-gcc is also available)
2. Define all environment variables above
- For the initial test run after downloading repository, `iccm_lock` is recommended for TESTNAME
- See [Regression Tests](#Regression-Tests) for information about available tests.
3. Create a run folder for build outputs (and cd to it)
4. [OPTIONAL] By default, this run flow will use the riscv64 toolchain to compile test firmware (according to TESTNAME) into program.hex, iccm.hex, dccm.hex, and mailbox.hex. As a first pass, integrators may alternatively use the pre-built hexfiles for convenience (available for `iccm_lock` test). To do this, copy `iccm_lock.hex` to the run directory and rename to `program.hex`. `dccm.hex` should also be copied to the run directory, as-is. Use `touch iccm.hex mailbox.hex` to create empty hex files, as these are unnecessary for `iccm_lock` test.
4. [OPTIONAL] By default, this run flow will use the riscv64 toolchain to compile test firmware (according to TESTNAME) into program.hex, iccm.hex, dccm.hex, and mailbox.hex. As a first pass, integrators may alternatively use the pre-built hexfiles for convenience (available for [iccm_lock](src/integration/test_suites/iccm_lock) test). To do this, copy [iccm_lock.hex](src/integration/test_suites/iccm_lock/iccm_lock.hex) to the run directory and rename to `program.hex`. [dccm.hex](src/integration/test_suites/iccm_lock/iccm_lock.hex) should also be copied to the run directory, as-is. Use `touch iccm.hex mailbox.hex` to create empty hex files, as these are unnecessary for `iccm_lock` test.
5. Invoke `${CALIPTRA_ROOT}/tools/scripts/Makefile` with target 'program.hex' to produce SRAM initialization files from the firmware found in `src/integration/test_suites/${TESTNAME}`
- E.g.: `make -f ${CALIPTRA_ROOT}/tools/scripts/Makefile program.hex`
- NOTE: TESTNAME may also be overridden in the makefile command line invocation, e.g. `make -f ${CALIPTRA_ROOT}/tools/scripts/Makefile TESTNAME=iccm_lock program.hex`
6. Compile complete project using `src/integration/config/caliptra_top_tb.vf` as a compilation target in VCS. When running the `vcs` command to generate simv, users should ensure that `caliptra_top_tb` is explicitly specified as the top-level component in their command to ensure this is the sole "top" that gets simulated.
7. Simulate project with `caliptra_top_tb` as the top target
7. Copy the test generator scripts to the run output directory:
- [src/ecc/tb/ecdsa_secp384r1.exe](src/ecc/tb/ecdsa_secp384r1.exe)
* Necessary for [randomized_pcr_signing](src/integration/test_suites/randomized_pcr_signing)
* OPTIONAL otherwise
- [src/doe/tb/doe_test_gen.py](src/doe/tb/doe_test_gen.py)
* Allows use of randomized secret field inputs during testing.
* Required when using the `+RAND_DOE_VALUES` plusarg during simulation
* Also required for several smoke tests that require randomized DOE IV, such as smoke_test_doe_scan, smoke_test_doe_rand, smoke_test_doe_cg
8. Simulate project with `caliptra_top_tb` as the top target

### Verilator Steps: ###
### Caliptra Top Verilator Steps: ###
1. Setup tools, add to PATH (ensure Verilator, GCC, and riscv64-unknown-elf-gcc are available)
2. Define all environment variables above
- For the initial test run after downloading repository, `iccm_lock` is recommended for TESTNAME
- See [Regression Tests](#Regression-Tests) for information about available tests.
3. Create a run folder for build outputs
- Recommended to place run folder under `${CALIPTRA_WORKSPACE}/scratch/$USER/verilator/<date>`
4. [OPTIONAL] By default, this run flow will use the riscv64 toolchain to compile test firmware (according to TESTNAME) into program.hex, iccm.hex, dccm.hex, and mailbox.hex. As a first pass, integrators may alternatively use the pre-built hexfiles for convenience (available for `iccm_lock` test). To do this, copy `iccm_lock.hex` to the run directory and rename to `program.hex`. `dccm.hex` should also be copied to the run directory, as-is. Use `touch iccm.hex mailbox.hex` to create empty hex files, as these are unnecessary for `iccm_lock` test.
Expand All @@ -170,6 +186,18 @@ The "Integration" sub-component contains the top-level fileset for Caliptra. `sr
3. NOTE: The script automatically creates run output folders at `${CALIPTRA_WORKSPACE}/scratch/$USER/verilator/<timestamp>/<testname>` for each test run
4. NOTE: The output folder is populated with a run log that reports the run results and pass/fail status

### Unit Test VCS Steps: ###
1. Setup tools, add to PATH
1. Define all environment variables above
1. Create a run folder for build outputs (and cd to it)
1. Compile complete project using `src/<block>/config/<name>_tb.vf` as a compilation target in VCS. When running the `vcs` command to generate simv, users should ensure that `<name>_tb` is explicitly specified as the top-level component in their command to ensure this is the sole "top" that gets simulated.
1. Copy the test generator scripts or test vectors to the run output directory:
- [src/ecc/tb/test_vectors/mm_test_vectors\*.hex](src/ecc/tb/test_vectors)
* Necessary for [ecc_montgomerymultiplier_tb](src/ecc/tb/ecc_montgomerymultiplier_tb.sv)
- [src/sha256/tb/sha256_test_gen.py](src/sha256/tb/sha256_test_gen.py)
* Necessary for [sha256_random_test](src/sha256/tb/sha256_random_test.sv)
1. Simulate project with `<name>_tb` as the top target

### UVM Testbench Steps for `caliptra_top`: <BR>

**Description**:<BR>
Expand All @@ -178,20 +206,77 @@ The UVM Framework generation tool was used to create the baseline UVM testbench
**Prerequisites**:<BR>
- QVIP 2021.2.1 for Mentor Graphics (provides the AHB/APB VIP)
- UVM 1.1d installation
- Mentor Graphics UVM-Framework installation

Steps:<BR>
1. Compile UVM 1.1d library
2. Compile the AHB/APB QVIP source
3. Compile the UVMF wrapper for APB/AHB in Caliptra/src/libs/uvmf
4. Compile the `verification_ip` provided for `soc_ifc` found in `Caliptra/src/soc_ifc/uvmf_soc_ifc`
5. Compile the `caliptra_top` testbench found in `Caliptra/src/integration/uvmf_caliptra_top`
6. `Caliptra/src/integration/uvmf_caliptra_top/uvmf_template_output/project_benches/caliptra_top/tb/testbench/hdl_top.sv` is the top-level TB wrapper for the system
7. Select a test to run from the set of tests in `Caliptra/src/integration/uvmf_caliptra_top/uvmf_template_output/project_benches/caliptra_top/tb/tests/src`
8. Provide `+UVM_TESTNAME=<test>` argument to simulation
1. Compile the AHB/APB QVIP source
1. Compile the Mentor Graphics UVM-Frameworks base library
1. Compile the UVMF wrapper for APB/AHB in Caliptra/src/libs/uvmf
1. Compile the `verification_ip` provided for `soc_ifc` found in `Caliptra/src/soc_ifc/uvmf_soc_ifc`
1. Compile the `caliptra_top` testbench found in `Caliptra/src/integration/uvmf_caliptra_top`
1. ALL compilation steps may be completed by using the file-list found at `src/integration/uvmf_caliptra_top/config/uvmf_caliptra_top.vf`
1. NOTE: `Caliptra/src/integration/uvmf_caliptra_top/uvmf_template_output/project_benches/caliptra_top/tb/testbench/hdl_top.sv` is the top-level TB wrapper for the system
1. Compile the validation firmware (as described in [Regression Tests](#Regression-Tests)) that will run on Caliptra's embedded RISC-V core
- The expected output products are `program.hex`, `caliptra_fmc.hex`, `caliptra_rt.hex` and must be placed in the simulation run directory
- `make -f ${CALIPTRA_ROOT}/tools/scripts/Makefile TESTNAME=caliptra_top program.hex`
- `make -f ${CALIPTRA_ROOT}/tools/scripts/Makefile TESTNAME=caliptra_fmc caliptra_fmc.hex`
- `make -f ${CALIPTRA_ROOT}/tools/scripts/Makefile TESTNAME=caliptra_rt caliptra_rt.hex`
1. Copy the test vectors to the run output directory:
- [src/sha512/tb/vectors/SHA\*.rsp](src/sha512/tb/vectors/)
* Required for SHA512 UVM unittest
1. Select a test to run from the set of tests in `Caliptra/src/integration/uvmf_caliptra_top/uvmf_template_output/project_benches/caliptra_top/tb/tests/src`
1. Provide `+UVM_TESTNAME=<test>` argument to simulation

### UVM Unit Test Steps: <BR>

**Description**:<BR>
The UVM Framework generation tool was used to create the baseline UVM testbench for verification of each IP component inside Caliptra. The following IP blocks have supported UVM testbenches:
- [ECC](src/ecc/uvmf_ecc)
- [HMAC](src/hmac/uvmf_2022)
- [SHA512](src/sha512/uvmf_sha512)
- [KeyVault](src/keyvault/uvmf_kv)
- [PCRVault](src/pcrvault/uvmf_pv)
- [SOC_IFC](src/soc_ifc/uvmf_soc_ifc)

**Prerequisites**:<BR>
- QVIP 2021.2.1 for Mentor Graphics (provides the AHB/APB VIP)
- UVM 1.1d installation
- Mentor Graphics UVM-Framework installation

Steps:<BR>
1. Compile UVM 1.1d library
1. Compile the AHB/APB QVIP source
1. Compile the Mentor Graphics UVM-Frameworks base library
1. Compile the UVMF wrapper for APB/AHB in Caliptra/src/libs/uvmf
1. Compile the `verification_ip` provided for the target testbench
1. ALL compilation steps may be completed by using the file-list found at `src/<block>/uvmf_<name>/config/<name>.vf`
1. NOTE: `Caliptra/src/<block>/uvmf_<name>/uvmf_template_output/project_benches/<block>/tb/testbench/hdl_top.sv` is the top-level TB wrapper for the system
1. Copy the test generator scripts to the run output directory:
- [src/ecc/tb/ecdsa_secp384r1.exe](src/ecc/tb/ecdsa_secp384r1.exe)
* Necessary for ECC unittest
- [src/hmac/tb/test_gen.py](src/hmac/tb/test_gen.py)
* Required for uvmf_hmac unittest
- [src/sha512/tb/vectors/SHA\*.rsp](src/sha512/tb/vectors/)
* Required for SHA512 UVM unittest
1. Select a test to run from the set of tests in `Caliptra/src/<block>/uvmf_<name>/uvmf_template_output/project_benches/<block>/tb/tests/src`
1. Provide `+UVM_TESTNAME=<test>` argument to simulation


## **Regression Tests** ##

Only tests from the L0 Regression List should be run.
### Standalone SystemVerilog Testbench Regression ###
Only tests from the L0 Regression List should be run.
The list is defined in the file [L0_regression.yml](https://github.com/chipsalliance/caliptra-rtl/blob/main/src/integration/stimulus/L0_regression.yml)

### UVM Regression ###
The UVM simulation environment for `caliptra_top` uses a special set of validation firmware to generate stimulus as required for the test plan. This firmware suite is found in `src/integration/test_suites` and includes:
- `caliptra_top`: A C-based program that emulates a minimal set of bringup functions similar to the function of the ROM. This C file transitions very early to either a the FMC image or Runtime image based on bringup (reset reason) conditions.
- `caliptra_fmc`: A C-based program that emulates the functionality of the First Mutable Code. In this reduced-functionality validation implementation, the FMC code is a simple intermediary that runs from ICCM and serves to boot the Runtime Firmware.
- `caliptra_rt`: A C-based program that emulates the functionality of the production Runtime code. This program receives and services interrupts, defines a minimal Non-Maskable Interrupt handler, generates FW resets as needed, processes mailbox commands (generated through the UVM validation test plan), and runs some baseline Watchdog Timer testing.

These three programs are designed to be run within the context of a UVM simulation, and will fail to generate meaningful stimulus in the standalone `caliptra_top_tb` test.

## **NOTES** ##

* The internal registers are auto rendered at the [GitHub page](https://chipsalliance.github.io/caliptra-rtl/main/internal-regs)
Expand Down
6 changes: 3 additions & 3 deletions Release_Notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ See the License for the specific language governing permissions and<BR>
limitations under the License.*_<BR>

# **Release Notes** #
_*Last Update: 2023/09/13*_
_*Last Update: 2023/11/02*_

## Rev 1p0 ##
## Rev 1p0-rc1 ##

### Rev 1p0 release date: (pending ROM release for official declaration) ###
### Rev 1p0-rc1 release date: 2023/11/03 (1p0 version pending ROM release for official declaration) ###
- Caliptra IP Specification: see docs/ folder
- Caliptra Integration Specification: see docs/ folder
- Caliptra testplan: see docs/ folder
Expand Down
3 changes: 3 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Caliptra Project Security Incident Response

Please refer to the security policy at [Caliptra security policy](https://github.com/chipsalliance/caliptra/security/policy).
Loading