diff --git a/.github/workflow_metadata/pr_hash b/.github/workflow_metadata/pr_hash index 3e01ea156..7e2f52e20 100644 --- a/.github/workflow_metadata/pr_hash +++ b/.github/workflow_metadata/pr_hash @@ -1 +1 @@ -6f53f3666bc76e0fa0332a9b43ad489b3d9b84e20d5b7a4e4d100a2ebeaa4a0dd7f278a183f1561d56d8db4f18aa89b5 \ No newline at end of file +574a735cf65ff51ece060808ab7441b72ead1b14e694952eff81517d64532e0a8516e4249f546a02cbb4933edfc93d3e \ No newline at end of file diff --git a/.github/workflow_metadata/pr_timestamp b/.github/workflow_metadata/pr_timestamp index da83d3552..28c5b045a 100644 --- a/.github/workflow_metadata/pr_timestamp +++ b/.github/workflow_metadata/pr_timestamp @@ -1 +1 @@ -1755057607 \ No newline at end of file +1755646446 \ No newline at end of file diff --git a/config/compilespecs.yml b/config/compilespecs.yml index 50f0cbc5d..7e2aed99d 100644 --- a/config/compilespecs.yml +++ b/config/compilespecs.yml @@ -20,6 +20,7 @@ files: - third_party/caliptra-rtl/src/riscv_core/veer_el2/config/compile.yml - third_party/caliptra-rtl/src/sha512/config/compile.yml - third_party/caliptra-rtl/src/sha256/config/compile.yml + - third_party/caliptra-rtl/src/sha3/config/compile.yml - third_party/caliptra-rtl/src/doe/config/compile.yml - third_party/caliptra-rtl/src/hmac/config/compile.yml - third_party/caliptra-rtl/src/soc_ifc/config/compile.yml @@ -51,7 +52,10 @@ files: - third_party/caliptra-rtl/submodules/adams-bridge/src/rej_bounded/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/exp_mask/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/sample_in_ball/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/cbd_sampler/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/decompose/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/compress/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/decompress/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/sk_encode/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/sk_decode/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/makehint/config/compile.yml @@ -61,11 +65,12 @@ files: - third_party/caliptra-rtl/submodules/adams-bridge/src/sigdecode_h/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/pk_decode/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/power2round/config/compile.yml - - third_party/caliptra-rtl/submodules/adams-bridge/src/mldsa_sampler_top/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/abr_sampler_top/config/compile.yml - third_party/caliptra-rtl/submodules/adams-bridge/src/ntt_top/config/compile.yml - - third_party/caliptra-rtl/submodules/adams-bridge/src/mldsa_top/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/barrett_reduction/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/abr_top/config/compile.yml # UVMF TBs - - third_party/caliptra-rtl/submodules/adams-bridge/src/mldsa_top/uvmf/config/compile.yml + - third_party/caliptra-rtl/submodules/adams-bridge/src/abr_top/uvmf/config/compile.yml # UVMF TBs # - third_party/caliptra-rtl/src/aes_secworks/uvmf_cbc_AllKAT/config/compile.yml diff --git a/docs/CaliptraSSIntegrationSpecification.md b/docs/CaliptraSSIntegrationSpecification.md index 7453568ac..01668d461 100644 --- a/docs/CaliptraSSIntegrationSpecification.md +++ b/docs/CaliptraSSIntegrationSpecification.md @@ -282,6 +282,9 @@ File at this path in the repository includes parameters and defines for Caliptra | External | input | 32 | `cptra_ss_strap_generic_2_i` | Generic strap input 2 | | External | input | 32 | `cptra_ss_strap_generic_3_i` | Generic strap input 3 | | External | input | 1 | `cptra_ss_debug_intent_i` | Physical presence bit required to initiate the debug unlock flow. For more details, refer to the [Production Debug Unlock Flow](CaliptraSSHardwareSpecification.md#production-debug-unlock-architecture) and [How does Caliptra Subsystem enable manufacturing debug mode?](CaliptraSSHardwareSpecification.md#how-does-caliptra-subsystem-enable-manufacturing-debug-mode). For SOCs that choose to use these features, this port should be connected to a GPIO| +| External | input | 16 | `cptra_ss_strap_key_release_key_size_i` | OCP L.O.C.K. MEK byte size. Expected to be 0x40. | +| External | input | 64 | `cptra_ss_strap_key_release_base_addr_i` | OCP L.O.C.K. MEK release base address. | +| External | input | 1 | `cptra_ss_strap_ocp_lock_en_i | OCP L.O.C.K. enable. Allows OCP L.O.C.K. in progress to be set enabling hardware features specific to OCP L.O.C.K. such as AES Keyvault write path, Keyvault filtering rules, and Key Release via AXI DMA. | ### AXI Interface (axi_if) diff --git a/src/fuse_ctrl/coverage/fuse_ctrl_cov_if.sv b/src/fuse_ctrl/coverage/fuse_ctrl_cov_if.sv index 650728719..e3be3f896 100644 --- a/src/fuse_ctrl/coverage/fuse_ctrl_cov_if.sv +++ b/src/fuse_ctrl/coverage/fuse_ctrl_cov_if.sv @@ -37,8 +37,8 @@ interface fuse_ctrl_cov_if logic [31:0] core_axi_wr_req_awaddr; logic [31:0] core_axi_wr_req_awuser; - assign core_axi_wr_req_awaddr = fuse_ctrl_filter.core_axi_wr_req.awaddr; - assign core_axi_wr_req_awuser = fuse_ctrl_filter.core_axi_wr_req.awuser; + assign core_axi_wr_req_awaddr = caliptra_ss_top_tb.caliptra_ss_dut.u_otp_ctrl.u_fuse_ctrl_filter.core_axi_wr_req.awaddr; + assign core_axi_wr_req_awuser = caliptra_ss_top_tb.caliptra_ss_dut.u_otp_ctrl.u_fuse_ctrl_filter.core_axi_wr_req.awuser; covergroup fuse_ctrl_filter_cg @(posedge clk_i); option.per_instance = 1; diff --git a/src/integration/config/caliptra_ss_top.vf b/src/integration/config/caliptra_ss_top.vf index e132acd37..50039b0dc 100644 --- a/src/integration/config/caliptra_ss_top.vf +++ b/src/integration/config/caliptra_ss_top.vf @@ -230,9 +230,9 @@ ${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv ${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv ${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_keymgr_pkg.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_reg_pkg.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_reg_pkg.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3_pkg.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_pkg.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_pkg.sv ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl/axi_pkg.sv ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl/axi_if.sv ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl/axi_addr.v @@ -304,14 +304,14 @@ ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_keccak_2share.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_keccak_round.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3pad.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_app.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_core.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_entropy.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_errchk.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_msgfifo.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_reg_top.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_staterd.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_app.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_core.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_entropy.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_errchk.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_msgfifo.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_reg_top.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_staterd.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_fsm.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_reg_top.sv diff --git a/src/integration/config/caliptra_ss_top_tb.vf b/src/integration/config/caliptra_ss_top_tb.vf index 8f3b1d202..0233dfd3c 100644 --- a/src/integration/config/caliptra_ss_top_tb.vf +++ b/src/integration/config/caliptra_ss_top_tb.vf @@ -707,9 +707,9 @@ ${CALIPTRA_SS_ROOT}/src/tlul/rtl/tlul_pkg.sv ${CALIPTRA_SS_ROOT}/src/tlul/rtl/tlul_assert_multiple.sv ${CALIPTRA_SS_ROOT}/src/tlul/rtl/tlul_assert.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_keymgr_pkg.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_reg_pkg.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_reg_pkg.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3_pkg.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_pkg.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_pkg.sv ${CALIPTRA_SS_ROOT}/src/axi2tlul/rtl/axi2tlul_cmd_intg_gen.sv ${CALIPTRA_SS_ROOT}/src/axi2tlul/rtl/sub2tlul.sv ${CALIPTRA_SS_ROOT}/src/axi2tlul/rtl/axi2tlul.sv @@ -738,14 +738,14 @@ ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_keccak_2share.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_keccak_round.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3pad.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_app.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_core.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_entropy.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_errchk.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_msgfifo.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_reg_top.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_staterd.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_app.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_core.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_entropy.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_errchk.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_msgfifo.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_reg_top.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_staterd.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_fsm.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_reg_top.sv diff --git a/src/integration/config/caliptra_ss_top_w_stub.vf b/src/integration/config/caliptra_ss_top_w_stub.vf index 31f7c6567..6de2a8e6b 100644 --- a/src/integration/config/caliptra_ss_top_w_stub.vf +++ b/src/integration/config/caliptra_ss_top_w_stub.vf @@ -230,9 +230,9 @@ ${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_reg_pkg.sv ${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_pkg.sv ${CALIPTRA_SS_ROOT}/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_keymgr_pkg.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_reg_pkg.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_reg_pkg.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3_pkg.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_pkg.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_pkg.sv ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl/axi_pkg.sv ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl/axi_if.sv ${CALIPTRA_SS_ROOT}/third_party/caliptra-rtl/src/axi/rtl/axi_addr.v @@ -304,14 +304,14 @@ ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_keccak_2share.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_keccak_round.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3pad.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/caliptra_ss_sha3.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_app.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_core.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_entropy.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_errchk.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_msgfifo.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_reg_top.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_staterd.sv -${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_app.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_core.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_entropy.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_errchk.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_msgfifo.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_reg_top.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss_staterd.sv +${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/kmac_ss.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_fsm.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv ${CALIPTRA_SS_ROOT}/src/lc_ctrl/rtl/lc_ctrl_reg_top.sv diff --git a/src/integration/config/compile.yml b/src/integration/config/compile.yml index a04d37a0f..5f8baace1 100644 --- a/src/integration/config/compile.yml +++ b/src/integration/config/compile.yml @@ -56,16 +56,18 @@ provides: [caliptra_ss_top_defines] schema_version: 2.4.0 targets: tb: - directories: [$COMPILE_ROOT/rtl] + directories: + - $COMPILE_ROOT/rtl + - $COMPILE_ROOT/rtl/soc_address_map files: - $COMPILE_ROOT/testbench/caliptra_ss_top_tb_path_defines.svh - - $COMPILE_ROOT/rtl/soc_address_map_defines.svh + - $COMPILE_ROOT/rtl/soc_address_map/soc_address_map_defines.svh - $COMPILE_ROOT/rtl/caliptra_ss_includes.svh rtl: directories: [$COMPILE_ROOT/rtl] files: - $COMPILE_ROOT/testbench/caliptra_ss_top_tb_path_defines.svh - - $COMPILE_ROOT/rtl/soc_address_map_defines.svh + - $COMPILE_ROOT/rtl/soc_address_map/soc_address_map_defines.svh - $COMPILE_ROOT/rtl/caliptra_ss_includes.svh --- provides: [caliptra_ss_top] @@ -167,10 +169,12 @@ targets: && echo "[PRE-EXEC] Copying DOE vector generator to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/src/doe/tb/doe_test_gen.py . && echo "[PRE-EXEC] Copying SHA256 wntz vector generator to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/src/sha256/tb/sha256_wntz_test_gen.py . && echo "[PRE-EXEC] Copying SHA512 Vectors to $(pwd)" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/src/integration/tb/vectors/SHA*.rsp . - && echo "[PRE-EXEC] Copying MLDSA vector generator to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/submodules/adams-bridge/src/mldsa_top/uvmf/Dilithium_ref/dilithium/ref/test/test_dilithium5 . - && echo "[PRE-EXEC] Copying MLDSA debug vector generator to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/submodules/adams-bridge/src/mldsa_top/uvmf/Dilithium_ref/dilithium/ref/test/test_dilithium5_debug . + && echo "[PRE-EXEC] Copying MLDSA vector generator to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/submodules/adams-bridge/src/abr_top/uvmf/Dilithium_ref/dilithium/ref/test/test_dilithium5 . + && echo "[PRE-EXEC] Copying MLDSA debug vector generator to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/submodules/adams-bridge/src/abr_top/uvmf/Dilithium_ref/dilithium/ref/test/test_dilithium5_debug . && echo "[PRE-EXEC] Copying mldsa directed vector to ${pwd}" && cp $COMPILE_ROOT/../../third_party/caliptra-rtl/src/mldsa/tb/smoke_test_mldsa_vector.hex . - && echo "[PRE-EXEC] Copying otp-img.2048.vmem to ${pwd}" && cp $COMPILE_ROOT/../../src/fuse_ctrl/data/otp-img.2048.vmem .' + && echo "[PRE-EXEC] Copying otp-img.2048.vmem to ${pwd}" && cp $COMPILE_ROOT/../../src/fuse_ctrl/data/otp-img.2048.vmem . + && echo "[PRE-EXEC] Copying MLKEM vector generator to $pwd" && cp -r $MSFT_SCRIPTS_DIR/models/ml-kem . && mkdir ml-kem/tv' + post_exec: 'rm -r ./ml-kem && if [[ -f ./cm.log ]]; then rm ./cm.log; else echo "Did not find cm.log"; fi' global: tool: vcs: diff --git a/src/integration/rtl/caliptra_ss_top.sv b/src/integration/rtl/caliptra_ss_top.sv index 2fa0a76a7..aa2a56519 100644 --- a/src/integration/rtl/caliptra_ss_top.sv +++ b/src/integration/rtl/caliptra_ss_top.sv @@ -140,7 +140,7 @@ module caliptra_ss_top // Caliptra Memory Export Interface // Caliptra Core, ICCM and DCCM interface el2_mem_if.veer_sram_src cptra_ss_cptra_core_el2_mem_export, - mldsa_mem_if.req mldsa_memory_export_req, + abr_mem_if.req abr_memory_export_req, // SRAM interface for mbox // Caliptra SS mailbox sram interface @@ -211,11 +211,15 @@ module caliptra_ss_top input logic [63:0] cptra_ss_strap_caliptra_base_addr_i, input logic [63:0] cptra_ss_strap_mci_base_addr_i, input logic [63:0] cptra_ss_strap_recovery_ifc_base_addr_i, + input logic [63:0] cptra_ss_strap_external_staging_area_base_addr_i, input logic [63:0] cptra_ss_strap_otp_fc_base_addr_i, input logic [63:0] cptra_ss_strap_uds_seed_base_addr_i, input logic [31:0] cptra_ss_strap_prod_debug_unlock_auth_pk_hash_reg_bank_offset_i, input logic [31:0] cptra_ss_strap_num_of_prod_debug_unlock_auth_pk_hashes_i, input logic [31:0] cptra_ss_strap_caliptra_dma_axi_user_i, + input logic [15:0] cptra_ss_strap_key_release_key_size_i, + input logic [63:0] cptra_ss_strap_key_release_base_addr_i, + input logic cptra_ss_strap_ocp_lock_en_i, input logic [31:0] cptra_ss_strap_generic_0_i, input logic [31:0] cptra_ss_strap_generic_1_i, input logic [31:0] cptra_ss_strap_generic_2_i, @@ -473,7 +477,7 @@ module caliptra_ss_top .m_axi_r_if(cptra_ss_cptra_core_m_axi_if_r_mgr), .el2_mem_export(cptra_ss_cptra_core_el2_mem_export), - .mldsa_memory_export(mldsa_memory_export_req), + .abr_memory_export(abr_memory_export_req), .ready_for_fuses(), // -- unused in caliptra ss .ready_for_mb_processing(), // -- unused in caliptra ss @@ -514,11 +518,15 @@ module caliptra_ss_top .strap_ss_caliptra_base_addr ( cptra_ss_strap_caliptra_base_addr_i ), .strap_ss_mci_base_addr ( cptra_ss_strap_mci_base_addr_i ), .strap_ss_recovery_ifc_base_addr ( cptra_ss_strap_recovery_ifc_base_addr_i ), + .strap_ss_external_staging_area_base_addr ( cptra_ss_strap_external_staging_area_base_addr_i ), .strap_ss_otp_fc_base_addr ( cptra_ss_strap_otp_fc_base_addr_i ), .strap_ss_uds_seed_base_addr ( cptra_ss_strap_uds_seed_base_addr_i ), .strap_ss_prod_debug_unlock_auth_pk_hash_reg_bank_offset( cptra_ss_strap_prod_debug_unlock_auth_pk_hash_reg_bank_offset_i ), .strap_ss_num_of_prod_debug_unlock_auth_pk_hashes ( cptra_ss_strap_num_of_prod_debug_unlock_auth_pk_hashes_i ), - .strap_ss_caliptra_dma_axi_user ( cptra_ss_strap_caliptra_dma_axi_user_i), + .strap_ss_caliptra_dma_axi_user ( cptra_ss_strap_caliptra_dma_axi_user_i ), + .strap_ss_key_release_key_size ( cptra_ss_strap_key_release_key_size_i ), + .strap_ss_key_release_base_addr ( cptra_ss_strap_key_release_base_addr_i ), + .ss_ocp_lock_en ( cptra_ss_strap_ocp_lock_en_i ), .strap_ss_strap_generic_0 ( cptra_ss_strap_generic_0_i ), .strap_ss_strap_generic_1 ( cptra_ss_strap_generic_1_i ), .strap_ss_strap_generic_2 ( cptra_ss_strap_generic_2_i ), diff --git a/src/integration/rtl/caliptra_ss_top_w_stub.sv b/src/integration/rtl/caliptra_ss_top_w_stub.sv index 90b4cc55c..8621c4ae3 100644 --- a/src/integration/rtl/caliptra_ss_top_w_stub.sv +++ b/src/integration/rtl/caliptra_ss_top_w_stub.sv @@ -170,17 +170,17 @@ module caliptra_ss_top_w_stub( assign cptra_ss_cptra_core_el2_mem_export.iccm_bank_ecc = '0; assign cptra_ss_cptra_core_el2_mem_export.dccm_bank_dout = '0; assign cptra_ss_cptra_core_el2_mem_export.iccm_bank_dout = '0; - mldsa_mem_if mldsa_memory_export(); - assign mldsa_memory_export.mem_inst0_bank0_rdata_o = '0; - assign mldsa_memory_export.mem_inst0_bank1_rdata_o = '0; - assign mldsa_memory_export.mem_inst1_rdata_o = '0; - assign mldsa_memory_export.mem_inst2_rdata_o = '0; - assign mldsa_memory_export.mem_inst3_rdata_o = '0; - assign mldsa_memory_export.sig_z_mem_rdata_o = '0; - assign mldsa_memory_export.pk_mem_rdata_o = '0; - assign mldsa_memory_export.sk_mem_bank0_rdata_o = '0; - assign mldsa_memory_export.sk_mem_bank1_rdata_o = '0; - assign mldsa_memory_export.w1_mem_rdata_o = '0; + abr_mem_if abr_memory_export(); + assign abr_memory_export.mem_inst0_bank0_rdata_o = '0; + assign abr_memory_export.mem_inst0_bank1_rdata_o = '0; + assign abr_memory_export.mem_inst1_rdata_o = '0; + assign abr_memory_export.mem_inst2_rdata_o = '0; + assign abr_memory_export.mem_inst3_rdata_o = '0; + assign abr_memory_export.sig_z_mem_rdata_o = '0; + assign abr_memory_export.pk_mem_rdata_o = '0; + assign abr_memory_export.sk_mem_bank0_rdata_o = '0; + assign abr_memory_export.sk_mem_bank1_rdata_o = '0; + assign abr_memory_export.w1_mem_rdata_o = '0; logic cptra_ss_cptra_core_mbox_sram_cs_o; @@ -472,7 +472,7 @@ module caliptra_ss_top_w_stub( // Caliptra Memory Export Interface .cptra_ss_cptra_core_el2_mem_export(cptra_ss_cptra_core_el2_mem_export), - .mldsa_memory_export_req(mldsa_memory_export.req), + .abr_memory_export_req(abr_memory_export.req), //SRAM interface for mbox .cptra_ss_cptra_core_mbox_sram_cs_o, @@ -535,6 +535,7 @@ module caliptra_ss_top_w_stub( .cptra_ss_strap_caliptra_base_addr_i, .cptra_ss_strap_mci_base_addr_i, .cptra_ss_strap_recovery_ifc_base_addr_i, + .cptra_ss_strap_external_staging_area_base_addr_i('0), .cptra_ss_strap_otp_fc_base_addr_i, .cptra_ss_strap_uds_seed_base_addr_i, .cptra_ss_strap_prod_debug_unlock_auth_pk_hash_reg_bank_offset_i, @@ -547,6 +548,9 @@ module caliptra_ss_top_w_stub( .cptra_ss_debug_intent_i, .cptra_ss_dbg_manuf_enable_o, .cptra_ss_cptra_core_soc_prod_dbg_unlock_level_o, + .cptra_ss_strap_key_release_key_size_i(16'h40), + .cptra_ss_strap_key_release_base_addr_i('0), + .cptra_ss_strap_ocp_lock_en_i(1'b1), .cptra_ss_lc_clk_byp_ack_i (cptra_ss_lc_clk_byp_ack_i), .cptra_ss_lc_clk_byp_req_o (cptra_ss_lc_clk_byp_req_o), diff --git a/src/integration/rtl/soc_address_map.h b/src/integration/rtl/soc_address_map/soc_address_map.h similarity index 99% rename from src/integration/rtl/soc_address_map.h rename to src/integration/rtl/soc_address_map/soc_address_map.h index e7ccca299..485b526fe 100644 --- a/src/integration/rtl/soc_address_map.h +++ b/src/integration/rtl/soc_address_map/soc_address_map.h @@ -10624,12 +10624,16 @@ #define SOC_IFC_REG_CPTRA_HW_CONFIG (0xe0) #define SOC_IFC_REG_CPTRA_HW_CONFIG_ITRNG_EN_LOW (0) #define SOC_IFC_REG_CPTRA_HW_CONFIG_ITRNG_EN_MASK (0x1) -#define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_LOW (1) -#define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_MASK (0xe) +#define SOC_IFC_REG_CPTRA_HW_CONFIG_FUSE_GRANULARITY_LOW (1) +#define SOC_IFC_REG_CPTRA_HW_CONFIG_FUSE_GRANULARITY_MASK (0x2) +#define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_LOW (2) +#define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_MASK (0xc) #define SOC_IFC_REG_CPTRA_HW_CONFIG_LMS_ACC_EN_LOW (4) #define SOC_IFC_REG_CPTRA_HW_CONFIG_LMS_ACC_EN_MASK (0x10) #define SOC_IFC_REG_CPTRA_HW_CONFIG_SUBSYSTEM_MODE_EN_LOW (5) #define SOC_IFC_REG_CPTRA_HW_CONFIG_SUBSYSTEM_MODE_EN_MASK (0x20) +#define SOC_IFC_REG_CPTRA_HW_CONFIG_OCP_LOCK_MODE_EN_LOW (6) +#define SOC_IFC_REG_CPTRA_HW_CONFIG_OCP_LOCK_MODE_EN_MASK (0x40) #endif #define SOC_SOC_IFC_REG_CPTRA_WDT_TIMER1_EN (0xa00300e4) #ifndef SOC_IFC_REG_CPTRA_WDT_TIMER1_EN @@ -11185,6 +11189,38 @@ #define SOC_IFC_REG_FUSE_SOC_MANIFEST_MAX_SVN_SVN_LOW (0) #define SOC_IFC_REG_FUSE_SOC_MANIFEST_MAX_SVN_SVN_MASK (0xff) #endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_0 (0xa00303a4) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_0 +#define SOC_IFC_REG_FUSE_HEK_SEED_0 (0x3a4) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_1 (0xa00303a8) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_1 +#define SOC_IFC_REG_FUSE_HEK_SEED_1 (0x3a8) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_2 (0xa00303ac) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_2 +#define SOC_IFC_REG_FUSE_HEK_SEED_2 (0x3ac) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_3 (0xa00303b0) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_3 +#define SOC_IFC_REG_FUSE_HEK_SEED_3 (0x3b0) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_4 (0xa00303b4) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_4 +#define SOC_IFC_REG_FUSE_HEK_SEED_4 (0x3b4) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_5 (0xa00303b8) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_5 +#define SOC_IFC_REG_FUSE_HEK_SEED_5 (0x3b8) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_6 (0xa00303bc) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_6 +#define SOC_IFC_REG_FUSE_HEK_SEED_6 (0x3bc) +#endif +#define SOC_SOC_IFC_REG_FUSE_HEK_SEED_7 (0xa00303c0) +#ifndef SOC_IFC_REG_FUSE_HEK_SEED_7 +#define SOC_IFC_REG_FUSE_HEK_SEED_7 (0x3c0) +#endif #define SOC_SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_L (0xa0030500) #ifndef SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_L #define SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_L (0x500) @@ -11243,6 +11279,34 @@ #ifndef SOC_IFC_REG_SS_CALIPTRA_DMA_AXI_USER #define SOC_IFC_REG_SS_CALIPTRA_DMA_AXI_USER (0x534) #endif +#define SOC_SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_L (0xa0030538) +#ifndef SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_L +#define SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_L (0x538) +#endif +#define SOC_SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_H (0xa003053c) +#ifndef SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_H +#define SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_H (0x53c) +#endif +#define SOC_SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_L (0xa0030540) +#ifndef SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_L +#define SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_L (0x540) +#endif +#define SOC_SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_H (0xa0030544) +#ifndef SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_H +#define SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_H (0x544) +#endif +#define SOC_SOC_IFC_REG_SS_KEY_RELEASE_SIZE (0xa0030548) +#ifndef SOC_IFC_REG_SS_KEY_RELEASE_SIZE +#define SOC_IFC_REG_SS_KEY_RELEASE_SIZE (0x548) +#define SOC_IFC_REG_SS_KEY_RELEASE_SIZE_SIZE_LOW (0) +#define SOC_IFC_REG_SS_KEY_RELEASE_SIZE_SIZE_MASK (0xffff) +#endif +#define SOC_SOC_IFC_REG_SS_OCP_LOCK_CTRL (0xa003054c) +#ifndef SOC_IFC_REG_SS_OCP_LOCK_CTRL +#define SOC_IFC_REG_SS_OCP_LOCK_CTRL (0x54c) +#define SOC_IFC_REG_SS_OCP_LOCK_CTRL_LOCK_IN_PROGRESS_LOW (0) +#define SOC_IFC_REG_SS_OCP_LOCK_CTRL_LOCK_IN_PROGRESS_MASK (0x1) +#endif #define SOC_SOC_IFC_REG_SS_STRAP_GENERIC_0 (0xa00305a0) #ifndef SOC_IFC_REG_SS_STRAP_GENERIC_0 #define SOC_IFC_REG_SS_STRAP_GENERIC_0 (0x5a0) @@ -11259,43 +11323,43 @@ #ifndef SOC_IFC_REG_SS_STRAP_GENERIC_3 #define SOC_IFC_REG_SS_STRAP_GENERIC_3 (0x5ac) #endif -#define SOC_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ (0xa00305c0) -#ifndef SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ (0x5c0) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_LOW (0) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK (0x1) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_LOW (1) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_MASK (0x2) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_UDS_PROGRAM_REQ_LOW (2) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_UDS_PROGRAM_REQ_MASK (0x4) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_RSVD_LOW (3) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_RSVD_MASK (0xfffffff8) -#endif -#define SOC_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP (0xa00305c4) -#ifndef SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP (0x5c4) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_LOW (0) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK (0x1) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_LOW (1) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_MASK (0x2) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_LOW (2) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK (0x4) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_LOW (3) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK (0x8) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_LOW (4) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK (0x10) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_LOW (5) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK (0x20) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_LOW (6) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_MASK (0x40) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_LOW (7) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_MASK (0x80) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_LOW (8) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_MASK (0x100) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_LOW (9) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK (0x200) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_RSVD_LOW (10) -#define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_RSVD_MASK (0xfffffc00) +#define SOC_SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ (0xa00305c0) +#ifndef SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ (0x5c0) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_LOW (0) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK (0x1) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_LOW (1) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_MASK (0x2) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_UDS_PROGRAM_REQ_LOW (2) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_UDS_PROGRAM_REQ_MASK (0x4) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_RSVD_LOW (3) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_RSVD_MASK (0xfffffff8) +#endif +#define SOC_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP (0xa00305c4) +#ifndef SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP (0x5c4) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_LOW (0) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK (0x1) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_LOW (1) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_MASK (0x2) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_LOW (2) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK (0x4) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_LOW (3) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK (0x8) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_LOW (4) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK (0x10) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_LOW (5) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK (0x20) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_LOW (6) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_MASK (0x40) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_LOW (7) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_MASK (0x80) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_LOW (8) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_MASK (0x100) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_LOW (9) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK (0x200) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_RSVD_LOW (10) +#define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_RSVD_MASK (0xfffffc00) #endif #define SOC_SOC_IFC_REG_SS_SOC_DBG_UNLOCK_LEVEL_0 (0xa00305c8) #ifndef SOC_IFC_REG_SS_SOC_DBG_UNLOCK_LEVEL_0 diff --git a/src/integration/rtl/soc_address_map_defines.svh b/src/integration/rtl/soc_address_map/soc_address_map_defines.svh similarity index 98% rename from src/integration/rtl/soc_address_map_defines.svh rename to src/integration/rtl/soc_address_map/soc_address_map_defines.svh index 8515639e2..50004bd6f 100644 --- a/src/integration/rtl/soc_address_map_defines.svh +++ b/src/integration/rtl/soc_address_map/soc_address_map_defines.svh @@ -1200,6 +1200,14 @@ `define SOC_SOC_IFC_REG_FUSE_SOC_MANIFEST_SVN_2 (32'ha0030398) `define SOC_SOC_IFC_REG_FUSE_SOC_MANIFEST_SVN_3 (32'ha003039c) `define SOC_SOC_IFC_REG_FUSE_SOC_MANIFEST_MAX_SVN (32'ha00303a0) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_0 (32'ha00303a4) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_1 (32'ha00303a8) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_2 (32'ha00303ac) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_3 (32'ha00303b0) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_4 (32'ha00303b4) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_5 (32'ha00303b8) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_6 (32'ha00303bc) +`define SOC_SOC_IFC_REG_FUSE_HEK_SEED_7 (32'ha00303c0) `define SOC_SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_L (32'ha0030500) `define SOC_SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_H (32'ha0030504) `define SOC_SOC_IFC_REG_SS_MCI_BASE_ADDR_L (32'ha0030508) @@ -1214,12 +1222,18 @@ `define SOC_SOC_IFC_REG_SS_NUM_OF_PROD_DEBUG_UNLOCK_AUTH_PK_HASHES (32'ha003052c) `define SOC_SOC_IFC_REG_SS_DEBUG_INTENT (32'ha0030530) `define SOC_SOC_IFC_REG_SS_CALIPTRA_DMA_AXI_USER (32'ha0030534) +`define SOC_SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_L (32'ha0030538) +`define SOC_SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_H (32'ha003053c) +`define SOC_SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_L (32'ha0030540) +`define SOC_SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_H (32'ha0030544) +`define SOC_SOC_IFC_REG_SS_KEY_RELEASE_SIZE (32'ha0030548) +`define SOC_SOC_IFC_REG_SS_OCP_LOCK_CTRL (32'ha003054c) `define SOC_SOC_IFC_REG_SS_STRAP_GENERIC_0 (32'ha00305a0) `define SOC_SOC_IFC_REG_SS_STRAP_GENERIC_1 (32'ha00305a4) `define SOC_SOC_IFC_REG_SS_STRAP_GENERIC_2 (32'ha00305a8) `define SOC_SOC_IFC_REG_SS_STRAP_GENERIC_3 (32'ha00305ac) -`define SOC_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ (32'ha00305c0) -`define SOC_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP (32'ha00305c4) +`define SOC_SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ (32'ha00305c0) +`define SOC_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP (32'ha00305c4) `define SOC_SOC_IFC_REG_SS_SOC_DBG_UNLOCK_LEVEL_0 (32'ha00305c8) `define SOC_SOC_IFC_REG_SS_SOC_DBG_UNLOCK_LEVEL_1 (32'ha00305cc) `define SOC_SOC_IFC_REG_SS_GENERIC_FW_EXEC_CTRL_0 (32'ha00305d0) diff --git a/src/integration/rtl/soc_address_map_field_defines.svh b/src/integration/rtl/soc_address_map/soc_address_map_field_defines.svh similarity index 99% rename from src/integration/rtl/soc_address_map_field_defines.svh rename to src/integration/rtl/soc_address_map/soc_address_map_field_defines.svh index 353ff4e3a..715d500df 100644 --- a/src/integration/rtl/soc_address_map_field_defines.svh +++ b/src/integration/rtl/soc_address_map/soc_address_map_field_defines.svh @@ -9569,12 +9569,16 @@ `define SOC_IFC_REG_CPTRA_HW_CONFIG (32'he0) `define SOC_IFC_REG_CPTRA_HW_CONFIG_ITRNG_EN_LOW (0) `define SOC_IFC_REG_CPTRA_HW_CONFIG_ITRNG_EN_MASK (32'h1) -`define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_LOW (1) -`define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_MASK (32'he) +`define SOC_IFC_REG_CPTRA_HW_CONFIG_FUSE_GRANULARITY_LOW (1) +`define SOC_IFC_REG_CPTRA_HW_CONFIG_FUSE_GRANULARITY_MASK (32'h2) +`define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_LOW (2) +`define SOC_IFC_REG_CPTRA_HW_CONFIG_RSVD_EN_MASK (32'hc) `define SOC_IFC_REG_CPTRA_HW_CONFIG_LMS_ACC_EN_LOW (4) `define SOC_IFC_REG_CPTRA_HW_CONFIG_LMS_ACC_EN_MASK (32'h10) `define SOC_IFC_REG_CPTRA_HW_CONFIG_SUBSYSTEM_MODE_EN_LOW (5) `define SOC_IFC_REG_CPTRA_HW_CONFIG_SUBSYSTEM_MODE_EN_MASK (32'h20) +`define SOC_IFC_REG_CPTRA_HW_CONFIG_OCP_LOCK_MODE_EN_LOW (6) +`define SOC_IFC_REG_CPTRA_HW_CONFIG_OCP_LOCK_MODE_EN_MASK (32'h40) `endif `ifndef SOC_IFC_REG_CPTRA_WDT_TIMER1_EN `define SOC_IFC_REG_CPTRA_WDT_TIMER1_EN (32'he4) @@ -10001,6 +10005,30 @@ `define SOC_IFC_REG_FUSE_SOC_MANIFEST_MAX_SVN_SVN_LOW (0) `define SOC_IFC_REG_FUSE_SOC_MANIFEST_MAX_SVN_SVN_MASK (32'hff) `endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_0 +`define SOC_IFC_REG_FUSE_HEK_SEED_0 (32'h3a4) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_1 +`define SOC_IFC_REG_FUSE_HEK_SEED_1 (32'h3a8) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_2 +`define SOC_IFC_REG_FUSE_HEK_SEED_2 (32'h3ac) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_3 +`define SOC_IFC_REG_FUSE_HEK_SEED_3 (32'h3b0) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_4 +`define SOC_IFC_REG_FUSE_HEK_SEED_4 (32'h3b4) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_5 +`define SOC_IFC_REG_FUSE_HEK_SEED_5 (32'h3b8) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_6 +`define SOC_IFC_REG_FUSE_HEK_SEED_6 (32'h3bc) +`endif +`ifndef SOC_IFC_REG_FUSE_HEK_SEED_7 +`define SOC_IFC_REG_FUSE_HEK_SEED_7 (32'h3c0) +`endif `ifndef SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_L `define SOC_IFC_REG_SS_CALIPTRA_BASE_ADDR_L (32'h500) `endif @@ -10045,6 +10073,28 @@ `ifndef SOC_IFC_REG_SS_CALIPTRA_DMA_AXI_USER `define SOC_IFC_REG_SS_CALIPTRA_DMA_AXI_USER (32'h534) `endif +`ifndef SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_L +`define SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_L (32'h538) +`endif +`ifndef SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_H +`define SOC_IFC_REG_SS_EXTERNAL_STAGING_AREA_BASE_ADDR_H (32'h53c) +`endif +`ifndef SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_L +`define SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_L (32'h540) +`endif +`ifndef SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_H +`define SOC_IFC_REG_SS_KEY_RELEASE_BASE_ADDR_H (32'h544) +`endif +`ifndef SOC_IFC_REG_SS_KEY_RELEASE_SIZE +`define SOC_IFC_REG_SS_KEY_RELEASE_SIZE (32'h548) +`define SOC_IFC_REG_SS_KEY_RELEASE_SIZE_SIZE_LOW (0) +`define SOC_IFC_REG_SS_KEY_RELEASE_SIZE_SIZE_MASK (32'hffff) +`endif +`ifndef SOC_IFC_REG_SS_OCP_LOCK_CTRL +`define SOC_IFC_REG_SS_OCP_LOCK_CTRL (32'h54c) +`define SOC_IFC_REG_SS_OCP_LOCK_CTRL_LOCK_IN_PROGRESS_LOW (0) +`define SOC_IFC_REG_SS_OCP_LOCK_CTRL_LOCK_IN_PROGRESS_MASK (32'h1) +`endif `ifndef SOC_IFC_REG_SS_STRAP_GENERIC_0 `define SOC_IFC_REG_SS_STRAP_GENERIC_0 (32'h5a0) `endif @@ -10057,41 +10107,41 @@ `ifndef SOC_IFC_REG_SS_STRAP_GENERIC_3 `define SOC_IFC_REG_SS_STRAP_GENERIC_3 (32'h5ac) `endif -`ifndef SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ (32'h5c0) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_LOW (0) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK (32'h1) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_LOW (1) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_MASK (32'h2) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_UDS_PROGRAM_REQ_LOW (2) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_UDS_PROGRAM_REQ_MASK (32'h4) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_RSVD_LOW (3) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_RSVD_MASK (32'hfffffff8) -`endif -`ifndef SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP (32'h5c4) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_LOW (0) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK (32'h1) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_LOW (1) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_MASK (32'h2) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_LOW (2) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK (32'h4) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_LOW (3) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK (32'h8) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_LOW (4) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK (32'h10) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_LOW (5) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK (32'h20) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_LOW (6) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_MASK (32'h40) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_LOW (7) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_MASK (32'h80) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_LOW (8) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_MASK (32'h100) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_LOW (9) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK (32'h200) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_RSVD_LOW (10) -`define SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_RSVD_MASK (32'hfffffc00) +`ifndef SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ (32'h5c0) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_LOW (0) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK (32'h1) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_LOW (1) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_MASK (32'h2) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_UDS_PROGRAM_REQ_LOW (2) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_UDS_PROGRAM_REQ_MASK (32'h4) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_RSVD_LOW (3) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_RSVD_MASK (32'hfffffff8) +`endif +`ifndef SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP (32'h5c4) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_LOW (0) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK (32'h1) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_LOW (1) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_MASK (32'h2) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_LOW (2) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK (32'h4) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_LOW (3) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK (32'h8) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_LOW (4) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK (32'h10) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_LOW (5) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK (32'h20) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_LOW (6) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_SUCCESS_MASK (32'h40) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_LOW (7) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_MASK (32'h80) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_LOW (8) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_IN_PROGRESS_MASK (32'h100) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_LOW (9) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK (32'h200) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_RSVD_LOW (10) +`define SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_RSVD_MASK (32'hfffffc00) `endif `ifndef SOC_IFC_REG_SS_SOC_DBG_UNLOCK_LEVEL_0 `define SOC_IFC_REG_SS_SOC_DBG_UNLOCK_LEVEL_0 (32'h5c8) diff --git a/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_isr.h b/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_isr.h index fbef8d0e9..51e62c355 100644 --- a/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_isr.h +++ b/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -235,8 +235,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_ss_mcu_sram_to_sha.yml b/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_ss_mcu_sram_to_sha.yml index 2d1b8bd20..dbdbb154d 100644 --- a/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_ss_mcu_sram_to_sha.yml +++ b/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha/caliptra_ss_mcu_sram_to_sha.yml @@ -4,5 +4,5 @@ testname: caliptra_ss_mcu_sram_to_sha pre-exec: | set -eu echo "Running pre_exec for [caliptra_ss_mcu_sram_to_sha]" - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h TESTNAME=cptra_mcu_sram_to_sha program.hex + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/caliptra_ss_mcu_sram_to_sha AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_mcu_sram_to_sha program.hex make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=caliptra_ss_mcu_sram_to_sha mcu_program.hex diff --git a/src/integration/test_suites/cptra_test_i3c_reg_rd_wr/caliptra_isr.h b/src/integration/test_suites/cptra_test_i3c_reg_rd_wr/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/cptra_test_i3c_reg_rd_wr/caliptra_isr.h +++ b/src/integration/test_suites/cptra_test_i3c_reg_rd_wr/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/cptra_test_i3c_reg_rd_wr_strap/caliptra_isr.h b/src/integration/test_suites/cptra_test_i3c_reg_rd_wr_strap/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/cptra_test_i3c_reg_rd_wr_strap/caliptra_isr.h +++ b/src/integration/test_suites/cptra_test_i3c_reg_rd_wr_strap/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/cptra_test_rom_streaming_boot/caliptra_isr.h b/src/integration/test_suites/cptra_test_rom_streaming_boot/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/cptra_test_rom_streaming_boot/caliptra_isr.h +++ b/src/integration/test_suites/cptra_test_rom_streaming_boot/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/cptra_test_rom_streaming_boot_mcu_sram/caliptra_isr.h b/src/integration/test_suites/cptra_test_rom_streaming_boot_mcu_sram/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/cptra_test_rom_streaming_boot_mcu_sram/caliptra_isr.h +++ b/src/integration/test_suites/cptra_test_rom_streaming_boot_mcu_sram/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/libs/caliptra_ss_lib/caliptra_ss_lib.c b/src/integration/test_suites/libs/caliptra_ss_lib/caliptra_ss_lib.c index f1b3d3de4..bc8f774e5 100644 --- a/src/integration/test_suites/libs/caliptra_ss_lib/caliptra_ss_lib.c +++ b/src/integration/test_suites/libs/caliptra_ss_lib/caliptra_ss_lib.c @@ -38,9 +38,9 @@ #endif #ifdef MY_RANDOM_SEED - uint32_t state = (unsigned) MY_RANDOM_SEED; + __attribute__((weak)) uint32_t state = (unsigned) MY_RANDOM_SEED; #else - uint32_t state = 0xabcd; + __attribute__((weak)) uint32_t state = 0xabcd; #endif void handle_error(const char *format, ...) { @@ -53,7 +53,7 @@ void handle_error(const char *format, ...) { while (1); // Infinite loop to halt execution } -uint32_t xorshift32(void) +__attribute__((weak)) uint32_t xorshift32(void) { state ^= state << 13; state ^= state >> 17; diff --git a/src/integration/test_suites/mcu_axi_streaming_boot_test_rom/mcu_axi_streaming_boot_test_rom.yml b/src/integration/test_suites/mcu_axi_streaming_boot_test_rom/mcu_axi_streaming_boot_test_rom.yml index 85d78ae6b..fb921cf39 100644 --- a/src/integration/test_suites/mcu_axi_streaming_boot_test_rom/mcu_axi_streaming_boot_test_rom.yml +++ b/src/integration/test_suites/mcu_axi_streaming_boot_test_rom/mcu_axi_streaming_boot_test_rom.yml @@ -2,5 +2,5 @@ seed: 1 testname: mcu_axi_streaming_boot_test_rom pre-exec: | echo "Running pre_exec for test mcu_axi_streaming_boot_test_rom " && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h TESTNAME=cptra_test_rom_streaming_boot program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_test_rom_streaming_boot program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_axi_streaming_boot_test_rom mcu_program.hex \ No newline at end of file diff --git a/src/integration/test_suites/mcu_cptra_bringup/caliptra_isr.h b/src/integration/test_suites/mcu_cptra_bringup/caliptra_isr.h index fbef8d0e9..51e62c355 100644 --- a/src/integration/test_suites/mcu_cptra_bringup/caliptra_isr.h +++ b/src/integration/test_suites/mcu_cptra_bringup/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -235,8 +235,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/mcu_hello_world/caliptra_isr.h b/src/integration/test_suites/mcu_hello_world/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/mcu_hello_world/caliptra_isr.h +++ b/src/integration/test_suites/mcu_hello_world/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/mcu_i3c_reg_rd_wr_cptra_i3c_strap/mcu_i3c_reg_rd_wr_cptra_i3c_strap.yml b/src/integration/test_suites/mcu_i3c_reg_rd_wr_cptra_i3c_strap/mcu_i3c_reg_rd_wr_cptra_i3c_strap.yml index 27e7ad70d..6194e0ee0 100644 --- a/src/integration/test_suites/mcu_i3c_reg_rd_wr_cptra_i3c_strap/mcu_i3c_reg_rd_wr_cptra_i3c_strap.yml +++ b/src/integration/test_suites/mcu_i3c_reg_rd_wr_cptra_i3c_strap/mcu_i3c_reg_rd_wr_cptra_i3c_strap.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_i3c_reg_rd_wr_cptra_i3c_strap pre-exec: | echo "Running pre_exec for test mcu_i3c_reg_rd_wr_cptra_i3c_strap" && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile AUX_LIB_DIR="$CALIPTRA_SS_ROOT/src/integration/test_suites/libs/recovery_ifc" TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr_strap AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_i3c_reg_rd_wr_strap program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile AUX_LIB_DIR="$CALIPTRA_SS_ROOT/src/integration/test_suites/libs/recovery_ifc" TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr_strap AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_i3c_reg_rd_wr_strap program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_i3c_reg_rd_wr_cptra_i3c_strap mcu_program.hex plusargs: - '+AVY_TEST=i3c_reg_rd_wr' \ No newline at end of file diff --git a/src/integration/test_suites/mcu_lmem_exe/caliptra_isr.h b/src/integration/test_suites/mcu_lmem_exe/caliptra_isr.h index fbef8d0e9..51e62c355 100644 --- a/src/integration/test_suites/mcu_lmem_exe/caliptra_isr.h +++ b/src/integration/test_suites/mcu_lmem_exe/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -235,8 +235,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/mcu_lmem_exe/mcu_lmem_exe.yml b/src/integration/test_suites/mcu_lmem_exe/mcu_lmem_exe.yml index 4d1a7c729..7b1c9e7c7 100644 --- a/src/integration/test_suites/mcu_lmem_exe/mcu_lmem_exe.yml +++ b/src/integration/test_suites/mcu_lmem_exe/mcu_lmem_exe.yml @@ -4,5 +4,5 @@ testname: mcu_lmem_exe pre-exec: | set -eu echo "Running pre_exec for [mcu_lmem_exe]" - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_lmem_exe AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h TESTNAME=cptra_bringup program.hex + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_lmem_exe AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_bringup program.hex make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_lmem_exe mcu_program.hex diff --git a/src/integration/test_suites/mcu_mbox_rand_rdwr/caliptra_isr.h b/src/integration/test_suites/mcu_mbox_rand_rdwr/caliptra_isr.h index 8be034d54..3340bc5e3 100644 --- a/src/integration/test_suites/mcu_mbox_rand_rdwr/caliptra_isr.h +++ b/src/integration/test_suites/mcu_mbox_rand_rdwr/caliptra_isr.h @@ -48,8 +48,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -233,8 +233,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() { uint32_t * reg = (uint32_t *) (CLP_AXI_DMA_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R); diff --git a/src/integration/test_suites/mcu_mctp_smoke_test/mcu_mctp_smoke_test.yml b/src/integration/test_suites/mcu_mctp_smoke_test/mcu_mctp_smoke_test.yml index aaf57f041..cd7e9e205 100644 --- a/src/integration/test_suites/mcu_mctp_smoke_test/mcu_mctp_smoke_test.yml +++ b/src/integration/test_suites/mcu_mctp_smoke_test/mcu_mctp_smoke_test.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_mctp_smoke_test pre-exec: | echo "Running pre_exec for test mcu_mctp_smoke_test" && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_i3c_reg_rd_wr program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_i3c_reg_rd_wr program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_mctp_smoke_test mcu_program.hex && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_mctp_smoke_test/mctp_pkt.hex . plusargs: diff --git a/src/integration/test_suites/mcu_prod_rom_i3c_streaming_boot/mcu_prod_rom_i3c_streaming_boot.yml b/src/integration/test_suites/mcu_prod_rom_i3c_streaming_boot/mcu_prod_rom_i3c_streaming_boot.yml index 1911d274f..d315084cb 100644 --- a/src/integration/test_suites/mcu_prod_rom_i3c_streaming_boot/mcu_prod_rom_i3c_streaming_boot.yml +++ b/src/integration/test_suites/mcu_prod_rom_i3c_streaming_boot/mcu_prod_rom_i3c_streaming_boot.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_prod_rom_i3c_streaming_boot pre-exec: | echo "Running pre_exec for test mcu_prod_rom_i3c_streaming_boot " && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_fw_test_rom AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_fw_test_rom program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_fw_test_rom AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_fw_test_rom program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_prod_rom_i3c_streaming_boot mcu_program.hex plusargs: - '+AVY_TEST=i3c_streaming_boot' diff --git a/src/integration/test_suites/mcu_prod_rom_to_sram_streaming_boot/mcu_prod_rom_to_sram_streaming_boot.yml b/src/integration/test_suites/mcu_prod_rom_to_sram_streaming_boot/mcu_prod_rom_to_sram_streaming_boot.yml index 08f6a3451..46298adcc 100644 --- a/src/integration/test_suites/mcu_prod_rom_to_sram_streaming_boot/mcu_prod_rom_to_sram_streaming_boot.yml +++ b/src/integration/test_suites/mcu_prod_rom_to_sram_streaming_boot/mcu_prod_rom_to_sram_streaming_boot.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_prod_rom_i3c_streaming_boot pre-exec: | echo "Running pre_exec for test mcu_prod_rom_i3c_streaming_boot " && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_SS_CLK_FREQ=400 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_to_mcu_sram_fw_test_rom AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_to_mcu_sram_fw_test_rom program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_SS_CLK_FREQ=400 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_to_mcu_sram_fw_test_rom AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_to_mcu_sram_fw_test_rom program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_prod_rom_i3c_streaming_boot mcu_program.hex plusargs: - '+AVY_TEST=i3c_streaming_boot' diff --git a/src/integration/test_suites/mcu_test_rom_i3c_rand_streaming_boot/mcu_test_rom_i3c_rand_streaming_boot.yml b/src/integration/test_suites/mcu_test_rom_i3c_rand_streaming_boot/mcu_test_rom_i3c_rand_streaming_boot.yml index c918905a4..755d33c83 100644 --- a/src/integration/test_suites/mcu_test_rom_i3c_rand_streaming_boot/mcu_test_rom_i3c_rand_streaming_boot.yml +++ b/src/integration/test_suites/mcu_test_rom_i3c_rand_streaming_boot/mcu_test_rom_i3c_rand_streaming_boot.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_test_rom_i3c_rand_streaming_boot pre-exec: | echo "Running pre_exec for test mcu_test_rom_i3c_rand_streaming_boot " && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_rom_streaming_boot program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_rom_streaming_boot program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_test_rom_i3c_rand_streaming_boot mcu_program.hex && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_test_rom_i3c_rand_streaming_boot/fw_update.hex . && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_test_rom_i3c_rand_streaming_boot/fw_update.size . diff --git a/src/integration/test_suites/mcu_test_rom_i3c_reg_rd_wr/mcu_test_rom_i3c_reg_rd_wr.yml b/src/integration/test_suites/mcu_test_rom_i3c_reg_rd_wr/mcu_test_rom_i3c_reg_rd_wr.yml index be3bf6422..59a4b6fbb 100644 --- a/src/integration/test_suites/mcu_test_rom_i3c_reg_rd_wr/mcu_test_rom_i3c_reg_rd_wr.yml +++ b/src/integration/test_suites/mcu_test_rom_i3c_reg_rd_wr/mcu_test_rom_i3c_reg_rd_wr.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_test_rom_i3c_reg_rd_wr pre-exec: | echo "Running pre_exec for test mcu_test_rom_i3c_reg_rd_wr" && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_i3c_reg_rd_wr program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h CALIPTRA_INTERNAL_TRNG=0 TESTNAME=cptra_test_i3c_reg_rd_wr program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_test_rom_i3c_reg_rd_wr mcu_program.hex plusargs: - '+AVY_TEST=i3c_reg_rd_wr' \ No newline at end of file diff --git a/src/integration/test_suites/mcu_test_rom_i3c_setmrl/mcu_test_rom_i3c_setmrl.yml b/src/integration/test_suites/mcu_test_rom_i3c_setmrl/mcu_test_rom_i3c_setmrl.yml index ab77b339f..c6eb935da 100644 --- a/src/integration/test_suites/mcu_test_rom_i3c_setmrl/mcu_test_rom_i3c_setmrl.yml +++ b/src/integration/test_suites/mcu_test_rom_i3c_setmrl/mcu_test_rom_i3c_setmrl.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_test_rom_i3c_setmrl pre-exec: | echo "Running pre_exec for test mcu_test_rom_i3c_setmrl " && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h TESTNAME=cptra_test_i3c_reg_rd_wr program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_i3c_reg_rd_wr CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_test_i3c_reg_rd_wr program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_test_rom_i3c_setmrl mcu_program.hex plusargs: - '+AVY_TEST=i3c_setmrl' diff --git a/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot/mcu_test_rom_i3c_streaming_boot.yml b/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot/mcu_test_rom_i3c_streaming_boot.yml index eeaa017fc..909d510eb 100644 --- a/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot/mcu_test_rom_i3c_streaming_boot.yml +++ b/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot/mcu_test_rom_i3c_streaming_boot.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_test_rom_i3c_streaming_boot pre-exec: | echo "Running pre_exec for test mcu_test_rom_i3c_streaming_boot" && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h TESTNAME=cptra_test_rom_streaming_boot program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_test_rom_streaming_boot program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_test_rom_i3c_streaming_boot mcu_program.hex && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot/fw_update.hex . && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot/fw_update.size . diff --git a/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot_sram/mcu_test_rom_i3c_streaming_boot_sram.yml b/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot_sram/mcu_test_rom_i3c_streaming_boot_sram.yml index 2908d0964..b6b5f3fd6 100644 --- a/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot_sram/mcu_test_rom_i3c_streaming_boot_sram.yml +++ b/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot_sram/mcu_test_rom_i3c_streaming_boot_sram.yml @@ -2,7 +2,7 @@ seed: 1 testname: mcu_test_rom_i3c_streaming_boot_sram pre-exec: | echo "Running pre_exec for test c_sram " && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot_mcu_sram CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map.h TESTNAME=cptra_test_rom_streaming_boot_mcu_sram program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/cptra_test_rom_streaming_boot_mcu_sram CALIPTRA_INTERNAL_TRNG=0 AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_test_rom_streaming_boot_mcu_sram program.hex && make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=mcu_test_rom_i3c_streaming_boot_sram mcu_program.hex && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot_sram/fw_update.hex . && cp $CALIPTRA_SS_ROOT/src/integration/test_suites/mcu_test_rom_i3c_streaming_boot_sram/fw_update.size . diff --git a/src/integration/test_suites/smoke_test_error_handling/caliptra_isr.h b/src/integration/test_suites/smoke_test_error_handling/caliptra_isr.h index 9c89d4278..7fa3621e8 100644 --- a/src/integration/test_suites/smoke_test_error_handling/caliptra_isr.h +++ b/src/integration/test_suites/smoke_test_error_handling/caliptra_isr.h @@ -51,8 +51,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -139,10 +139,10 @@ inline void service_soc_ifc_notif_intr () { inline void service_sha512_acc_error_intr() {return;} inline void service_sha512_acc_notif_intr() {return;} -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} -#endif //CALIPTRA_ISR_H \ No newline at end of file +#endif //CALIPTRA_ISR_H diff --git a/src/integration/test_suites/smoke_test_error_handling/smoke_test_error_handling.yml b/src/integration/test_suites/smoke_test_error_handling/smoke_test_error_handling.yml index a05719863..5d1e9f434 100644 --- a/src/integration/test_suites/smoke_test_error_handling/smoke_test_error_handling.yml +++ b/src/integration/test_suites/smoke_test_error_handling/smoke_test_error_handling.yml @@ -4,4 +4,4 @@ testname: smoke_test_error_handling pre-exec: | echo "Running pre_exec for [smoke_test_error_handling]" make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TESTNAME=smoke_test_error_handling mcu_program.hex - # CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TESTNAME=smoke_test_error_handling program.hex \ No newline at end of file + # CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile TESTNAME=smoke_test_error_handling program.hex diff --git a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/caliptra_isr.h b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/caliptra_isr.h +++ b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/cptra_manuf_dbg.c b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/cptra_manuf_dbg.c index b2a460034..8209eb6d5 100644 --- a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/cptra_manuf_dbg.c +++ b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/cptra_manuf_dbg.c @@ -27,24 +27,24 @@ uint32_t read_TOKEN[9]; uint32_t exp_token[9] = { 0xFFFFF8E2, - 0xABCDEFEB, + 0xEBEFCDAB, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0xF888888A + 0x8A8888F8 }; /* #### Debug Unlock -1. On reset, the ROM checks if the `MANUF_DBG_UNLOCK_REQ` bit in the `SS_DBG_MANUF_SERVICE_REG_REQ` register and the `DEBUG_INTENT` bit in `SS_DEBUG_INTENT` register are set. +1. On reset, the ROM checks if the `MANUF_DBG_UNLOCK_REQ` bit in the `SS_DBG_SERVICE_REG_REQ` register and the `DEBUG_INTENT` bit in `SS_DEBUG_INTENT` register are set. -2. If they are set, the ROM sets the `TAP_MAILBOX_AVAILABLE` bit in the `SS_DBG_MANUF_SERVICE_REG_RSP` register, then enters a loop, awaiting a `TOKEN` command on the mailbox. The payload of this command is a 256-bit value. +2. If they are set, the ROM sets the `TAP_MAILBOX_AVAILABLE` bit in the `SS_DBG_SERVICE_REG_RSP` register, then enters a loop, awaiting a `TOKEN` command on the mailbox. The payload of this command is a 256-bit value. -3. Upon receiving the `TOKEN` command, ROM sets the `SS_DBG_MANUF_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_IN_PROGRESS` bit to 1. +3. Upon receiving the `TOKEN` command, ROM sets the `SS_DBG_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_IN_PROGRESS` bit to 1. 4. The ROM performs a SHA-512 operation on the token to generate the input token digest. @@ -52,11 +52,11 @@ uint32_t exp_token[9] = { 6. The ROM completes the mailbox command. -7. If the input token digest and fuse token digests match, the ROM authorizes the debug unlock by setting the `SS_DBG_MANUF_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_SUCCESS` bit to 1. +7. If the input token digest and fuse token digests match, the ROM authorizes the debug unlock by setting the `SS_DBG_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_SUCCESS` bit to 1. -8. If the token digests do not match, the ROM blocks the debug unlock by setting the the `SS_DBG_MANUF_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_FAIL` bit to 1. +8. If the token digests do not match, the ROM blocks the debug unlock by setting the the `SS_DBG_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_FAIL` bit to 1. -9. The ROM sets the `SS_DBG_MANUF_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_IN_PROGRESS` bit to 0. +9. The ROM sets the `SS_DBG_SERVICE_REG_RSP` register `MANUF_DBG_UNLOCK_IN_PROGRESS` bit to 0. */ @@ -73,15 +73,15 @@ volatile caliptra_intr_received_s cptra_intr_rcv = {0}; void mailbox_available() { - // sets the `TAP_MAILBOX_AVAILABLE` bit in the `SS_DBG_MANUF_SERVICE_REG_RSP` register + // sets the `TAP_MAILBOX_AVAILABLE` bit in the `SS_DBG_SERVICE_REG_RSP` register //make tap mailbox available uint32_t status_reg ; VPRINTF(LOW, "CLP_CORE: detected MANUF DEBUG request...\n"); - status_reg = SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK; - status_reg = status_reg | SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK; + status_reg = SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK; + status_reg = status_reg | SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK; VPRINTF(LOW, "CLP_CORE: set MANUF_DBG_UNLOCK_IN_PROGRESS...\n"); VPRINTF(LOW, "CLP_CORE: set MAILBOX_AVAILABLE...\n"); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); return; } @@ -114,22 +114,22 @@ void compare_token() { // ROM needs to perform HASH comperision in here. if (read_TOKEN[ii] != exp_token[ii]) { VPRINTF(ERROR, "ERROR: mailbox data mismatch actual (0x%x) expected (0x%x)\n", read_TOKEN[ii], exp_token[ii]); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_MASK); - status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP); - status_reg = status_reg & (SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK ^ 0xFFFFFFFF); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_FAIL_MASK); + status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP); + status_reg = status_reg & (SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK ^ 0xFFFFFFFF); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); SEND_STDOUT_CTRL( 0x1); }; } lsu_write_32(CLP_MBOX_CSR_TAP_MODE,0); soc_ifc_clear_execute_reg(); - status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP); - status_reg = status_reg | SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK; - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP); + status_reg = status_reg | SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK; + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); VPRINTF(LOW, "\n\nCLP_CORE: set MANUF_DBG_UNLOCK_SUCCESS high...\n\n"); - status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP); - status_reg = status_reg & (SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK ^ 0xFFFFFFFF); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP); + status_reg = status_reg & (SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_IN_PROGRESS_MASK ^ 0xFFFFFFFF); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); // deassert in_progress return; } @@ -140,7 +140,7 @@ void main(void) { VPRINTF(LOW,"----------------------------------\nCaliptra: Mimicking ROM from Subsystem!!\n----------------------------------\n"); uint32_t status_reg = 0; - status_reg = (lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ) & SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK) == SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK; + status_reg = (lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ) & SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK) == SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_MANUF_DBG_UNLOCK_REQ_MASK; if (status_reg){ mailbox_available(); wait_for_token(); diff --git a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/mcu_manuf_dbg.c b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/mcu_manuf_dbg.c index f988b6d54..68a677a9f 100644 --- a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/mcu_manuf_dbg.c +++ b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/mcu_manuf_dbg.c @@ -96,11 +96,11 @@ void main (void) { //////////////////////////////////// // Fuse and Boot Bringup // - uint32_t base_address = SOC_SOC_IFC_REG_FUSE_MANUF_DBG_UNLOCK_TOKEN_0; - for (int i = 0; i < 16; i++) { - VPRINTF(LOW, "MCU: writing 0x%x to address of 0x%x\n", vector[i], base_address + (i * 4)); - lsu_write_32(base_address + (i * 4), vector[i]); - } + // uint32_t base_address = SOC_SOC_IFC_REG_FUSE_MANUF_DBG_UNLOCK_TOKEN_0; + // for (int i = 0; i < 16; i++) { + // VPRINTF(LOW, "MCU: writing 0x%x to address of 0x%x\n", vector[i], base_address + (i * 4)); + // lsu_write_32(base_address + (i * 4), vector[i]); + // } for (uint32_t ii = 0; ii < 600; ii++) { @@ -120,8 +120,8 @@ void main (void) { cptra_boot_go = 0; VPRINTF(LOW, "MCU: waits in success loop\n"); - while(cptra_boot_go != SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK){ - cptra_boot_go = lsu_read_32(SOC_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP) & SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK; + while(cptra_boot_go != SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK){ + cptra_boot_go = lsu_read_32(SOC_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP) & SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_MANUF_DBG_UNLOCK_SUCCESS_MASK; for (uint32_t ii = 0; ii < 500; ii++) { __asm__ volatile ("nop"); // Sleep loop as "nop" } diff --git a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/smoke_test_jtag_manuf_dbg.yml b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/smoke_test_jtag_manuf_dbg.yml index 9f7d25017..2fa86f07b 100644 --- a/src/integration/test_suites/smoke_test_jtag_manuf_dbg/smoke_test_jtag_manuf_dbg.yml +++ b/src/integration/test_suites/smoke_test_jtag_manuf_dbg/smoke_test_jtag_manuf_dbg.yml @@ -16,12 +16,21 @@ seed: 1 testname: smoke_test_jtag_manuf_dbg pre-exec: | - echo "Running pre_exec for [smoke_test_jtag_manuf_dbg]" + echo "Running pre_exec for [smoke_test_jtag_manuf_dbg]" && echo "Generate FIXED LC start state and LC counter value." && rm -rf otp-img.2048.vmem && $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/gen_fuse_ctrl_vmem.py --seed ${PLAYBOOK_RANDOM_SEED} --lc-state 16 --lc-state-def $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/lc_ctrl_state.hjson --mmap-def $CALIPTRA_SS_ROOT/src/fuse_ctrl/data/otp_ctrl_mmap.hjson --token-configuration $CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg/test_unlock_token.hjson -o otp-img.2048.vmem && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg TESTNAME=caliptra_rom_manuf_dbg program.hex + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg TESTNAME=cptra_manuf_dbg program.hex make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg TESTNAME=mcu_manuf_dbg mcu_program.hex + + +# pre-exec: | +# echo "Running pre_exec for [smoke_test_jtag_manuf_dbg]" +# echo "Generate FIXED LC start state and LC counter value." && +# rm -rf otp-img.2048.vmem && +# $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/gen_fuse_ctrl_vmem.py --seed ${PLAYBOOK_RANDOM_SEED} --lc-state 16 --lc-state-def $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/lc_ctrl_state.hjson --mmap-def $CALIPTRA_SS_ROOT/src/fuse_ctrl/data/otp_ctrl_mmap.hjson --token-configuration $CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg/test_unlock_token.hjson -o otp-img.2048.vmem && +# CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg TESTNAME=caliptra_rom_manuf_dbg program.hex +# make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg TESTNAME=mcu_manuf_dbg mcu_program.hex # pre-exec: | # echo "Running pre_exec for [smoke_test_jtag_manuf_dbg]" # CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_manuf_dbg TESTNAME=cptra_manuf_dbg program.hex diff --git a/src/integration/test_suites/smoke_test_jtag_prod_dbg/caliptra_isr.h b/src/integration/test_suites/smoke_test_jtag_prod_dbg/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/smoke_test_jtag_prod_dbg/caliptra_isr.h +++ b/src/integration/test_suites/smoke_test_jtag_prod_dbg/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/smoke_test_jtag_prod_dbg/cptra_prod_dbg.c b/src/integration/test_suites/smoke_test_jtag_prod_dbg/cptra_prod_dbg.c index 465f91056..8b81fa80e 100644 --- a/src/integration/test_suites/smoke_test_jtag_prod_dbg/cptra_prod_dbg.c +++ b/src/integration/test_suites/smoke_test_jtag_prod_dbg/cptra_prod_dbg.c @@ -37,7 +37,7 @@ volatile uint32_t intr_count; volatile caliptra_intr_received_s cptra_intr_rcv = {0}; -uint8_t debug_level = 3; +uint8_t debug_level = 5; uint32_t checksum, ii, lenght_challenge; uint32_t expected_unlock_req_payload[2]; uint32_t expected_token_payload[0x753]; @@ -61,18 +61,18 @@ uint32_t challenge_payload[] = { }; uint32_t PROD_dbg_pk[] = { - 0x02E66222, - 0xC1144ED7, - 0x7F9E0293, - 0xC99B43E2, - 0x51741A91, - 0xD6884787, - 0x5A00F049, - 0x443F97C0, - 0xEF7B24B1, - 0xDAEE7948, - 0x97F03CF3, - 0xD2369D51 + 0x2bb37255, + 0x51a4edc7, + 0xbd948b1e, + 0x2c2a257e, + 0x7a694bfd, + 0xc2d5de4d, + 0x8adec52a, + 0xe7aeda4a, + 0x2761c721, + 0x98940dae, + 0xe14e2482, + 0xd6da39e1 }; @@ -86,9 +86,9 @@ uint32_t dma_read_from_lsu(uint32_t address){ void wait_for_mailbox_cmd() { uint32_t status_reg ; - status_reg = SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK; - status_reg = status_reg | SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK; - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + status_reg = SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_TAP_MAILBOX_AVAILABLE_MASK; + status_reg = status_reg | SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK; + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); VPRINTF(LOW, "CLP_CORE: set PROD_DBG_UNLOCK_IN_PROGRESS...\n"); VPRINTF(LOW, "CLP_CORE: set MAILBOX_AVAILABLE...\n"); // DEBUG UNLOCK should be in in-progress, write a register @@ -101,8 +101,8 @@ void wait_for_mailbox_cmd() { VPRINTF(LOW, "CLP_CORE: Checking cmd from tap\n"); uint32_t cmd = lsu_read_32(CLP_MBOX_CSR_MBOX_CMD); if (cmd != AUTH_DEBUG_UNLOCK_REQ_CMD) { - status_reg = SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK; - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + status_reg = SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK; + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); VPRINTF(ERROR, "ERROR: mailbox command mismatch actual (0x%x) expected (0x%x)\n", cmd, AUTH_DEBUG_UNLOCK_REQ_CMD); printf("%c", 0x01); } @@ -137,7 +137,7 @@ void send_challenge_response() { lsu_write_32(CLP_MBOX_CSR_MBOX_DATAIN, challenge_payload[0]); VPRINTF(LOW, "CLP_CORE: checksum: 0x%x\n", challenge_payload[0]); for (ii = 0; ii < 21; ++ii) { - lsu_write_32(CLP_MBOX_CSR_MBOX_DATAIN, challenge_payload[ii]); + lsu_write_32(CLP_MBOX_CSR_MBOX_DATAIN, challenge_payload[ii+1]); } // soc_ifc_clear_execute_reg(); status = DATA_READY; @@ -154,7 +154,7 @@ void wait_and_read_token() { uint32_t cmd = lsu_read_32(CLP_MBOX_CSR_MBOX_CMD); if (cmd != AUTH_DEBUG_UNLOCK_TOKEN) { VPRINTF(ERROR, "ERROR: mailbox command mismatch actual (0x%x) expected (0x%x)\n", cmd, AUTH_DEBUG_UNLOCK_TOKEN); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_FAIL_MASK); printf("%c", 0x01); } VPRINTF(LOW, "CLP_CORE: Received expected mailbox cmd 0x%08X\n", cmd); @@ -165,28 +165,39 @@ void wait_and_read_token() { for (int i = 0; i < 1/*0x753*/; ++i) { expected_token_payload[i] = soc_ifc_mbox_read_dataout_single(); } + VPRINTF(LOW, "CLP_CORE: Received token_payload[ 0x%08X\n", expected_token_payload[0]); } -// void read_pk_hash() { -// uint32_t numOfPK = lsu_read_32(CLP_SOC_IFC_REG_SS_NUM_OF_PROD_DEBUG_UNLOCK_AUTH_PK_HASHES); -// uint32_t offSet = lsu_read_32(CLP_SOC_IFC_REG_SS_PROD_DEBUG_UNLOCK_AUTH_PK_HASH_REG_BANK_OFFSET); +void read_pk_hash() { + uint32_t numOfPK = lsu_read_32(CLP_SOC_IFC_REG_SS_NUM_OF_PROD_DEBUG_UNLOCK_AUTH_PK_HASHES); + uint32_t offSet = lsu_read_32(CLP_SOC_IFC_REG_SS_PROD_DEBUG_UNLOCK_AUTH_PK_HASH_REG_BANK_OFFSET); -// VPRINTF(LOW, "CLP_CORE: Number of debug PK hashes = 0x%02x\n", numOfPK); -// VPRINTF(LOW, "CLP_CORE: PK hash register bank offset = 0x%08X\n", offSet); + VPRINTF(LOW, "CLP_CORE: Number of debug PK hashes = 0x%02x\n", numOfPK); + VPRINTF(LOW, "CLP_CORE: PK hash register bank offset = 0x%08X\n", offSet); + if (numOfPK != 8) { + VPRINTF(LOW, "ERROR: Number of debug PK does not match\n"); + printf("%c", 0x01); + return; + } + if (offSet != 0x480) { + VPRINTF(LOW, "ERROR: Number of debug PK offset does not match\n"); + printf("%c", 0x01); + return; + } -// uint32_t pk_hash; -// uint32_t base_address = offSet + 12 * (debug_level) * 4; + uint32_t pk_hash; + uint32_t base_address = offSet + 12 * (debug_level-1) * 4+ 0x21000000; -// for (int i = 0; i < 1; i++) { -// uint32_t addr = base_address + (i * 4); -// pk_hash = dma_read_from_lsu(addr); -// VPRINTF(LOW, "CLP_CORE: reading PROD_dbg_pk[%02d] from address 0x%08X = 0x%08X\n", i, addr, pk_hash); -// if (PROD_dbg_pk[i] != pk_hash) { -// VPRINTF(LOW, "CLP_CORE: MISMATCH at index %02d! Expected: 0x%08X, Read: 0x%08X\n", i, PROD_dbg_pk[i], pk_hash); -// } -// } -// } + for (int i = 0; i < 2; i++) { + uint32_t addr = base_address + (i * 4); + pk_hash = dma_read_from_lsu(addr); + VPRINTF(LOW, "CLP_CORE: reading PROD_dbg_pk[%02d] from address 0x%08X = 0x%08X\n", i, addr, pk_hash); + if (PROD_dbg_pk[i] != pk_hash) { + VPRINTF(LOW, "CLP_CORE: MISMATCH at index %02d! Expected: 0x%08X, Read: 0x%08X\n", i, PROD_dbg_pk[i], pk_hash); + } + } +} @@ -201,22 +212,22 @@ void main(void) { return; } - uint32_t req_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ); + uint32_t req_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ); uint32_t intent = lsu_read_32(CLP_SOC_IFC_REG_SS_DEBUG_INTENT); - if ((req_reg == SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_MASK) && intent) { + if ((req_reg == SOC_IFC_REG_SS_DBG_SERVICE_REG_REQ_PROD_DBG_UNLOCK_REQ_MASK) && intent) { VPRINTF(LOW, "CLP_CORE: PROD DEBUG UNLOCK request detected\n"); wait_for_mailbox_cmd(); read_unlock_req_payload(); send_challenge_response(); wait_and_read_token(); - // read_pk_hash(); - uint32_t status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP); - status_reg = status_reg | SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK; - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + read_pk_hash(); + uint32_t status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP); + status_reg = status_reg | SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK; + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); VPRINTF(LOW, "\n\nCLP_CORE: set PROD_DBG_UNLOCK_SUCCESS high...\n\n"); - status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP); - status_reg = status_reg & (SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK ^ 0xFFFFFFFF); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, status_reg); + status_reg = lsu_read_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP); + status_reg = status_reg & (SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_IN_PROGRESS_MASK ^ 0xFFFFFFFF); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, status_reg); lsu_write_32(CLP_MBOX_CSR_TAP_MODE,0); VPRINTF(LOW, "CLP_CORE: Token received and test complete.\n"); while(1); // Do not complete the execution, wait for MCU terminal cmd diff --git a/src/integration/test_suites/smoke_test_jtag_prod_dbg/mcu_prod_dbg.c b/src/integration/test_suites/smoke_test_jtag_prod_dbg/mcu_prod_dbg.c index 86ef77b15..4dc43bf34 100644 --- a/src/integration/test_suites/smoke_test_jtag_prod_dbg/mcu_prod_dbg.c +++ b/src/integration/test_suites/smoke_test_jtag_prod_dbg/mcu_prod_dbg.c @@ -130,8 +130,8 @@ void main (void) { cptra_boot_go = 0; VPRINTF(LOW, "MCU: waits in success loop\n"); - while(cptra_boot_go != SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK){ - cptra_boot_go = lsu_read_32(SOC_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP) & SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK; + while(cptra_boot_go != SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK){ + cptra_boot_go = lsu_read_32(SOC_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP) & SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_PROD_DBG_UNLOCK_SUCCESS_MASK; for (uint32_t ii = 0; ii < 500; ii++) { __asm__ volatile ("nop"); // Sleep loop as "nop" } diff --git a/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.tcl b/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.tcl index 42e417528..980117752 100644 --- a/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.tcl +++ b/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.tcl @@ -106,9 +106,24 @@ riscv dmi_write $mbox_cmd_dmi_addr 0x50445554 riscv dmi_write $mbox_dlen_dmi_addr $auth_resp_dlen_bytes # for {set i 0} {$i < $auth_resp_dlen_words} {incr i} { # checksum+first_data -for {set i 0} {$i < 0x754} {incr i} { +for {set i 0} {$i < 0x2} {incr i} { riscv dmi_write $mbox_din_dmi_addr $Auth_resp_array($i) } + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +#NOTE: The following code is commented out because it is not used in mimicked ROM. +#NOTE, FIXME: Actual ROM is not available. When ROM is available uncomment the below code +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +# # for {set i 0} {$i < $auth_resp_dlen_words} {incr i} { +# # checksum+first_data +# for {set i 0} {$i < 0x754} {incr i} { +# riscv dmi_write $mbox_din_dmi_addr $Auth_resp_array($i) +# } + + puts "TAP: Set execute..." riscv dmi_write $mbox_execute_dmi_addr 0x1 puts "" diff --git a/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.yml b/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.yml index 5f6c973b4..52ab8586a 100644 --- a/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.yml +++ b/src/integration/test_suites/smoke_test_jtag_prod_dbg/smoke_test_jtag_prod_dbg.yml @@ -16,10 +16,20 @@ seed: 1 testname: smoke_test_jtag_prod_dbg pre-exec: | + set -eu echo "Running pre_exec for [smoke_test_jtag_prod_dbg]" && echo "Generate FIXED LC start state and LC counter value." && rm -rf otp-img.2048.vmem && $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/gen_fuse_ctrl_vmem.py --seed ${PLAYBOOK_RANDOM_SEED} --lc-state 17 --lc-state-def $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/lc_ctrl_state.hjson --mmap-def $CALIPTRA_SS_ROOT/src/fuse_ctrl/data/otp_ctrl_mmap.hjson --token-configuration $CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg/test_unlock_token.hjson -o otp-img.2048.vmem && - CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg TESTNAME=caliptra_rom_prod_dbg program.hex && + CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg AUX_HEADER_FILES=$CALIPTRA_SS_ROOT/src/integration/rtl/soc_address_map/soc_address_map.h TESTNAME=cptra_prod_dbg program.hex make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg TESTNAME=mcu_prod_dbg mcu_program.hex + +# pre-exec: | +# echo "Running pre_exec for [smoke_test_jtag_prod_dbg]" && +# echo "Generate FIXED LC start state and LC counter value." && +# rm -rf otp-img.2048.vmem && +# $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/gen_fuse_ctrl_vmem.py --seed ${PLAYBOOK_RANDOM_SEED} --lc-state 17 --lc-state-def $CALIPTRA_SS_ROOT/tools/scripts/fuse_ctrl_script/lc_ctrl_state.hjson --mmap-def $CALIPTRA_SS_ROOT/src/fuse_ctrl/data/otp_ctrl_mmap.hjson --token-configuration $CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg/test_unlock_token.hjson -o otp-img.2048.vmem && +# CALIPTRA_ROOT=$CALIPTRA_SS_ROOT/third_party/caliptra-rtl make -f $CALIPTRA_SS_ROOT/third_party/caliptra-rtl/tools/scripts/Makefile CALIPTRA_INTERNAL_TRNG=0 TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg TESTNAME=caliptra_rom_prod_dbg program.hex && +# make -f $CALIPTRA_SS_ROOT/tools/scripts/Makefile TEST_DIR=$CALIPTRA_SS_ROOT/src/integration/test_suites/smoke_test_jtag_prod_dbg TESTNAME=mcu_prod_dbg mcu_program.hex + diff --git a/src/integration/test_suites/smoke_test_jtag_uds_prog/caliptra_isr.h b/src/integration/test_suites/smoke_test_jtag_uds_prog/caliptra_isr.h index 9fe1282b1..5fe9c9d7c 100644 --- a/src/integration/test_suites/smoke_test_jtag_uds_prog/caliptra_isr.h +++ b/src/integration/test_suites/smoke_test_jtag_uds_prog/caliptra_isr.h @@ -50,8 +50,8 @@ typedef struct { uint32_t soc_ifc_notif; uint32_t sha512_acc_error; uint32_t sha512_acc_notif; - uint32_t mldsa_error; - uint32_t mldsa_notif; + uint32_t abr_error; + uint32_t abr_notif; uint32_t axi_dma_error; uint32_t axi_dma_notif; } caliptra_intr_received_s; @@ -239,8 +239,8 @@ inline void service_sha512_acc_notif_intr() { } } -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} +inline void service_abr_error_intr() {return;} +inline void service_abr_notif_intr() {return;} inline void service_axi_dma_error_intr() {return;} inline void service_axi_dma_notif_intr() {return;} diff --git a/src/integration/test_suites/smoke_test_jtag_uds_prog/cptra_uds_prog.c b/src/integration/test_suites/smoke_test_jtag_uds_prog/cptra_uds_prog.c index e4a307d3b..eb16bc98f 100644 --- a/src/integration/test_suites/smoke_test_jtag_uds_prog/cptra_uds_prog.c +++ b/src/integration/test_suites/smoke_test_jtag_uds_prog/cptra_uds_prog.c @@ -94,7 +94,7 @@ void wait_dai_op_idle(uint32_t status_mask) { status &= ((((uint32_t)1) << (FUSE_CTRL_STATUS_DAI_IDLE_OFFSET - 1)) - 1); if (status != status_mask) { VPRINTF(LOW, "CLP_CORE ERROR: unexpected status: expected: %08X actual: %08X\n", status_mask, status); - lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP, SOC_IFC_REG_SS_DBG_MANUF_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_MASK); + lsu_write_32(CLP_SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP, SOC_IFC_REG_SS_DBG_SERVICE_REG_RSP_UDS_PROGRAM_FAIL_MASK); printf("%c",0xff); //End the test } VPRINTF(LOW, "CLP_CORE: DAI is now idle.\n"); @@ -142,11 +142,19 @@ void calculate_digest(uint32_t partition_base_address) { void UDS_provision(uint32_t base_address) { + uint32_t HW_config_value = lsu_read_32(CLP_SOC_IFC_REG_CPTRA_HW_CONFIG); + int granularity = ((HW_config_value & 0x2)>>1) ? 32 : 64; // Check if the granularity is 64-bit or 32-bit + int boundry = (granularity == 64) ? 8 : 16; // Set the boundary based on granularity + int steps = (granularity == 64) ? 8 : 4; // Calculate the number of steps based on granularity // 0x580: CPTRA_SS_TEST_EXIT_TO_MANUF_TOKEN int i; - for (i=0;i<8;i++){ - dai_wr(base_address+i*8, i*2, i*2+1, 64, 0); - VPRINTF(LOW, "CLP_CORE: programming %02d item in UDS partition with 0x%08X and 0x%08X...\n",i, i*2, i*2+1); + for (i=0;i reg2hw.cmd.cmd.q inside {CmdStart, CmdProcess, @@ -1544,11 +1544,11 @@ module kmac alert_tx_o[1]) `CALIPTRA_ASSERT_PRIM_COUNT_ERROR_TRIGGER_ALERT(RoundCountCheck_A, u_sha3.u_keccak.u_round_count, alert_tx_o[1]) - `CALIPTRA_ASSERT_PRIM_COUNT_ERROR_TRIGGER_ALERT(KeyIndexCountCheck_A, u_kmac_core.u_key_index_count, + `CALIPTRA_ASSERT_PRIM_COUNT_ERROR_TRIGGER_ALERT(KeyIndexCountCheck_A, u_kmac_ss_core.u_key_index_count, alert_tx_o[1]) // Sparse FSM state error - `CALIPTRA_ASSERT_PRIM_FSM_ERROR_TRIGGER_ALERT(KmacCoreFsmCheck_A, u_kmac_core.u_state_regs, alert_tx_o[1]) + `CALIPTRA_ASSERT_PRIM_FSM_ERROR_TRIGGER_ALERT(KmacCoreFsmCheck_A, u_kmac_ss_core.u_state_regs, alert_tx_o[1]) `CALIPTRA_ASSERT_PRIM_FSM_ERROR_TRIGGER_ALERT(KmacAppFsmCheck_A, u_app_intf.u_state_regs, alert_tx_o[1]) `CALIPTRA_ASSERT_PRIM_FSM_ERROR_TRIGGER_ALERT(SHA3FsmCheck_A, u_sha3.u_state_regs, alert_tx_o[1]) `CALIPTRA_ASSERT_PRIM_FSM_ERROR_TRIGGER_ALERT(SHA3padFsmCheck_A, u_sha3.u_pad.u_state_regs, alert_tx_o[1]) diff --git a/src/lc_ctrl/rtl/kmac_app.sv b/src/lc_ctrl/rtl/kmac_ss_app.sv similarity index 98% rename from src/lc_ctrl/rtl/kmac_app.sv rename to src/lc_ctrl/rtl/kmac_ss_app.sv index 82e81635c..465de4bd9 100644 --- a/src/lc_ctrl/rtl/kmac_app.sv +++ b/src/lc_ctrl/rtl/kmac_ss_app.sv @@ -6,10 +6,10 @@ `include "caliptra_prim_assert.sv" -module kmac_app - import kmac_pkg::*; +module kmac_ss_app + import kmac_ss_pkg::*; #( - // App specific configs are defined in kmac_pkg + // App specific configs are defined in kmac_ss_pkg parameter bit EnMasking = 1'b0, localparam int Share = (EnMasking) ? 2 : 1, // derived parameter parameter bit SecIdleAcceptSwMsg = 1'b0, @@ -114,7 +114,7 @@ module kmac_app output caliptra_prim_mubi_pkg::mubi4_t clear_after_error_o, // error_o value is pushed to Error FIFO at KMAC/SHA3 top and reported to SW - output kmac_pkg::err_t error_o, + output kmac_ss_pkg::err_t error_o, // Life cycle input lc_ctrl_pkg::lc_tx_t lc_escalate_en_i, @@ -151,10 +151,10 @@ module kmac_app localparam key_len_e SideloadedKey = KeyLengths[SelKeySize]; // Define right_encode(outlen) value here - // Look at kmac_pkg::key_len_e for the kinds of key size + // Look at kmac_ss_pkg::key_len_e for the kinds of key size // // These values should be exactly the same as the key length encodings - // in kmac_core.sv, with the only difference being that the byte representing + // in kmac_ss_core.sv, with the only difference being that the byte representing // the byte-length of the encoded value is in the MSB position due to right encoding // instead of in the LSB position (left encoding). localparam int OutLenW = 24; @@ -211,7 +211,7 @@ module kmac_app // Error checking logic - kmac_pkg::err_t fsm_err, mux_err; + kmac_ss_pkg::err_t fsm_err, mux_err; logic service_rejected_error; logic service_rejected_error_set, service_rejected_error_clr; diff --git a/src/lc_ctrl/rtl/kmac_core.sv b/src/lc_ctrl/rtl/kmac_ss_core.sv similarity index 98% rename from src/lc_ctrl/rtl/kmac_core.sv rename to src/lc_ctrl/rtl/kmac_ss_core.sv index a855c1936..602c89460 100644 --- a/src/lc_ctrl/rtl/kmac_core.sv +++ b/src/lc_ctrl/rtl/kmac_ss_core.sv @@ -6,8 +6,8 @@ `include "caliptra_prim_assert.sv" -module kmac_core - import kmac_pkg::*; +module kmac_ss_core + import kmac_ss_pkg::*; #( // EnMasking: Enable masking security hardening inside keccak_round // If it is enabled, the result digest will be two set of 1600bit. @@ -288,7 +288,7 @@ module kmac_core // left_encode(len(secret_key)) // encoded length is always byte size. Use MaxEncodedKeyLenByte parameter - // from kmac_pkg and add one more byte to indicate how many bytes used to + // from kmac_ss_pkg and add one more byte to indicate how many bytes used to // represent len(secret_key) // Note that if the secret_key is 128 bit, only lower 16 bits of // `encode_keylen` are valid. Refer `encoded_key` concatenation logic below. @@ -364,7 +364,7 @@ module kmac_core end : gen_encoded_key // Above logic assumes MaxKeyLen as 512 bits. Revise if it is not. - `CALIPTRA_ASSERT_INIT(MaxKeyLenMatchToKey512_A, kmac_pkg::MaxKeyLen == 512) + `CALIPTRA_ASSERT_INIT(MaxKeyLenMatchToKey512_A, kmac_ss_pkg::MaxKeyLen == 512) // Combine the bytepad `left_encode(w)` and the `encode_string(secret_key)` logic [MaxEncodedKeyW + 16 -1 :0] encoded_key_block [Share]; @@ -467,4 +467,4 @@ module kmac_core `CALIPTRA_ASSERT(AckOnlyInMessageState_A, fifo_valid_i && fifo_ready_o && kmac_en_i |-> st == StKmacMsg) -endmodule : kmac_core +endmodule : kmac_ss_core diff --git a/src/lc_ctrl/rtl/kmac_entropy.sv b/src/lc_ctrl/rtl/kmac_ss_entropy.sv similarity index 99% rename from src/lc_ctrl/rtl/kmac_entropy.sv rename to src/lc_ctrl/rtl/kmac_ss_entropy.sv index 62097ef94..974887605 100644 --- a/src/lc_ctrl/rtl/kmac_entropy.sv +++ b/src/lc_ctrl/rtl/kmac_ss_entropy.sv @@ -6,9 +6,9 @@ `include "caliptra_prim_assert.sv" -module kmac_entropy - import kmac_pkg::*; - import kmac_reg_pkg::*; +module kmac_ss_entropy + import kmac_ss_pkg::*; + import kmac_ss_reg_pkg::*; #( parameter lfsr_perm_t RndCnstLfsrPerm = RndCnstLfsrPermDefault, parameter lfsr_seed_t RndCnstLfsrSeed = RndCnstLfsrSeedDefault, @@ -85,7 +85,7 @@ module kmac_entropy // Definitions // ///////////////// - // Timer Widths are defined in kmac_pkg + // Timer Widths are defined in kmac_ss_pkg // Encoding generated with: // $ ./util/design/sparse-fsm-encode.py -d 3 -m 9 -n 10 \ @@ -776,4 +776,4 @@ module kmac_entropy end `endif -endmodule : kmac_entropy +endmodule : kmac_ss_entropy diff --git a/src/lc_ctrl/rtl/kmac_errchk.sv b/src/lc_ctrl/rtl/kmac_ss_errchk.sv similarity index 98% rename from src/lc_ctrl/rtl/kmac_errchk.sv rename to src/lc_ctrl/rtl/kmac_ss_errchk.sv index 15978ea07..28f8732fd 100644 --- a/src/lc_ctrl/rtl/kmac_errchk.sv +++ b/src/lc_ctrl/rtl/kmac_ss_errchk.sv @@ -34,17 +34,17 @@ // // ## SW Configuration Error // -// `kmac_errchk` module checks if SW configured correct combinations of the +// `kmac_ss_errchk` module checks if SW configured correct combinations of the // configuration registers when the hashing operation begins. // // 1. Mode & Strength combinations // 2. Kmac Prefix -// * sideload & key_valid -> Checker in kmac_core +// * sideload & key_valid -> Checker in kmac_ss_core `include "caliptra_prim_assert.sv" -module kmac_errchk - import kmac_pkg::*; +module kmac_ss_errchk + import kmac_ss_pkg::*; import caliptra_ss_sha3_pkg::sha3_mode_e; import caliptra_ss_sha3_pkg::keccak_strength_e; #( @@ -461,4 +461,4 @@ module kmac_errchk end : next_state `CALIPTRA_ASSERT_KNOWN(StKnown_A, st) -endmodule : kmac_errchk +endmodule : kmac_ss_errchk diff --git a/src/lc_ctrl/rtl/kmac_msgfifo.sv b/src/lc_ctrl/rtl/kmac_ss_msgfifo.sv similarity index 96% rename from src/lc_ctrl/rtl/kmac_msgfifo.sv rename to src/lc_ctrl/rtl/kmac_ss_msgfifo.sv index f76632432..bf08119ca 100644 --- a/src/lc_ctrl/rtl/kmac_msgfifo.sv +++ b/src/lc_ctrl/rtl/kmac_ss_msgfifo.sv @@ -8,8 +8,8 @@ `include "caliptra_prim_assert.sv" -module kmac_msgfifo - import kmac_pkg::*; +module kmac_ss_msgfifo + import kmac_ss_pkg::*; #( // OutWidth is MsgFIFO data width. caliptra_prim_packer converts InW to OutW prior to // pushing to MsgFIFO @@ -241,7 +241,7 @@ module kmac_msgfifo always_comb begin : error_logic err_o = '{ valid: 1'b 0, - code: kmac_pkg::ErrNone, + code: kmac_ss_pkg::ErrNone, info: '0 }; @@ -250,14 +250,14 @@ module kmac_msgfifo err_o = '{ // If EnProtection is 0, packer_err is tied to 0 valid: 1'b 1, - code: kmac_pkg::ErrPackerIntegrity, - info: kmac_pkg::ErrInfoW'(flush_st) + code: kmac_ss_pkg::ErrPackerIntegrity, + info: kmac_ss_pkg::ErrInfoW'(flush_st) }; end else if (fifo_err) begin err_o = '{ valid: 1'b 1, - code: kmac_pkg::ErrMsgFifoIntegrity, - info: kmac_pkg::ErrInfoW'(flush_st) + code: kmac_ss_pkg::ErrMsgFifoIntegrity, + info: kmac_ss_pkg::ErrInfoW'(flush_st) }; end end : error_logic diff --git a/src/lc_ctrl/rtl/kmac_pkg.sv b/src/lc_ctrl/rtl/kmac_ss_pkg.sv similarity index 99% rename from src/lc_ctrl/rtl/kmac_pkg.sv rename to src/lc_ctrl/rtl/kmac_ss_pkg.sv index cb2cd72aa..8562fbfea 100644 --- a/src/lc_ctrl/rtl/kmac_pkg.sv +++ b/src/lc_ctrl/rtl/kmac_ss_pkg.sv @@ -2,9 +2,9 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 // -// kmac_pkg +// kmac_ss_pkg -package kmac_pkg; +package kmac_ss_pkg; parameter int MsgWidth = caliptra_ss_sha3_pkg::MsgWidth; parameter int MsgStrbW = caliptra_ss_sha3_pkg::MsgStrbW; @@ -41,7 +41,7 @@ package kmac_pkg; parameter int MsgWindowDepth = 512; // 2kB space // Key related definitions - // If this value is changed, please modify the logic inside kmac_core + // If this value is changed, please modify the logic inside kmac_ss_core // that assigns the value into `encoded_key` parameter int MaxKeyLen = 512; @@ -115,7 +115,7 @@ package kmac_pkg; EntropyModeSw = 2'h 2 } entropy_mode_e; - // PRNG (kmac_entropy) + // PRNG (kmac_ss_entropy) parameter int unsigned EntropyOutputW = 800; parameter int unsigned EntropyStateW = 288; @@ -474,4 +474,4 @@ package kmac_pkg; conv_endian32 = (swap) ? conv_data : v ; endfunction : conv_endian32 -endpackage : kmac_pkg +endpackage : kmac_ss_pkg diff --git a/src/lc_ctrl/rtl/kmac_reduced.sv b/src/lc_ctrl/rtl/kmac_ss_reduced.sv similarity index 98% rename from src/lc_ctrl/rtl/kmac_reduced.sv rename to src/lc_ctrl/rtl/kmac_ss_reduced.sv index 359566f45..182023f8f 100644 --- a/src/lc_ctrl/rtl/kmac_reduced.sv +++ b/src/lc_ctrl/rtl/kmac_ss_reduced.sv @@ -7,9 +7,9 @@ `include "caliptra_prim_assert.sv" -module kmac_reduced - import kmac_pkg::*; - import kmac_reg_pkg::*; +module kmac_ss_reduced + import kmac_ss_pkg::*; + import kmac_ss_reg_pkg::*; import caliptra_ss_sha3_pkg::*; #( // EnMasking: Enable masking security hardening inside keccak_round. @@ -65,7 +65,7 @@ module kmac_reduced // Entropy configuration input logic msg_mask_en_i, // drive to 1 - input entropy_mode_e entropy_mode_i, // drive to kmac_pkg::EntropyModeEdn + input entropy_mode_e entropy_mode_i, // drive to kmac_ss_pkg::EntropyModeEdn input logic entropy_fast_process_i, // drive to 0 input logic entropy_in_keyblock_i, // drive to 1 @@ -254,7 +254,7 @@ module kmac_reduced ////////// // PRNG // ////////// - kmac_entropy #( + kmac_ss_entropy #( .RndCnstLfsrPerm(RndCnstLfsrPerm), .RndCnstLfsrSeed(RndCnstLfsrSeed), .RndCnstBufferLfsrSeed(RndCnstBufferLfsrSeed) diff --git a/src/lc_ctrl/rtl/kmac_reg_pkg.sv b/src/lc_ctrl/rtl/kmac_ss_reg_pkg.sv similarity index 99% rename from src/lc_ctrl/rtl/kmac_reg_pkg.sv rename to src/lc_ctrl/rtl/kmac_ss_reg_pkg.sv index da0faa55f..47261d5b6 100644 --- a/src/lc_ctrl/rtl/kmac_reg_pkg.sv +++ b/src/lc_ctrl/rtl/kmac_ss_reg_pkg.sv @@ -4,7 +4,7 @@ // // Register Package auto-generated by `reggen` containing data structure -package kmac_reg_pkg; +package kmac_ss_reg_pkg; // Param list parameter int NumWordsKey = 16; diff --git a/src/lc_ctrl/rtl/kmac_reg_top.sv b/src/lc_ctrl/rtl/kmac_ss_reg_top.sv similarity index 99% rename from src/lc_ctrl/rtl/kmac_reg_top.sv rename to src/lc_ctrl/rtl/kmac_ss_reg_top.sv index 6c7d3c05f..6693fb6ec 100644 --- a/src/lc_ctrl/rtl/kmac_reg_top.sv +++ b/src/lc_ctrl/rtl/kmac_ss_reg_top.sv @@ -6,7 +6,7 @@ `include "caliptra_prim_assert.sv" -module kmac_reg_top ( +module kmac_ss_reg_top ( input clk_i, input rst_ni, input rst_shadowed_ni, @@ -18,8 +18,8 @@ module kmac_reg_top ( input tlul_pkg::tl_d2h_t tl_win_i [2], // To HW - output kmac_reg_pkg::kmac_reg2hw_t reg2hw, // Write - input kmac_reg_pkg::kmac_hw2reg_t hw2reg, // Read + output kmac_ss_reg_pkg::kmac_reg2hw_t reg2hw, // Write + input kmac_ss_reg_pkg::kmac_hw2reg_t hw2reg, // Read output logic shadowed_storage_err_o, output logic shadowed_update_err_o, @@ -28,7 +28,7 @@ module kmac_reg_top ( output logic intg_err_o ); - import kmac_reg_pkg::* ; + import kmac_ss_reg_pkg::* ; localparam int AW = 12; localparam int DW = 32; diff --git a/src/lc_ctrl/rtl/kmac_staterd.sv b/src/lc_ctrl/rtl/kmac_ss_staterd.sv similarity index 97% rename from src/lc_ctrl/rtl/kmac_staterd.sv rename to src/lc_ctrl/rtl/kmac_ss_staterd.sv index 14e60c542..75d711c2d 100644 --- a/src/lc_ctrl/rtl/kmac_staterd.sv +++ b/src/lc_ctrl/rtl/kmac_ss_staterd.sv @@ -6,11 +6,11 @@ `include "caliptra_prim_assert.sv" -module kmac_staterd - import kmac_pkg::*; +module kmac_ss_staterd + import kmac_ss_pkg::*; #( // TL-UL Address Width. Should be bigger than - // $clog2(kmac_pkg::StateW) * Share + // $clog2(kmac_ss_pkg::StateW) * Share parameter int AddrW = 9, // EnMasking: Enable masking security hardening inside keccak_round diff --git a/src/lc_ctrl/rtl/lc_ctrl.sv b/src/lc_ctrl/rtl/lc_ctrl.sv index 43060e2cc..a08454a0d 100644 --- a/src/lc_ctrl/rtl/lc_ctrl.sv +++ b/src/lc_ctrl/rtl/lc_ctrl.sv @@ -12,7 +12,7 @@ module lc_ctrl import lc_ctrl_reg_pkg::*; import lc_ctrl_state_pkg::*; import axi_pkg::*; - import kmac_pkg::*; + import kmac_ss_pkg::*; #( // Enable asynchronous transitions on alerts. parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, @@ -115,8 +115,8 @@ module lc_ctrl // Life cycle hashing interface for raw unlock // Synchronized in the life cycle controller. // SEC_CM: TOKEN.DIGEST - //-- input kmac_pkg::app_rsp_t kmac_data_i, - //-- output kmac_pkg::app_req_t kmac_data_o, + //-- input kmac_ss_pkg::app_rsp_t kmac_data_i, + //-- output kmac_ss_pkg::app_req_t kmac_data_o, // OTP broadcast outputs // No sync required since LC and OTP are in the same clock domain. // SEC_CM: TOKEN_VALID.CTRL.MUBI @@ -745,8 +745,8 @@ module lc_ctrl // KMAC design Instance /////////////////////////////// - kmac_pkg::app_rsp_t kmac_data_i; - kmac_pkg::app_req_t kmac_data_o; + kmac_ss_pkg::app_rsp_t kmac_data_i; + kmac_ss_pkg::app_req_t kmac_data_o; wire lc_tx_t lc_escalate_en_int; wire app_req_t [2:0] app_req; wire app_rsp_t [2:0] app_rsp; @@ -759,7 +759,7 @@ module lc_ctrl assign kmac_data_i = app_rsp[1]; - kmac #( + kmac_ss #( .EnMasking(0), .SwKeyMasked(0), .NumAppIntf(3) diff --git a/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv b/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv index 41af5eced..97b3fb9c3 100644 --- a/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv +++ b/src/lc_ctrl/rtl/lc_ctrl_kmac_if.sv @@ -19,8 +19,8 @@ module lc_ctrl_kmac_if input rst_kmac_ni, // Life cycle hashing interface for raw unlock // Synchronized in the life cycle controller. - input kmac_pkg::app_rsp_t kmac_data_i, - output kmac_pkg::app_req_t kmac_data_o, + input kmac_ss_pkg::app_rsp_t kmac_data_i, + output kmac_ss_pkg::app_req_t kmac_data_o, // Token hashing interface to LC FSM' input lc_token_t transition_token_i, input token_hash_req_i, @@ -79,8 +79,8 @@ module lc_ctrl_kmac_if logic unused_sigs; assign unused_sigs = ^{ - kmac_data_i.digest_share0[LcTokenWidth +: (kmac_pkg::AppDigestW - LcTokenWidth)], - kmac_data_i.digest_share1[LcTokenWidth +: (kmac_pkg::AppDigestW - LcTokenWidth)] + kmac_data_i.digest_share0[LcTokenWidth +: (kmac_ss_pkg::AppDigestW - LcTokenWidth)], + kmac_data_i.digest_share1[LcTokenWidth +: (kmac_ss_pkg::AppDigestW - LcTokenWidth)] }; // Hashed Token Register Running on LC Clock diff --git a/third_party/caliptra-rtl b/third_party/caliptra-rtl index b543f8a8e..2e4331cec 160000 --- a/third_party/caliptra-rtl +++ b/third_party/caliptra-rtl @@ -1 +1 @@ -Subproject commit b543f8a8e03313aaf92b28b115f8f7a0505633cb +Subproject commit 2e4331cecad4011cb3f7fcbcd9c40bab31b33d98 diff --git a/tools/scripts/Makefile b/tools/scripts/Makefile index 67abe266a..f125ad874 100644 --- a/tools/scripts/Makefile +++ b/tools/scripts/Makefile @@ -73,7 +73,8 @@ COMP_LIB_NAMES := caliptra_ss_lib \ lc_ctrl \ wdt COMP_LIBS := $(foreach name, $(COMP_LIB_NAMES), $(LIBS_DIR)/$(name)) -HEADER_FILES := $(RTL_DIR)/soc_address_map.h \ +AUX_HEADER_FILES ?= +HEADER_FILES := $(RTL_DIR)/soc_address_map/soc_address_map.h \ $(RTL_DIR)/fuse_ctrl_mmap.h \ $(RTL_DIR)/caliptra_ss_lc_ctrl_address_map.h \ $(INCLUDES_DIR)/caliptra_ss_defines.h \ @@ -84,6 +85,7 @@ HEADER_FILES := $(RTL_DIR)/soc_address_map.h \ $(SOC_IFC_DIR)/soc_ifc.h \ $(PRINTF_DIR)/printf.h \ $(CSS_MCU0_DEFINES_DIR)/css_mcu0_defines.h \ + $(AUX_HEADER_FILES) \ $(BUILD_DIR)/caliptra_ss_clk_freq.h \ $(foreach comp_lib, $(COMP_LIBS), $(wildcard $(comp_lib)/*.h))