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

Merge dev-msft -> dev-integrate #393

Merged
merged 65 commits into from
Jan 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
8cfdb1f
Extend new APB defines in integration document
steven-bellock Nov 5, 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
0a512a7
initial markdown conversion of hardware spec
steph-morton Nov 21, 2023
63b2d54
updated property suite in hmac_drbg folder
sreevalsanatlubis Nov 23, 2023
8e014b6
Update doe branch
sandeepatlubis Nov 23, 2023
098067f
sha_masked property suite added to folder
sreevalsanatlubis Nov 23, 2023
0e6aec5
Merge pull request #1 from ludwigatlubis/doe
ludwigatlubis Nov 24, 2023
6c575b5
Merge pull request #2 from ludwigatlubis/hmac_drbg
ludwigatlubis Nov 24, 2023
ba30646
Added formal folder with readme and pdf
batthineniatlubis Nov 24, 2023
de0e219
updated readme file
sreevalsanatlubis Nov 24, 2023
dc12439
Merge pull request #3 from ludwigatlubis/ecc
ludwigatlubis Nov 24, 2023
2feb60d
Merge pull request #4 from ludwigatlubis/sha512_masked
ludwigatlubis Nov 24, 2023
532117f
Merge pull request #309 from chipsalliance/stephm-newdoc
andreslagarcavilla Nov 28, 2023
e181daf
Merge pull request #299 from chipsalliance/dev-integrate
andreslagarcavilla Dec 1, 2023
964f152
Merge pull request #320 from chipsalliance/main
calebofearth Dec 1, 2023
aa9c1b1
initial hwspec images
steph-morton Dec 4, 2023
7d0fe34
Merge pull request #313 from ludwigatlubis/main
andreslagarcavilla Dec 5, 2023
993cf5b
Merge pull request #327 from chipsalliance/stephm-hwspec-images
andreslagarcavilla Dec 7, 2023
244a9e6
Update per review feedback
steven-bellock Dec 8, 2023
aa57fc7
Remove HW spec PDF
calebofearth Dec 8, 2023
6db42a5
Update section heading indentation
calebofearth Dec 8, 2023
ff0e6cb
Update doc versions and release notes for 1.0-rc2 version
calebofearth Dec 8, 2023
2d35f44
Merge pull request #343 from chipsalliance/cwhitehead-msft-342
andreslagarcavilla Dec 8, 2023
d08edb9
Merge pull request #344 from chipsalliance/cwhitehead-msft-341
andreslagarcavilla Dec 9, 2023
da85b85
Merge pull request #285 from steven-bellock/update-apb
andreslagarcavilla Dec 9, 2023
631fa47
Update CaliptraIntegrationSpecification.md
Nitsirks Dec 11, 2023
e91e8ae
Update CaliptraIntegrationSpecification.md
Nitsirks Dec 11, 2023
fbacf72
Update CaliptraIntegrationSpecification.md
Nitsirks Dec 12, 2023
8b7d6c6
Update CaliptraIntegrationSpecification.md
Nitsirks Dec 12, 2023
2a77eee
Update CaliptraIntegrationSpecification.md
Nitsirks Dec 12, 2023
c4e556c
Merge pull request #349 from chipsalliance/Nitsirks-patch-1
andreslagarcavilla Dec 12, 2023
f28fb98
Merge pull request #353 from chipsalliance/main
calebofearth Dec 13, 2023
7376eca
Clean up document TODOs (#345)
calebofearth Dec 14, 2023
3f945e4
remove profile for 1.0 (#356)
steph-morton Dec 15, 2023
9e7f7f2
Specify TRNG timing requirement (#361)
andreslagarcavilla Dec 20, 2023
886805b
Expand details on iTRNG block and PTRNG source (#364)
andreslagarcavilla Jan 2, 2024
532fed5
Updated HW Integration Requirements (#357)
akash-singh-NV Jan 10, 2024
c11c661
Fix usage of RISC-V toolchain (#377)
robertszczepanski Jan 13, 2024
ba2eb28
Add RTL file list to be modified by integrators (#372)
calebofearth Jan 16, 2024
06f9e61
CI: use risc-v gcc 12.1.0 (#384)
kgugala Jan 18, 2024
7ef68fa
updated ECC keygen TVLA documentation (#381)
mojtaba-bisheh Jan 18, 2024
81965db
Update rc2 references to 1.0 final (#385)
calebofearth Jan 18, 2024
e815e54
Typo fix on release date (#387)
calebofearth Jan 18, 2024
91dde23
Merge pull request #388 from chipsalliance/main
calebofearth Jan 18, 2024
aacb888
Merged PR 137951: Increase ROM nightly regression timeout from 12 to …
calebofearth Dec 8, 2023
6b3f0f5
Merged PR 138140: Add delay to let KV writes finish before clear_secr…
Dec 11, 2023
fb854a2
Merged PR 138250: Patch for QVIP failure due to soc ifc arb perf bug
Nitsirks Dec 13, 2023
86d39ff
Merged PR 138791: [UVM] Fix a prediction bug that results in missed '…
calebofearth Dec 14, 2023
781db29
Merged PR 138845: Filesystem merge from caliptra-rtl GitHub to MSFT i…
calebofearth Dec 15, 2023
e6f173c
Merged PR 140496: [UVM] Testcase enhancements
calebofearth Dec 29, 2023
4b83147
Merged PR 140812: [UVM] Fix for stale error report during rst sequence
calebofearth Dec 29, 2023
f7cb22f
Merged PR 141156: Delayed prediction for clear_secrets reg
Jan 3, 2024
e3fc3b0
Merged PR 141380: [SVA] Add assertions for bus-idle condition during …
calebofearth Jan 4, 2024
ca09687
Merged PR 141389: Reenable cg tests in L0 regression
Jan 4, 2024
31c3fa7
Merged PR 142708: [Regression] Logging and disk space fixups
calebofearth Jan 10, 2024
29b8dc4
Add smoke_test_clk_gating yml file
calebofearth Jan 19, 2024
40a1136
Add environment variables for building Caliptra UVM testbench
calebofearth Jan 19, 2024
97000a0
Point to sglint waiver files in Microsoft Internal Build structure
calebofearth Jan 19, 2024
6cfcb48
Fix ref to run_test_makefile (MSFT internal tool)
calebofearth Jan 19, 2024
51240a2
Remove duplicate entry from file list
calebofearth Jan 19, 2024
7a84b7c
Merge pull request #389 from chipsalliance/dev-msft-20230118
calebofearth Jan 19, 2024
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
11 changes: 11 additions & 0 deletions .github/scripts/gdb_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@

SIM_LOG=`realpath sim.log`
OPENOCD_LOG=`realpath openocd.log`
GCC_PREFIX=riscv64-unknown-elf

# Ensure that RISC-V toolchain is installed
if ! which ${GCC_PREFIX}-gcc >/dev/null; then
GCC_PREFIX=riscv32-unknown-elf
fi
if ! which ${GCC_PREFIX}-gcc >/dev/null; then
echo "RISC-V toolchain not found, please refer to https:/chipsalliance/caliptra-rtl?tab=readme-ov-file#riscv-toolchain-installation for more details."
exit 1
fi
export GCC_PREFIX

set +e

Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/build-test-verilator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:
SCCACHE_GHA_CACHE_TO: sccache-verilator-10000
SCCACHE_GHA_CACHE_FROM: sccache-verilator-
# Change this to a new random value if you suspect the cache is corrupted
SCCACHE_C_CUSTOM_CACHE_BUSTER: f3e6951f0c1d
SCCACHE_C_CUSTOM_CACHE_BUSTER: f3e6951f0c1e

jobs:
build_tools:
Expand Down Expand Up @@ -101,9 +101,8 @@ jobs:
if: steps.riscv_restore.outputs.cache-hit != 'true'
run: |
# Building from source takes around 6.65 GB of disk and download size
wget -O toolchain.tar.gz https:/stnolting/riscv-gcc-prebuilt/releases/download/rv64imc-3.0.0/riscv64-unknown-elf.gcc-12.1.0.tar.gz
mkdir /opt/riscv
tar -xzf toolchain.tar.gz -C /opt/riscv/
wget -O toolchain.tar.gz https:/chipsalliance/caliptra-tools/releases/download/gcc-v12.1.0/riscv64-unknown-elf.gcc-12.1.0.tar.gz
tar -xzf toolchain.tar.gz -C /opt/

- name: Save riscv dir
uses: actions/cache/save@v3
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/interactive-debugging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
SCCACHE_GHA_CACHE_TO: sccache-verilator-10000
SCCACHE_GHA_CACHE_FROM: sccache-verilator-
# Change this to a new random value if you suspect the cache is corrupted
SCCACHE_C_CUSTOM_CACHE_BUSTER: f3e6951f0c1d
SCCACHE_C_CUSTOM_CACHE_BUSTER: f3e6951f0c1e

steps:
- name: Restore sccache binary
Expand Down Expand Up @@ -185,9 +185,8 @@ jobs:
- name: Install Risc V Toolchain
run: |
# Building from source takes around 6.65 GB of disk and download size
wget -O toolchain.tar.gz https:/stnolting/riscv-gcc-prebuilt/releases/download/rv64imc-3.0.0/riscv64-unknown-elf.gcc-12.1.0.tar.gz
mkdir /opt/riscv
tar -xzf toolchain.tar.gz -C /opt/riscv/
wget -O toolchain.tar.gz https:/chipsalliance/caliptra-tools/releases/download/gcc-v12.1.0/riscv64-unknown-elf.gcc-12.1.0.tar.gz
tar -xzf toolchain.tar.gz -C /opt/

- name: Install dependencies
run: |
Expand Down Expand Up @@ -268,9 +267,8 @@ jobs:
- name: Install Risc V Toolchain
run: |
# Building from source takes around 6.65 GB of disk and download size
wget -O toolchain.tar.gz https:/stnolting/riscv-gcc-prebuilt/releases/download/rv64imc-3.0.0/riscv64-unknown-elf.gcc-12.1.0.tar.gz
mkdir /opt/riscv
tar -xzf toolchain.tar.gz -C /opt/riscv/
wget -O toolchain.tar.gz https:/chipsalliance/caliptra-tools/releases/download/gcc-v12.1.0/riscv64-unknown-elf.gcc-12.1.0.tar.gz
tar -xzf toolchain.tar.gz -C /opt/

- name: Download Verilator binaries
uses: actions/download-artifact@v3
Expand Down
19 changes: 12 additions & 7 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/10/17*_
_*Last Update: 2024/01/17*_


## **Tools Used** ##
Expand Down Expand Up @@ -144,12 +144,12 @@ Verilog file lists are generated via VCS and included in the config directory fo
## **Simulation Flow** ##

### Caliptra Top VCS Steps: ###
1. Setup tools, add to PATH (ensure riscv64-unknown-elf-gcc is also available)
1. Setup tools, add to PATH (ensure RISC-V toolchain 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](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.
4. [OPTIONAL] By default, this run flow will use the RISC-V 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`
Expand All @@ -165,13 +165,13 @@ Verilog file lists are generated via VCS and included in the config directory fo
8. Simulate project with `caliptra_top_tb` as the top target

### Caliptra Top Verilator Steps: ###
1. Setup tools, add to PATH (ensure Verilator, GCC, and riscv64-unknown-elf-gcc are available)
1. Setup tools, add to PATH (ensure Verilator, GCC, and RISC-V toolchain 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.
4. [OPTIONAL] By default, this run flow will use the RISC-V 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.
5. Run Caliptra/tools/scripts/Makefile, which provides steps to run a top-level simulation in Verilator
- Example command:
`make -C <path/to/run/folder> -f ${CALIPTRA_ROOT}/tools/scripts/Makefile TESTNAME=${TESTNAME} debug=1 verilator`
Expand Down Expand Up @@ -208,7 +208,12 @@ The UVM Framework generation tool was used to create the baseline UVM testbench
- UVM 1.1d installation
- Mentor Graphics UVM-Framework installation

Steps:<BR>
**Environment Variables**:<BR>
`UVM_HOME`: Filesystem path to the parent directory containing SystemVerilog source code for the UVM library of the desired version.
`UVMF_HOME`: Filesystem path to the parent directory containing source code (uvmf_base_pkg) for the UVM Frameworks library, a tool available from Mentor Graphics for generating baseline UVM projects.
`QUESTA_MVC_HOME`: Filesystem path to the parent directory containing source code for Mentor Graphics QVIP, the verification library from which AHB/APB UVM agents are pulled in the Caliptra UVM environment.

**Steps:**<BR>
1. Compile UVM 1.1d library
1. Compile the AHB/APB QVIP source
1. Compile the Mentor Graphics UVM-Frameworks base library
Expand Down Expand Up @@ -244,7 +249,7 @@ The UVM Framework generation tool was used to create the baseline UVM testbench
- UVM 1.1d installation
- Mentor Graphics UVM-Framework installation

Steps:<BR>
**Steps:**<BR>
1. Compile UVM 1.1d library
1. Compile the AHB/APB QVIP source
1. Compile the Mentor Graphics UVM-Frameworks base library
Expand Down
32 changes: 26 additions & 6 deletions Release_Notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,33 @@ See the License for the specific language governing permissions and<BR>
limitations under the License.*_<BR>

# **Release Notes** #
_*Last Update: 2023/11/02*_
_*Last Update: 2024/01/18*_

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

### Rev 1p0-rc1 release date: 2023/11/03 (1p0 version pending ROM release for official declaration) ###
### Rev 1p0 release date: 2024/01/18 ###
- Caliptra Hardware Specification: Markdown conversion
- Caliptra Integration specification update with synthesis warnings and jtag tck requirement
- Caliptra README updates to clarify test cases and running with VCS
- Makefile updates to support DPI compilation in VCS
- Verification
- Adding ECC, DOE, HMAC_DRBG and SHA512_masked formal Assertion IP
- JTAG with clock gating test cases
- Fixes for UVM caliptra_top test scenarios
- Fixes for UVM KeyVault test scenarios
- Updated synthesis tool from Design Compiler to Fusion Compiler (sanity checks only)
- RTL
- Remove TODO comments on caliptra_top ports
- Remove JTAG IDCODE command from RISC-V processor

### Bug Fixes ###
[MBOX] Fix ICCM Uncorrectable ECC error driving hw_error_non_fatal bit for LSU reads

## Previous Releases ##

### Rev 1p0-rc1 ###

#### 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 Expand Up @@ -59,7 +81,7 @@ _*Last Update: 2023/11/02*_
- Automated GitHub action using OpenOCD for interactive JTAG debugging
- SHA Formal Verification

### Bug Fixes ###
#### Bug Fixes ####
[CLK GATING] Fatal error should wake up clks<br>
[CLK GATING] JTAG accesses need to wake up clocks<br>
[DOE] add zeroize to clear all internal regs<br>
Expand Down Expand Up @@ -114,8 +136,6 @@ _*Last Update: 2023/11/02*_
[RST] scan_mode should not corrupt resets<br>
[TOP] EL2 Mem interface is not instantiated with a modport at all levels

## Previous Releases ##

### Rev 0p8 ###

#### DISCALIMER: This is NOT A BUG-FREE MODEL YET. This is a 0p8 release model. Please see testplan document in docs folder to know the status of validation. ####
Expand Down
Loading