From 49339232c26569c19f78ad19359eda27c3f8d463 Mon Sep 17 00:00:00 2001 From: Michael Norris <108370498+Nitsirks@users.noreply.github.com> Date: Sat, 9 Nov 2024 10:51:15 -0800 Subject: [PATCH] mldsa keyvault implementation (#625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Integrate abr into 2.0 * Remove swap files * Update with script * UPdate name * Revert reg files * Add keygen+sign flow * Fix typo * Remove unnecessary isr defs * Rerun rdl * Exclude mldsa exe from license header check * Update filelist * Add adamsbridge as a submodule * Fix typo * temp changes * stashing kv changes * Fix mldsa encoding * Update rdl and mldsa flows * Update filelist * Update submodule * Fix typo * undo comments * Try increasing timeout for gdb tests * Undo timeout change * Update submodule * stashing kv changes * stashing keyvault changes for adamsbridge * keyvault width increased to 512, number of entries decreased to 24 increased uds size to 512 keyvault variable write width for hmac 384/512 keyvault connection for adamsbridge implementation * fixing merge * removing files that shouldn't have been checked in * updating ABR submodule * file list updates * MICROSOFT AUTOMATED PIPELINE: Stamp 'user/dev/michnorris/mldsa_kv' with updated timestamp and hash after successful run * fixing bad merge of script that included two function definitions of the same name * MICROSOFT AUTOMATED PIPELINE: Stamp 'user/dev/michnorris/mldsa_kv' with updated timestamp and hash after successful run --------- Co-authored-by: Kiran Upadhyayula Co-authored-by: Kiran Upadhyayula Co-authored-by: Michael Norris <“michnorris@microsoft.com”> --- .github/workflow_metadata/pr_hash | 2 +- .github/workflow_metadata/pr_timestamp | 2 +- src/doe/rtl/doe_fsm.sv | 2 +- src/doe/tb/doe_test_gen.py | 4 +- src/ecc/rtl/ecc_dsa_ctrl.sv | 1 + src/ecc/rtl/ecc_reg.sv | 24 +- src/ecc/rtl/ecc_reg_pkg.sv | 4 +- src/ecc/rtl/ecc_reg_uvm.sv | 10 +- src/hmac/rtl/hmac.sv | 5 + src/hmac/rtl/hmac_reg.sv | 24 +- src/hmac/rtl/hmac_reg_pkg.sv | 4 +- src/hmac/rtl/hmac_reg_uvm.sv | 10 +- src/integration/asserts/caliptra_top_sva.sv | 17 +- src/integration/rtl/caliptra_reg.h | 1920 +++++----- src/integration/rtl/caliptra_reg.rdl | 2 +- src/integration/rtl/caliptra_reg_defines.svh | 1920 +++++----- src/integration/rtl/caliptra_top.sv | 3 +- src/integration/rtl/config_defines.svh | 2 + src/integration/stimulus/L0_regression.yml | 2 + ...liptra_top_nightly_directed_regression.yml | 1 + .../tb/caliptra_top_tb_services.sv | 33 +- src/integration/tb/caliptra_top_tb_soc_bfm.sv | 4 +- src/integration/test_suites/libs/hmac/hmac.c | 4 +- .../test_suites/libs/keyvault/keyvault.c | 2 +- .../test_suites/libs/keyvault/keyvault.h | 6 +- .../test_suites/libs/mldsa/mldsa.c | 76 +- .../test_suites/libs/mldsa/mldsa.h | 19 +- .../test_suites/libs/sha512/sha512.c | 69 - .../test_suites/libs/sha512/sha512.h | 1 - .../smoke_test_doe_rand/smoke_test_doe_rand.c | 4 +- .../smoke_test_doe_scan/smoke_test_doe_scan.c | 8 +- .../smoke_test_kv_crypto_flow.c | 29 +- .../smoke_test_kv_mldsa/caliptra_isr.h | 132 + .../smoke_test_kv_mldsa/smoke_test_kv_mldsa.c | 3256 +++++++++++++++++ .../smoke_test_kv_mldsa.ld | 69 + .../smoke_test_kv_mldsa.yml | 3 + .../smoke_test_kv_sha512_flow/caliptra_isr.h | 244 -- .../smoke_test_kv_sha512_flow.c | 73 - .../smoke_test_kv_sha512_flow.yml | 17 - .../smoke_test_mldsa/smoke_test_mldsa.c | 9 +- .../smoke_test_zeroize_crypto.c | 2 +- src/keyvault/rtl/kv_def.rdl | 2 +- src/keyvault/rtl/kv_defines_pkg.sv | 7 +- src/keyvault/rtl/kv_fsm.sv | 7 +- src/keyvault/rtl/kv_macros.svh | 24 +- src/keyvault/rtl/kv_read_client.sv | 10 +- src/keyvault/rtl/kv_reg.rdl | 7 +- src/keyvault/rtl/kv_reg.sv | 38 +- src/keyvault/rtl/kv_reg_pkg.sv | 8 +- src/keyvault/rtl/kv_reg_uvm.sv | 6 +- src/keyvault/rtl/kv_write_client.sv | 6 +- src/libs/rtl/caliptra_macros.svh | 4 +- src/sha512/rtl/sha512.sv | 25 +- src/sha512/rtl/sha512_ctrl.sv | 2 +- src/sha512/rtl/sha512_reg.sv | 24 +- src/sha512/rtl/sha512_reg_pkg.sv | 4 +- src/sha512/rtl/sha512_reg_uvm.sv | 10 +- src/soc_ifc/rtl/caliptra_top_reg.h | 292 +- src/soc_ifc/rtl/caliptra_top_reg_defines.svh | 292 +- src/soc_ifc/rtl/soc_ifc_fuse_reg.rdl | 2 +- src/soc_ifc/rtl/soc_ifc_reg.sv | 36 +- src/soc_ifc/rtl/soc_ifc_reg_pkg.sv | 4 +- src/soc_ifc/rtl/soc_ifc_reg_uvm.sv | 28 +- src/soc_ifc/rtl/soc_ifc_top.sv | 6 +- src/soc_ifc/tb/soc_ifc_tb.sv | 14 +- submodules/adams-bridge | 2 +- tools/scripts/reg_gen.sh | 22 +- 67 files changed, 5878 insertions(+), 3023 deletions(-) create mode 100644 src/integration/test_suites/smoke_test_kv_mldsa/caliptra_isr.h create mode 100644 src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.c create mode 100644 src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.ld create mode 100644 src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.yml delete mode 100644 src/integration/test_suites/smoke_test_kv_sha512_flow/caliptra_isr.h delete mode 100644 src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.c delete mode 100644 src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.yml diff --git a/.github/workflow_metadata/pr_hash b/.github/workflow_metadata/pr_hash index d7eee544b..74863e91b 100644 --- a/.github/workflow_metadata/pr_hash +++ b/.github/workflow_metadata/pr_hash @@ -1 +1 @@ -0aaee120d93ac18bc55c7839a4e4e1fc956b2f12d1d7b11850a42f0eb11914ba98c92368164c95e7a34e41a634c236f5 \ No newline at end of file +357380de0b348b9d1a310e0b453f12722d1da13d675bd806fa1e56eea5d6d607e2014b012630990cf5415705cb926e63 \ No newline at end of file diff --git a/.github/workflow_metadata/pr_timestamp b/.github/workflow_metadata/pr_timestamp index e98b66d8a..3d08aa305 100644 --- a/.github/workflow_metadata/pr_timestamp +++ b/.github/workflow_metadata/pr_timestamp @@ -1 +1 @@ -1730784274 \ No newline at end of file +1731107556 \ No newline at end of file diff --git a/src/doe/rtl/doe_fsm.sv b/src/doe/rtl/doe_fsm.sv index c3e8a0d9e..b412534d7 100644 --- a/src/doe/rtl/doe_fsm.sv +++ b/src/doe/rtl/doe_fsm.sv @@ -173,7 +173,7 @@ always_comb begin : kv_doe_fsm dest_write_en = '1; //increment dest offset each clock, clear when done dest_write_offset_en = '1; - dest_write_offset_nxt = (dest_write_offset == 'hb) ? 'h0 : dest_write_offset + 'd1; + dest_write_offset_nxt = dest_write_offset + 'd1; //go back to idle if dest done, and done with blocks if (arc_DOE_WRITE_DOE_DONE) kv_doe_fsm_ns = DOE_DONE; diff --git a/src/doe/tb/doe_test_gen.py b/src/doe/tb/doe_test_gen.py index 9040b73fa..7217e362b 100644 --- a/src/doe/tb/doe_test_gen.py +++ b/src/doe/tb/doe_test_gen.py @@ -73,10 +73,10 @@ def generate_doe_testvector(): p = open("uds", "w") c = open("ciphertext", "w") - #key_str, iv_str, plain_str = generate_rand_bytes(32, 16, 48) + #key_str, iv_str, plain_str = generate_rand_bytes(32, 16, 64) key_str = generate_rand_bytes(32) iv_str = generate_rand_bytes(16) - plain_str = generate_rand_bytes(48) + plain_str = generate_rand_bytes(64) # key_str = "002ec695b21f27581a745c72e5b9f484865bc95eb10a13d584f57062166838d6" # iv_str = "a07b6cf2c26e78194b698f30ed0f5bdb" # plain_str = "754e68e5bdb5df41fca420e77655c76fe8ac8e4bc55727b2132bfdf9419a3b21b0dcc413c6f3f64a9b2d6cc1d861065b" diff --git a/src/ecc/rtl/ecc_dsa_ctrl.sv b/src/ecc/rtl/ecc_dsa_ctrl.sv index c8882a57e..2b7de03f9 100644 --- a/src/ecc/rtl/ecc_dsa_ctrl.sv +++ b/src/ecc/rtl/ecc_dsa_ctrl.sv @@ -912,6 +912,7 @@ module ecc_dsa_ctrl //client control register .write_ctrl_reg(kv_write_ctrl_reg), + .num_dwords(REG_NUM_DWORDS[4:0]), //interface with kv .kv_write(kv_write), diff --git a/src/ecc/rtl/ecc_reg.sv b/src/ecc/rtl/ecc_reg.sv index 6f3f9b58f..ca160dd10 100644 --- a/src/ecc/rtl/ecc_reg.sv +++ b/src/ecc/rtl/ecc_reg.sv @@ -344,7 +344,7 @@ module ecc_reg ( struct packed{ logic next; logic load_next; - } sha_block_dest_valid; + } mldsa_seed_dest_valid; struct packed{ logic next; logic load_next; @@ -587,7 +587,7 @@ module ecc_reg ( } hmac_block_dest_valid; struct packed{ logic value; - } sha_block_dest_valid; + } mldsa_seed_dest_valid; struct packed{ logic value; } ecc_pkey_dest_valid; @@ -1410,27 +1410,27 @@ module ecc_reg ( end end assign hwif_out.ecc_kv_wr_pkey_ctrl.hmac_block_dest_valid.value = field_storage.ecc_kv_wr_pkey_ctrl.hmac_block_dest_valid.value; - // Field: ecc_reg.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid + // Field: ecc_reg.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid always_comb begin automatic logic [0:0] next_c; automatic logic load_next_c; - next_c = field_storage.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value; + next_c = field_storage.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value; load_next_c = '0; if(decoded_reg_strb.ecc_kv_wr_pkey_ctrl && decoded_req_is_wr) begin // SW write - next_c = (field_storage.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value & ~decoded_wr_biten[8:8]) | (decoded_wr_data[8:8] & decoded_wr_biten[8:8]); + next_c = (field_storage.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value & ~decoded_wr_biten[8:8]) | (decoded_wr_data[8:8] & decoded_wr_biten[8:8]); load_next_c = '1; end - field_combo.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.next = next_c; - field_combo.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.load_next = load_next_c; + field_combo.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.next = next_c; + field_combo.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.load_next = load_next_c; end always_ff @(posedge clk or negedge hwif_in.reset_b) begin if(~hwif_in.reset_b) begin - field_storage.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value <= 1'h0; - end else if(field_combo.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.load_next) begin - field_storage.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value <= field_combo.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.next; + field_storage.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value <= 1'h0; + end else if(field_combo.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.load_next) begin + field_storage.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value <= field_combo.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.next; end end - assign hwif_out.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value = field_storage.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value; + assign hwif_out.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value = field_storage.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value; // Field: ecc_reg.ecc_kv_wr_pkey_ctrl.ecc_pkey_dest_valid always_comb begin automatic logic [0:0] next_c; @@ -1941,7 +1941,7 @@ module ecc_reg ( assign readback_array[93][5:1] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.write_entry.value : '0; assign readback_array[93][6:6] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.hmac_key_dest_valid.value : '0; assign readback_array[93][7:7] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.hmac_block_dest_valid.value : '0; - assign readback_array[93][8:8] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.sha_block_dest_valid.value : '0; + assign readback_array[93][8:8] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.mldsa_seed_dest_valid.value : '0; assign readback_array[93][9:9] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.ecc_pkey_dest_valid.value : '0; assign readback_array[93][10:10] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.ecc_seed_dest_valid.value : '0; assign readback_array[93][31:11] = (decoded_reg_strb.ecc_kv_wr_pkey_ctrl && !decoded_req_is_wr) ? field_storage.ecc_kv_wr_pkey_ctrl.rsvd.value : '0; diff --git a/src/ecc/rtl/ecc_reg_pkg.sv b/src/ecc/rtl/ecc_reg_pkg.sv index 44dde9e60..daab24775 100644 --- a/src/ecc/rtl/ecc_reg_pkg.sv +++ b/src/ecc/rtl/ecc_reg_pkg.sv @@ -400,7 +400,7 @@ package ecc_reg_pkg; typedef struct packed{ logic value; - } kv_write_ctrl_reg__sha_block_dest_valid__out_t; + } kv_write_ctrl_reg__mldsa_seed_dest_valid__out_t; typedef struct packed{ logic value; @@ -419,7 +419,7 @@ package ecc_reg_pkg; kv_write_ctrl_reg__write_entry__out_t write_entry; kv_write_ctrl_reg__hmac_key_dest_valid__out_t hmac_key_dest_valid; kv_write_ctrl_reg__hmac_block_dest_valid__out_t hmac_block_dest_valid; - kv_write_ctrl_reg__sha_block_dest_valid__out_t sha_block_dest_valid; + kv_write_ctrl_reg__mldsa_seed_dest_valid__out_t mldsa_seed_dest_valid; kv_write_ctrl_reg__ecc_pkey_dest_valid__out_t ecc_pkey_dest_valid; kv_write_ctrl_reg__ecc_seed_dest_valid__out_t ecc_seed_dest_valid; kv_write_ctrl_reg__rsvd__out_t rsvd; diff --git a/src/ecc/rtl/ecc_reg_uvm.sv b/src/ecc/rtl/ecc_reg_uvm.sv index 459fa6263..91005d1f0 100644 --- a/src/ecc/rtl/ecc_reg_uvm.sv +++ b/src/ecc/rtl/ecc_reg_uvm.sv @@ -599,7 +599,7 @@ package ecc_reg_uvm; kv_write_ctrl_reg_bit_cg write_entry_bit_cg[5]; kv_write_ctrl_reg_bit_cg hmac_key_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg hmac_block_dest_valid_bit_cg[1]; - kv_write_ctrl_reg_bit_cg sha_block_dest_valid_bit_cg[1]; + kv_write_ctrl_reg_bit_cg mldsa_seed_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg ecc_pkey_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg ecc_seed_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg rsvd_bit_cg[21]; @@ -608,7 +608,7 @@ package ecc_reg_uvm; rand uvm_reg_field write_entry; rand uvm_reg_field hmac_key_dest_valid; rand uvm_reg_field hmac_block_dest_valid; - rand uvm_reg_field sha_block_dest_valid; + rand uvm_reg_field mldsa_seed_dest_valid; rand uvm_reg_field ecc_pkey_dest_valid; rand uvm_reg_field ecc_seed_dest_valid; rand uvm_reg_field rsvd; @@ -631,8 +631,8 @@ package ecc_reg_uvm; this.hmac_key_dest_valid.configure(this, 1, 6, "RW", 0, 'h0, 1, 1, 0); this.hmac_block_dest_valid = new("hmac_block_dest_valid"); this.hmac_block_dest_valid.configure(this, 1, 7, "RW", 0, 'h0, 1, 1, 0); - this.sha_block_dest_valid = new("sha_block_dest_valid"); - this.sha_block_dest_valid.configure(this, 1, 8, "RW", 0, 'h0, 1, 1, 0); + this.mldsa_seed_dest_valid = new("mldsa_seed_dest_valid"); + this.mldsa_seed_dest_valid.configure(this, 1, 8, "RW", 0, 'h0, 1, 1, 0); this.ecc_pkey_dest_valid = new("ecc_pkey_dest_valid"); this.ecc_pkey_dest_valid.configure(this, 1, 9, "RW", 0, 'h0, 1, 1, 0); this.ecc_seed_dest_valid = new("ecc_seed_dest_valid"); @@ -644,7 +644,7 @@ package ecc_reg_uvm; foreach(write_entry_bit_cg[bt]) write_entry_bit_cg[bt] = new(); foreach(hmac_key_dest_valid_bit_cg[bt]) hmac_key_dest_valid_bit_cg[bt] = new(); foreach(hmac_block_dest_valid_bit_cg[bt]) hmac_block_dest_valid_bit_cg[bt] = new(); - foreach(sha_block_dest_valid_bit_cg[bt]) sha_block_dest_valid_bit_cg[bt] = new(); + foreach(mldsa_seed_dest_valid_bit_cg[bt]) mldsa_seed_dest_valid_bit_cg[bt] = new(); foreach(ecc_pkey_dest_valid_bit_cg[bt]) ecc_pkey_dest_valid_bit_cg[bt] = new(); foreach(ecc_seed_dest_valid_bit_cg[bt]) ecc_seed_dest_valid_bit_cg[bt] = new(); foreach(rsvd_bit_cg[bt]) rsvd_bit_cg[bt] = new(); diff --git a/src/hmac/rtl/hmac.sv b/src/hmac/rtl/hmac.sv index 29a9d5d60..8601b48f7 100644 --- a/src/hmac/rtl/hmac.sv +++ b/src/hmac/rtl/hmac.sv @@ -410,6 +410,10 @@ hmac_block_kv_read .read_done(kv_block_done) ); +//write 512 or 384 result based on mode bit +logic [$clog2(TAG_SIZE/32):0] num_dwords; +always_comb num_dwords = mode_reg ? 'd16 : 'd12; + //Write to keyvault kv_write_client #( .DATA_WIDTH(TAG_SIZE) @@ -422,6 +426,7 @@ hmac_result_kv_write //client control register .write_ctrl_reg(kv_write_ctrl_reg), + .num_dwords(num_dwords), //interface with kv .kv_write(kv_write), diff --git a/src/hmac/rtl/hmac_reg.sv b/src/hmac/rtl/hmac_reg.sv index 02a70c9e7..a43792141 100644 --- a/src/hmac/rtl/hmac_reg.sv +++ b/src/hmac/rtl/hmac_reg.sv @@ -280,7 +280,7 @@ module hmac_reg ( struct packed{ logic next; logic load_next; - } sha_block_dest_valid; + } mldsa_seed_dest_valid; struct packed{ logic next; logic load_next; @@ -570,7 +570,7 @@ module hmac_reg ( } hmac_block_dest_valid; struct packed{ logic value; - } sha_block_dest_valid; + } mldsa_seed_dest_valid; struct packed{ logic value; } ecc_pkey_dest_valid; @@ -1243,27 +1243,27 @@ module hmac_reg ( end end assign hwif_out.HMAC512_KV_WR_CTRL.hmac_block_dest_valid.value = field_storage.HMAC512_KV_WR_CTRL.hmac_block_dest_valid.value; - // Field: hmac_reg.HMAC512_KV_WR_CTRL.sha_block_dest_valid + // Field: hmac_reg.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid always_comb begin automatic logic [0:0] next_c; automatic logic load_next_c; - next_c = field_storage.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value; + next_c = field_storage.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value; load_next_c = '0; if(decoded_reg_strb.HMAC512_KV_WR_CTRL && decoded_req_is_wr) begin // SW write - next_c = (field_storage.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value & ~decoded_wr_biten[8:8]) | (decoded_wr_data[8:8] & decoded_wr_biten[8:8]); + next_c = (field_storage.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value & ~decoded_wr_biten[8:8]) | (decoded_wr_data[8:8] & decoded_wr_biten[8:8]); load_next_c = '1; end - field_combo.HMAC512_KV_WR_CTRL.sha_block_dest_valid.next = next_c; - field_combo.HMAC512_KV_WR_CTRL.sha_block_dest_valid.load_next = load_next_c; + field_combo.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.next = next_c; + field_combo.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.load_next = load_next_c; end always_ff @(posedge clk or negedge hwif_in.reset_b) begin if(~hwif_in.reset_b) begin - field_storage.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value <= 1'h0; - end else if(field_combo.HMAC512_KV_WR_CTRL.sha_block_dest_valid.load_next) begin - field_storage.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value <= field_combo.HMAC512_KV_WR_CTRL.sha_block_dest_valid.next; + field_storage.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value <= 1'h0; + end else if(field_combo.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.load_next) begin + field_storage.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value <= field_combo.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.next; end end - assign hwif_out.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value = field_storage.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value; + assign hwif_out.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value = field_storage.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value; // Field: hmac_reg.HMAC512_KV_WR_CTRL.ecc_pkey_dest_valid always_comb begin automatic logic [0:0] next_c; @@ -2161,7 +2161,7 @@ module hmac_reg ( assign readback_array[25][5:1] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.write_entry.value : '0; assign readback_array[25][6:6] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.hmac_key_dest_valid.value : '0; assign readback_array[25][7:7] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.hmac_block_dest_valid.value : '0; - assign readback_array[25][8:8] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.sha_block_dest_valid.value : '0; + assign readback_array[25][8:8] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.mldsa_seed_dest_valid.value : '0; assign readback_array[25][9:9] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.ecc_pkey_dest_valid.value : '0; assign readback_array[25][10:10] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.ecc_seed_dest_valid.value : '0; assign readback_array[25][31:11] = (decoded_reg_strb.HMAC512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.HMAC512_KV_WR_CTRL.rsvd.value : '0; diff --git a/src/hmac/rtl/hmac_reg_pkg.sv b/src/hmac/rtl/hmac_reg_pkg.sv index cdda20dea..8628dbd71 100644 --- a/src/hmac/rtl/hmac_reg_pkg.sv +++ b/src/hmac/rtl/hmac_reg_pkg.sv @@ -248,7 +248,7 @@ package hmac_reg_pkg; typedef struct packed{ logic value; - } kv_write_ctrl_reg__sha_block_dest_valid__out_t; + } kv_write_ctrl_reg__mldsa_seed_dest_valid__out_t; typedef struct packed{ logic value; @@ -267,7 +267,7 @@ package hmac_reg_pkg; kv_write_ctrl_reg__write_entry__out_t write_entry; kv_write_ctrl_reg__hmac_key_dest_valid__out_t hmac_key_dest_valid; kv_write_ctrl_reg__hmac_block_dest_valid__out_t hmac_block_dest_valid; - kv_write_ctrl_reg__sha_block_dest_valid__out_t sha_block_dest_valid; + kv_write_ctrl_reg__mldsa_seed_dest_valid__out_t mldsa_seed_dest_valid; kv_write_ctrl_reg__ecc_pkey_dest_valid__out_t ecc_pkey_dest_valid; kv_write_ctrl_reg__ecc_seed_dest_valid__out_t ecc_seed_dest_valid; kv_write_ctrl_reg__rsvd__out_t rsvd; diff --git a/src/hmac/rtl/hmac_reg_uvm.sv b/src/hmac/rtl/hmac_reg_uvm.sv index c68d7413c..1ec73a13d 100644 --- a/src/hmac/rtl/hmac_reg_uvm.sv +++ b/src/hmac/rtl/hmac_reg_uvm.sv @@ -364,7 +364,7 @@ package hmac_reg_uvm; kv_write_ctrl_reg_bit_cg write_entry_bit_cg[5]; kv_write_ctrl_reg_bit_cg hmac_key_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg hmac_block_dest_valid_bit_cg[1]; - kv_write_ctrl_reg_bit_cg sha_block_dest_valid_bit_cg[1]; + kv_write_ctrl_reg_bit_cg mldsa_seed_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg ecc_pkey_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg ecc_seed_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg rsvd_bit_cg[21]; @@ -373,7 +373,7 @@ package hmac_reg_uvm; rand uvm_reg_field write_entry; rand uvm_reg_field hmac_key_dest_valid; rand uvm_reg_field hmac_block_dest_valid; - rand uvm_reg_field sha_block_dest_valid; + rand uvm_reg_field mldsa_seed_dest_valid; rand uvm_reg_field ecc_pkey_dest_valid; rand uvm_reg_field ecc_seed_dest_valid; rand uvm_reg_field rsvd; @@ -396,8 +396,8 @@ package hmac_reg_uvm; this.hmac_key_dest_valid.configure(this, 1, 6, "RW", 0, 'h0, 1, 1, 0); this.hmac_block_dest_valid = new("hmac_block_dest_valid"); this.hmac_block_dest_valid.configure(this, 1, 7, "RW", 0, 'h0, 1, 1, 0); - this.sha_block_dest_valid = new("sha_block_dest_valid"); - this.sha_block_dest_valid.configure(this, 1, 8, "RW", 0, 'h0, 1, 1, 0); + this.mldsa_seed_dest_valid = new("mldsa_seed_dest_valid"); + this.mldsa_seed_dest_valid.configure(this, 1, 8, "RW", 0, 'h0, 1, 1, 0); this.ecc_pkey_dest_valid = new("ecc_pkey_dest_valid"); this.ecc_pkey_dest_valid.configure(this, 1, 9, "RW", 0, 'h0, 1, 1, 0); this.ecc_seed_dest_valid = new("ecc_seed_dest_valid"); @@ -409,7 +409,7 @@ package hmac_reg_uvm; foreach(write_entry_bit_cg[bt]) write_entry_bit_cg[bt] = new(); foreach(hmac_key_dest_valid_bit_cg[bt]) hmac_key_dest_valid_bit_cg[bt] = new(); foreach(hmac_block_dest_valid_bit_cg[bt]) hmac_block_dest_valid_bit_cg[bt] = new(); - foreach(sha_block_dest_valid_bit_cg[bt]) sha_block_dest_valid_bit_cg[bt] = new(); + foreach(mldsa_seed_dest_valid_bit_cg[bt]) mldsa_seed_dest_valid_bit_cg[bt] = new(); foreach(ecc_pkey_dest_valid_bit_cg[bt]) ecc_pkey_dest_valid_bit_cg[bt] = new(); foreach(ecc_seed_dest_valid_bit_cg[bt]) ecc_seed_dest_valid_bit_cg[bt] = new(); foreach(rsvd_bit_cg[bt]) rsvd_bit_cg[bt] = new(); diff --git a/src/integration/asserts/caliptra_top_sva.sv b/src/integration/asserts/caliptra_top_sva.sv index fde59d168..f58a62838 100644 --- a/src/integration/asserts/caliptra_top_sva.sv +++ b/src/integration/asserts/caliptra_top_sva.sv @@ -40,6 +40,7 @@ `define DOE_REG_PATH `DOE_INST_PATH.i_doe_reg `define SERVICES_PATH `CPTRA_TB_TOP_NAME.tb_services_i `define SHA512_PATH `CPTRA_TOP_PATH.sha512.sha512_inst +`define MLDSA_PATH `CPTRA_TOP_PATH.mldsa.mldsa_ctrl_inst `define HMAC_PATH `CPTRA_TOP_PATH.hmac.hmac_inst `define HMAC_REG_PATH `HMAC_PATH.i_hmac_reg `define ECC_PATH `CPTRA_TOP_PATH.ecc_top1.ecc_dsa_ctrl_i @@ -48,7 +49,6 @@ `define SHA512_MASKED_PATH `CPTRA_TOP_PATH.ecc_top1.ecc_dsa_ctrl_i.ecc_hmac_drbg_interface_i.hmac_drbg_i.HMAC_K.u_sha512_core_h1 `define SOC_IFC_TOP_PATH `CPTRA_TOP_PATH.soc_ifc_top1 `define WDT_PATH `SOC_IFC_TOP_PATH.i_wdt -`define MLDSA_PATH `CPTRA_TOP_PATH.mldsa `define SVA_RDC_CLK `CPTRA_TOP_PATH.rdc_clk_cg `define CPTRA_FW_UPD_RST_WINDOW `SOC_IFC_TOP_PATH.i_soc_ifc_boot_fsm.fw_update_rst_window @@ -68,6 +68,7 @@ module caliptra_top_sva //TODO: pass these parameters from their architecture into here localparam SHA512_DIG_NUM_DWORDS = 16; //`SHA512_PATH.DIG_NUM_DWORDS; localparam SHA512_BLOCK_NUM_DWORDS = 32; //`SHA512_PATH.BLOCK_NUM_DWORDS; + localparam MLDSA_SEED_NUM_DWORDS = 8; //`MLDSA_PATH.SEED_NUM_DWORDS; localparam HMAC_KEY_NUM_DWORDS = 12; //`HMAC_PATH.KEY_NUM_DWORDS localparam HMAC_TAG_NUM_DWORDS = 12; //`HMAC_PATH.TAG_NUM_DWORDS localparam HMAC_BLOCK_NUM_DWORDS = 32; //`HMAC_PATH.BLOCK_NUM_DWORDS @@ -159,13 +160,13 @@ module caliptra_top_sva generate for(genvar dword = 0; dword < KV_NUM_DWORDS; dword++) begin - //sha512 digest write - if (dword < SHA512_DIG_NUM_DWORDS) begin - kv_sha512_digest_w_flow: assert property ( - @(posedge `SVA_RDC_CLK) - `SHA512_PATH.kv_dest_done & ~`SHA512_PATH.pcr_hash_extend_ip |-> (`KEYVAULT_PATH.kv_reg1.hwif_out.KEY_ENTRY[`SHA512_PATH.kv_write_ctrl_reg.write_entry][dword].data.value == `SHA512_PATH.kv_reg[(KV_NUM_DWORDS-1) - dword]) - ) - else $display("SVA ERROR: SHA384 digest mismatch!, 0x%04x, 0x%04x", `KEYVAULT_PATH.kv_reg1.hwif_out.KEY_ENTRY[`SHA512_PATH.kv_write_ctrl_reg.write_entry][dword].data.value, `SHA512_PATH.kv_reg[(KV_NUM_DWORDS-1) - dword]); + if (dword < MLDSA_SEED_NUM_DWORDS) begin + //mldsa seed read + kv_mldsa_seed_r_flow: assert property ( + @(posedge `SVA_RDC_CLK) + $rose(`MLDSA_PATH.kv_seed_done) && (dword < (`KEYVAULT_PATH.kv_reg1.hwif_out.KEY_CTRL[`MLDSA_PATH.kv_read.read_entry].last_dword.value + 1)) |-> (`KEYVAULT_PATH.kv_reg1.hwif_out.KEY_ENTRY[`MLDSA_PATH.kv_read.read_entry][dword].data.value == `MLDSA_PATH.seed_reg[(MLDSA_SEED_NUM_DWORDS-1) - dword]) + ) + else $display("SVA ERROR: MLDSA seed mismatch!, 0x%04x, 0x%04x", `KEYVAULT_PATH.kv_reg1.hwif_out.KEY_ENTRY[`MLDSA_PATH.kv_read.read_entry][dword].data.value, `MLDSA_PATH.seed_reg[(MLDSA_SEED_NUM_DWORDS-1) - dword]); end //hmac block read diff --git a/src/integration/rtl/caliptra_reg.h b/src/integration/rtl/caliptra_reg.h index 8ca391325..243e9c470 100644 --- a/src/integration/rtl/caliptra_reg.h +++ b/src/integration/rtl/caliptra_reg.h @@ -490,8 +490,8 @@ #define ECC_REG_ECC_KV_WR_PKEY_CTRL_HMAC_KEY_DEST_VALID_MASK (0x40) #define ECC_REG_ECC_KV_WR_PKEY_CTRL_HMAC_BLOCK_DEST_VALID_LOW (7) #define ECC_REG_ECC_KV_WR_PKEY_CTRL_HMAC_BLOCK_DEST_VALID_MASK (0x80) -#define ECC_REG_ECC_KV_WR_PKEY_CTRL_SHA_BLOCK_DEST_VALID_LOW (8) -#define ECC_REG_ECC_KV_WR_PKEY_CTRL_SHA_BLOCK_DEST_VALID_MASK (0x100) +#define ECC_REG_ECC_KV_WR_PKEY_CTRL_MLDSA_SEED_DEST_VALID_LOW (8) +#define ECC_REG_ECC_KV_WR_PKEY_CTRL_MLDSA_SEED_DEST_VALID_MASK (0x100) #define ECC_REG_ECC_KV_WR_PKEY_CTRL_ECC_PKEY_DEST_VALID_LOW (9) #define ECC_REG_ECC_KV_WR_PKEY_CTRL_ECC_PKEY_DEST_VALID_MASK (0x200) #define ECC_REG_ECC_KV_WR_PKEY_CTRL_ECC_SEED_DEST_VALID_LOW (10) @@ -782,8 +782,8 @@ #define HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK (0x40) #define HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW (7) #define HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK (0x80) -#define HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW (8) -#define HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK (0x100) +#define HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW (8) +#define HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK (0x100) #define HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW (9) #define HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK (0x200) #define HMAC_REG_HMAC512_KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW (10) @@ -1270,134 +1270,6 @@ #define KV_REG_KEY_CTRL_23_DEST_VALID_MASK (0x1fe00) #define KV_REG_KEY_CTRL_23_LAST_DWORD_LOW (17) #define KV_REG_KEY_CTRL_23_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_24 (0x10018060) -#define KV_REG_KEY_CTRL_24 (0x60) -#define KV_REG_KEY_CTRL_24_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_24_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_24_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_24_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_24_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_24_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_24_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_24_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_24_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_24_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_24_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_24_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_24_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_24_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_25 (0x10018064) -#define KV_REG_KEY_CTRL_25 (0x64) -#define KV_REG_KEY_CTRL_25_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_25_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_25_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_25_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_25_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_25_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_25_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_25_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_25_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_25_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_25_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_25_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_25_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_25_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_26 (0x10018068) -#define KV_REG_KEY_CTRL_26 (0x68) -#define KV_REG_KEY_CTRL_26_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_26_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_26_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_26_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_26_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_26_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_26_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_26_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_26_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_26_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_26_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_26_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_26_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_26_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_27 (0x1001806c) -#define KV_REG_KEY_CTRL_27 (0x6c) -#define KV_REG_KEY_CTRL_27_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_27_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_27_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_27_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_27_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_27_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_27_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_27_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_27_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_27_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_27_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_27_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_27_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_27_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_28 (0x10018070) -#define KV_REG_KEY_CTRL_28 (0x70) -#define KV_REG_KEY_CTRL_28_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_28_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_28_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_28_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_28_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_28_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_28_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_28_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_28_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_28_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_28_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_28_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_28_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_28_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_29 (0x10018074) -#define KV_REG_KEY_CTRL_29 (0x74) -#define KV_REG_KEY_CTRL_29_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_29_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_29_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_29_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_29_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_29_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_29_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_29_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_29_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_29_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_29_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_29_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_29_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_29_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_30 (0x10018078) -#define KV_REG_KEY_CTRL_30 (0x78) -#define KV_REG_KEY_CTRL_30_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_30_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_30_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_30_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_30_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_30_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_30_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_30_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_30_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_30_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_30_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_30_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_30_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_30_LAST_DWORD_MASK (0x1e0000) -#define CLP_KV_REG_KEY_CTRL_31 (0x1001807c) -#define KV_REG_KEY_CTRL_31 (0x7c) -#define KV_REG_KEY_CTRL_31_LOCK_WR_LOW (0) -#define KV_REG_KEY_CTRL_31_LOCK_WR_MASK (0x1) -#define KV_REG_KEY_CTRL_31_LOCK_USE_LOW (1) -#define KV_REG_KEY_CTRL_31_LOCK_USE_MASK (0x2) -#define KV_REG_KEY_CTRL_31_CLEAR_LOW (2) -#define KV_REG_KEY_CTRL_31_CLEAR_MASK (0x4) -#define KV_REG_KEY_CTRL_31_RSVD0_LOW (3) -#define KV_REG_KEY_CTRL_31_RSVD0_MASK (0x8) -#define KV_REG_KEY_CTRL_31_RSVD1_LOW (4) -#define KV_REG_KEY_CTRL_31_RSVD1_MASK (0x1f0) -#define KV_REG_KEY_CTRL_31_DEST_VALID_LOW (9) -#define KV_REG_KEY_CTRL_31_DEST_VALID_MASK (0x1fe00) -#define KV_REG_KEY_CTRL_31_LAST_DWORD_LOW (17) -#define KV_REG_KEY_CTRL_31_LAST_DWORD_MASK (0x1e0000) #define CLP_KV_REG_KEY_ENTRY_0_0 (0x10018600) #define KV_REG_KEY_ENTRY_0_0 (0x600) #define CLP_KV_REG_KEY_ENTRY_0_1 (0x10018604) @@ -1422,750 +1294,750 @@ #define KV_REG_KEY_ENTRY_0_10 (0x628) #define CLP_KV_REG_KEY_ENTRY_0_11 (0x1001862c) #define KV_REG_KEY_ENTRY_0_11 (0x62c) -#define CLP_KV_REG_KEY_ENTRY_1_0 (0x10018630) -#define KV_REG_KEY_ENTRY_1_0 (0x630) -#define CLP_KV_REG_KEY_ENTRY_1_1 (0x10018634) -#define KV_REG_KEY_ENTRY_1_1 (0x634) -#define CLP_KV_REG_KEY_ENTRY_1_2 (0x10018638) -#define KV_REG_KEY_ENTRY_1_2 (0x638) -#define CLP_KV_REG_KEY_ENTRY_1_3 (0x1001863c) -#define KV_REG_KEY_ENTRY_1_3 (0x63c) -#define CLP_KV_REG_KEY_ENTRY_1_4 (0x10018640) -#define KV_REG_KEY_ENTRY_1_4 (0x640) -#define CLP_KV_REG_KEY_ENTRY_1_5 (0x10018644) -#define KV_REG_KEY_ENTRY_1_5 (0x644) -#define CLP_KV_REG_KEY_ENTRY_1_6 (0x10018648) -#define KV_REG_KEY_ENTRY_1_6 (0x648) -#define CLP_KV_REG_KEY_ENTRY_1_7 (0x1001864c) -#define KV_REG_KEY_ENTRY_1_7 (0x64c) -#define CLP_KV_REG_KEY_ENTRY_1_8 (0x10018650) -#define KV_REG_KEY_ENTRY_1_8 (0x650) -#define CLP_KV_REG_KEY_ENTRY_1_9 (0x10018654) -#define KV_REG_KEY_ENTRY_1_9 (0x654) -#define CLP_KV_REG_KEY_ENTRY_1_10 (0x10018658) -#define KV_REG_KEY_ENTRY_1_10 (0x658) -#define CLP_KV_REG_KEY_ENTRY_1_11 (0x1001865c) -#define KV_REG_KEY_ENTRY_1_11 (0x65c) -#define CLP_KV_REG_KEY_ENTRY_2_0 (0x10018660) -#define KV_REG_KEY_ENTRY_2_0 (0x660) -#define CLP_KV_REG_KEY_ENTRY_2_1 (0x10018664) -#define KV_REG_KEY_ENTRY_2_1 (0x664) -#define CLP_KV_REG_KEY_ENTRY_2_2 (0x10018668) -#define KV_REG_KEY_ENTRY_2_2 (0x668) -#define CLP_KV_REG_KEY_ENTRY_2_3 (0x1001866c) -#define KV_REG_KEY_ENTRY_2_3 (0x66c) -#define CLP_KV_REG_KEY_ENTRY_2_4 (0x10018670) -#define KV_REG_KEY_ENTRY_2_4 (0x670) -#define CLP_KV_REG_KEY_ENTRY_2_5 (0x10018674) -#define KV_REG_KEY_ENTRY_2_5 (0x674) -#define CLP_KV_REG_KEY_ENTRY_2_6 (0x10018678) -#define KV_REG_KEY_ENTRY_2_6 (0x678) -#define CLP_KV_REG_KEY_ENTRY_2_7 (0x1001867c) -#define KV_REG_KEY_ENTRY_2_7 (0x67c) -#define CLP_KV_REG_KEY_ENTRY_2_8 (0x10018680) -#define KV_REG_KEY_ENTRY_2_8 (0x680) -#define CLP_KV_REG_KEY_ENTRY_2_9 (0x10018684) -#define KV_REG_KEY_ENTRY_2_9 (0x684) -#define CLP_KV_REG_KEY_ENTRY_2_10 (0x10018688) -#define KV_REG_KEY_ENTRY_2_10 (0x688) -#define CLP_KV_REG_KEY_ENTRY_2_11 (0x1001868c) -#define KV_REG_KEY_ENTRY_2_11 (0x68c) -#define CLP_KV_REG_KEY_ENTRY_3_0 (0x10018690) -#define KV_REG_KEY_ENTRY_3_0 (0x690) -#define CLP_KV_REG_KEY_ENTRY_3_1 (0x10018694) -#define KV_REG_KEY_ENTRY_3_1 (0x694) -#define CLP_KV_REG_KEY_ENTRY_3_2 (0x10018698) -#define KV_REG_KEY_ENTRY_3_2 (0x698) -#define CLP_KV_REG_KEY_ENTRY_3_3 (0x1001869c) -#define KV_REG_KEY_ENTRY_3_3 (0x69c) -#define CLP_KV_REG_KEY_ENTRY_3_4 (0x100186a0) -#define KV_REG_KEY_ENTRY_3_4 (0x6a0) -#define CLP_KV_REG_KEY_ENTRY_3_5 (0x100186a4) -#define KV_REG_KEY_ENTRY_3_5 (0x6a4) -#define CLP_KV_REG_KEY_ENTRY_3_6 (0x100186a8) -#define KV_REG_KEY_ENTRY_3_6 (0x6a8) -#define CLP_KV_REG_KEY_ENTRY_3_7 (0x100186ac) -#define KV_REG_KEY_ENTRY_3_7 (0x6ac) -#define CLP_KV_REG_KEY_ENTRY_3_8 (0x100186b0) -#define KV_REG_KEY_ENTRY_3_8 (0x6b0) -#define CLP_KV_REG_KEY_ENTRY_3_9 (0x100186b4) -#define KV_REG_KEY_ENTRY_3_9 (0x6b4) -#define CLP_KV_REG_KEY_ENTRY_3_10 (0x100186b8) -#define KV_REG_KEY_ENTRY_3_10 (0x6b8) -#define CLP_KV_REG_KEY_ENTRY_3_11 (0x100186bc) -#define KV_REG_KEY_ENTRY_3_11 (0x6bc) -#define CLP_KV_REG_KEY_ENTRY_4_0 (0x100186c0) -#define KV_REG_KEY_ENTRY_4_0 (0x6c0) -#define CLP_KV_REG_KEY_ENTRY_4_1 (0x100186c4) -#define KV_REG_KEY_ENTRY_4_1 (0x6c4) -#define CLP_KV_REG_KEY_ENTRY_4_2 (0x100186c8) -#define KV_REG_KEY_ENTRY_4_2 (0x6c8) -#define CLP_KV_REG_KEY_ENTRY_4_3 (0x100186cc) -#define KV_REG_KEY_ENTRY_4_3 (0x6cc) -#define CLP_KV_REG_KEY_ENTRY_4_4 (0x100186d0) -#define KV_REG_KEY_ENTRY_4_4 (0x6d0) -#define CLP_KV_REG_KEY_ENTRY_4_5 (0x100186d4) -#define KV_REG_KEY_ENTRY_4_5 (0x6d4) -#define CLP_KV_REG_KEY_ENTRY_4_6 (0x100186d8) -#define KV_REG_KEY_ENTRY_4_6 (0x6d8) -#define CLP_KV_REG_KEY_ENTRY_4_7 (0x100186dc) -#define KV_REG_KEY_ENTRY_4_7 (0x6dc) -#define CLP_KV_REG_KEY_ENTRY_4_8 (0x100186e0) -#define KV_REG_KEY_ENTRY_4_8 (0x6e0) -#define CLP_KV_REG_KEY_ENTRY_4_9 (0x100186e4) -#define KV_REG_KEY_ENTRY_4_9 (0x6e4) -#define CLP_KV_REG_KEY_ENTRY_4_10 (0x100186e8) -#define KV_REG_KEY_ENTRY_4_10 (0x6e8) -#define CLP_KV_REG_KEY_ENTRY_4_11 (0x100186ec) -#define KV_REG_KEY_ENTRY_4_11 (0x6ec) -#define CLP_KV_REG_KEY_ENTRY_5_0 (0x100186f0) -#define KV_REG_KEY_ENTRY_5_0 (0x6f0) -#define CLP_KV_REG_KEY_ENTRY_5_1 (0x100186f4) -#define KV_REG_KEY_ENTRY_5_1 (0x6f4) -#define CLP_KV_REG_KEY_ENTRY_5_2 (0x100186f8) -#define KV_REG_KEY_ENTRY_5_2 (0x6f8) -#define CLP_KV_REG_KEY_ENTRY_5_3 (0x100186fc) -#define KV_REG_KEY_ENTRY_5_3 (0x6fc) -#define CLP_KV_REG_KEY_ENTRY_5_4 (0x10018700) -#define KV_REG_KEY_ENTRY_5_4 (0x700) -#define CLP_KV_REG_KEY_ENTRY_5_5 (0x10018704) -#define KV_REG_KEY_ENTRY_5_5 (0x704) -#define CLP_KV_REG_KEY_ENTRY_5_6 (0x10018708) -#define KV_REG_KEY_ENTRY_5_6 (0x708) -#define CLP_KV_REG_KEY_ENTRY_5_7 (0x1001870c) -#define KV_REG_KEY_ENTRY_5_7 (0x70c) -#define CLP_KV_REG_KEY_ENTRY_5_8 (0x10018710) -#define KV_REG_KEY_ENTRY_5_8 (0x710) -#define CLP_KV_REG_KEY_ENTRY_5_9 (0x10018714) -#define KV_REG_KEY_ENTRY_5_9 (0x714) -#define CLP_KV_REG_KEY_ENTRY_5_10 (0x10018718) -#define KV_REG_KEY_ENTRY_5_10 (0x718) -#define CLP_KV_REG_KEY_ENTRY_5_11 (0x1001871c) -#define KV_REG_KEY_ENTRY_5_11 (0x71c) -#define CLP_KV_REG_KEY_ENTRY_6_0 (0x10018720) -#define KV_REG_KEY_ENTRY_6_0 (0x720) -#define CLP_KV_REG_KEY_ENTRY_6_1 (0x10018724) -#define KV_REG_KEY_ENTRY_6_1 (0x724) -#define CLP_KV_REG_KEY_ENTRY_6_2 (0x10018728) -#define KV_REG_KEY_ENTRY_6_2 (0x728) -#define CLP_KV_REG_KEY_ENTRY_6_3 (0x1001872c) -#define KV_REG_KEY_ENTRY_6_3 (0x72c) -#define CLP_KV_REG_KEY_ENTRY_6_4 (0x10018730) -#define KV_REG_KEY_ENTRY_6_4 (0x730) -#define CLP_KV_REG_KEY_ENTRY_6_5 (0x10018734) -#define KV_REG_KEY_ENTRY_6_5 (0x734) -#define CLP_KV_REG_KEY_ENTRY_6_6 (0x10018738) -#define KV_REG_KEY_ENTRY_6_6 (0x738) -#define CLP_KV_REG_KEY_ENTRY_6_7 (0x1001873c) -#define KV_REG_KEY_ENTRY_6_7 (0x73c) -#define CLP_KV_REG_KEY_ENTRY_6_8 (0x10018740) -#define KV_REG_KEY_ENTRY_6_8 (0x740) -#define CLP_KV_REG_KEY_ENTRY_6_9 (0x10018744) -#define KV_REG_KEY_ENTRY_6_9 (0x744) -#define CLP_KV_REG_KEY_ENTRY_6_10 (0x10018748) -#define KV_REG_KEY_ENTRY_6_10 (0x748) -#define CLP_KV_REG_KEY_ENTRY_6_11 (0x1001874c) -#define KV_REG_KEY_ENTRY_6_11 (0x74c) -#define CLP_KV_REG_KEY_ENTRY_7_0 (0x10018750) -#define KV_REG_KEY_ENTRY_7_0 (0x750) -#define CLP_KV_REG_KEY_ENTRY_7_1 (0x10018754) -#define KV_REG_KEY_ENTRY_7_1 (0x754) -#define CLP_KV_REG_KEY_ENTRY_7_2 (0x10018758) -#define KV_REG_KEY_ENTRY_7_2 (0x758) -#define CLP_KV_REG_KEY_ENTRY_7_3 (0x1001875c) -#define KV_REG_KEY_ENTRY_7_3 (0x75c) -#define CLP_KV_REG_KEY_ENTRY_7_4 (0x10018760) -#define KV_REG_KEY_ENTRY_7_4 (0x760) -#define CLP_KV_REG_KEY_ENTRY_7_5 (0x10018764) -#define KV_REG_KEY_ENTRY_7_5 (0x764) -#define CLP_KV_REG_KEY_ENTRY_7_6 (0x10018768) -#define KV_REG_KEY_ENTRY_7_6 (0x768) -#define CLP_KV_REG_KEY_ENTRY_7_7 (0x1001876c) -#define KV_REG_KEY_ENTRY_7_7 (0x76c) -#define CLP_KV_REG_KEY_ENTRY_7_8 (0x10018770) -#define KV_REG_KEY_ENTRY_7_8 (0x770) -#define CLP_KV_REG_KEY_ENTRY_7_9 (0x10018774) -#define KV_REG_KEY_ENTRY_7_9 (0x774) -#define CLP_KV_REG_KEY_ENTRY_7_10 (0x10018778) -#define KV_REG_KEY_ENTRY_7_10 (0x778) -#define CLP_KV_REG_KEY_ENTRY_7_11 (0x1001877c) -#define KV_REG_KEY_ENTRY_7_11 (0x77c) -#define CLP_KV_REG_KEY_ENTRY_8_0 (0x10018780) -#define KV_REG_KEY_ENTRY_8_0 (0x780) -#define CLP_KV_REG_KEY_ENTRY_8_1 (0x10018784) -#define KV_REG_KEY_ENTRY_8_1 (0x784) -#define CLP_KV_REG_KEY_ENTRY_8_2 (0x10018788) -#define KV_REG_KEY_ENTRY_8_2 (0x788) -#define CLP_KV_REG_KEY_ENTRY_8_3 (0x1001878c) -#define KV_REG_KEY_ENTRY_8_3 (0x78c) -#define CLP_KV_REG_KEY_ENTRY_8_4 (0x10018790) -#define KV_REG_KEY_ENTRY_8_4 (0x790) -#define CLP_KV_REG_KEY_ENTRY_8_5 (0x10018794) -#define KV_REG_KEY_ENTRY_8_5 (0x794) -#define CLP_KV_REG_KEY_ENTRY_8_6 (0x10018798) -#define KV_REG_KEY_ENTRY_8_6 (0x798) -#define CLP_KV_REG_KEY_ENTRY_8_7 (0x1001879c) -#define KV_REG_KEY_ENTRY_8_7 (0x79c) -#define CLP_KV_REG_KEY_ENTRY_8_8 (0x100187a0) -#define KV_REG_KEY_ENTRY_8_8 (0x7a0) -#define CLP_KV_REG_KEY_ENTRY_8_9 (0x100187a4) -#define KV_REG_KEY_ENTRY_8_9 (0x7a4) -#define CLP_KV_REG_KEY_ENTRY_8_10 (0x100187a8) -#define KV_REG_KEY_ENTRY_8_10 (0x7a8) -#define CLP_KV_REG_KEY_ENTRY_8_11 (0x100187ac) -#define KV_REG_KEY_ENTRY_8_11 (0x7ac) -#define CLP_KV_REG_KEY_ENTRY_9_0 (0x100187b0) -#define KV_REG_KEY_ENTRY_9_0 (0x7b0) -#define CLP_KV_REG_KEY_ENTRY_9_1 (0x100187b4) -#define KV_REG_KEY_ENTRY_9_1 (0x7b4) -#define CLP_KV_REG_KEY_ENTRY_9_2 (0x100187b8) -#define KV_REG_KEY_ENTRY_9_2 (0x7b8) -#define CLP_KV_REG_KEY_ENTRY_9_3 (0x100187bc) -#define KV_REG_KEY_ENTRY_9_3 (0x7bc) -#define CLP_KV_REG_KEY_ENTRY_9_4 (0x100187c0) -#define KV_REG_KEY_ENTRY_9_4 (0x7c0) -#define CLP_KV_REG_KEY_ENTRY_9_5 (0x100187c4) -#define KV_REG_KEY_ENTRY_9_5 (0x7c4) -#define CLP_KV_REG_KEY_ENTRY_9_6 (0x100187c8) -#define KV_REG_KEY_ENTRY_9_6 (0x7c8) -#define CLP_KV_REG_KEY_ENTRY_9_7 (0x100187cc) -#define KV_REG_KEY_ENTRY_9_7 (0x7cc) -#define CLP_KV_REG_KEY_ENTRY_9_8 (0x100187d0) -#define KV_REG_KEY_ENTRY_9_8 (0x7d0) -#define CLP_KV_REG_KEY_ENTRY_9_9 (0x100187d4) -#define KV_REG_KEY_ENTRY_9_9 (0x7d4) -#define CLP_KV_REG_KEY_ENTRY_9_10 (0x100187d8) -#define KV_REG_KEY_ENTRY_9_10 (0x7d8) -#define CLP_KV_REG_KEY_ENTRY_9_11 (0x100187dc) -#define KV_REG_KEY_ENTRY_9_11 (0x7dc) -#define CLP_KV_REG_KEY_ENTRY_10_0 (0x100187e0) -#define KV_REG_KEY_ENTRY_10_0 (0x7e0) -#define CLP_KV_REG_KEY_ENTRY_10_1 (0x100187e4) -#define KV_REG_KEY_ENTRY_10_1 (0x7e4) -#define CLP_KV_REG_KEY_ENTRY_10_2 (0x100187e8) -#define KV_REG_KEY_ENTRY_10_2 (0x7e8) -#define CLP_KV_REG_KEY_ENTRY_10_3 (0x100187ec) -#define KV_REG_KEY_ENTRY_10_3 (0x7ec) -#define CLP_KV_REG_KEY_ENTRY_10_4 (0x100187f0) -#define KV_REG_KEY_ENTRY_10_4 (0x7f0) -#define CLP_KV_REG_KEY_ENTRY_10_5 (0x100187f4) -#define KV_REG_KEY_ENTRY_10_5 (0x7f4) -#define CLP_KV_REG_KEY_ENTRY_10_6 (0x100187f8) -#define KV_REG_KEY_ENTRY_10_6 (0x7f8) -#define CLP_KV_REG_KEY_ENTRY_10_7 (0x100187fc) -#define KV_REG_KEY_ENTRY_10_7 (0x7fc) -#define CLP_KV_REG_KEY_ENTRY_10_8 (0x10018800) -#define KV_REG_KEY_ENTRY_10_8 (0x800) -#define CLP_KV_REG_KEY_ENTRY_10_9 (0x10018804) -#define KV_REG_KEY_ENTRY_10_9 (0x804) -#define CLP_KV_REG_KEY_ENTRY_10_10 (0x10018808) -#define KV_REG_KEY_ENTRY_10_10 (0x808) -#define CLP_KV_REG_KEY_ENTRY_10_11 (0x1001880c) -#define KV_REG_KEY_ENTRY_10_11 (0x80c) -#define CLP_KV_REG_KEY_ENTRY_11_0 (0x10018810) -#define KV_REG_KEY_ENTRY_11_0 (0x810) -#define CLP_KV_REG_KEY_ENTRY_11_1 (0x10018814) -#define KV_REG_KEY_ENTRY_11_1 (0x814) -#define CLP_KV_REG_KEY_ENTRY_11_2 (0x10018818) -#define KV_REG_KEY_ENTRY_11_2 (0x818) -#define CLP_KV_REG_KEY_ENTRY_11_3 (0x1001881c) -#define KV_REG_KEY_ENTRY_11_3 (0x81c) -#define CLP_KV_REG_KEY_ENTRY_11_4 (0x10018820) -#define KV_REG_KEY_ENTRY_11_4 (0x820) -#define CLP_KV_REG_KEY_ENTRY_11_5 (0x10018824) -#define KV_REG_KEY_ENTRY_11_5 (0x824) -#define CLP_KV_REG_KEY_ENTRY_11_6 (0x10018828) -#define KV_REG_KEY_ENTRY_11_6 (0x828) -#define CLP_KV_REG_KEY_ENTRY_11_7 (0x1001882c) -#define KV_REG_KEY_ENTRY_11_7 (0x82c) -#define CLP_KV_REG_KEY_ENTRY_11_8 (0x10018830) -#define KV_REG_KEY_ENTRY_11_8 (0x830) -#define CLP_KV_REG_KEY_ENTRY_11_9 (0x10018834) -#define KV_REG_KEY_ENTRY_11_9 (0x834) -#define CLP_KV_REG_KEY_ENTRY_11_10 (0x10018838) -#define KV_REG_KEY_ENTRY_11_10 (0x838) -#define CLP_KV_REG_KEY_ENTRY_11_11 (0x1001883c) -#define KV_REG_KEY_ENTRY_11_11 (0x83c) -#define CLP_KV_REG_KEY_ENTRY_12_0 (0x10018840) -#define KV_REG_KEY_ENTRY_12_0 (0x840) -#define CLP_KV_REG_KEY_ENTRY_12_1 (0x10018844) -#define KV_REG_KEY_ENTRY_12_1 (0x844) -#define CLP_KV_REG_KEY_ENTRY_12_2 (0x10018848) -#define KV_REG_KEY_ENTRY_12_2 (0x848) -#define CLP_KV_REG_KEY_ENTRY_12_3 (0x1001884c) -#define KV_REG_KEY_ENTRY_12_3 (0x84c) -#define CLP_KV_REG_KEY_ENTRY_12_4 (0x10018850) -#define KV_REG_KEY_ENTRY_12_4 (0x850) -#define CLP_KV_REG_KEY_ENTRY_12_5 (0x10018854) -#define KV_REG_KEY_ENTRY_12_5 (0x854) -#define CLP_KV_REG_KEY_ENTRY_12_6 (0x10018858) -#define KV_REG_KEY_ENTRY_12_6 (0x858) -#define CLP_KV_REG_KEY_ENTRY_12_7 (0x1001885c) -#define KV_REG_KEY_ENTRY_12_7 (0x85c) -#define CLP_KV_REG_KEY_ENTRY_12_8 (0x10018860) -#define KV_REG_KEY_ENTRY_12_8 (0x860) -#define CLP_KV_REG_KEY_ENTRY_12_9 (0x10018864) -#define KV_REG_KEY_ENTRY_12_9 (0x864) -#define CLP_KV_REG_KEY_ENTRY_12_10 (0x10018868) -#define KV_REG_KEY_ENTRY_12_10 (0x868) -#define CLP_KV_REG_KEY_ENTRY_12_11 (0x1001886c) -#define KV_REG_KEY_ENTRY_12_11 (0x86c) -#define CLP_KV_REG_KEY_ENTRY_13_0 (0x10018870) -#define KV_REG_KEY_ENTRY_13_0 (0x870) -#define CLP_KV_REG_KEY_ENTRY_13_1 (0x10018874) -#define KV_REG_KEY_ENTRY_13_1 (0x874) -#define CLP_KV_REG_KEY_ENTRY_13_2 (0x10018878) -#define KV_REG_KEY_ENTRY_13_2 (0x878) -#define CLP_KV_REG_KEY_ENTRY_13_3 (0x1001887c) -#define KV_REG_KEY_ENTRY_13_3 (0x87c) -#define CLP_KV_REG_KEY_ENTRY_13_4 (0x10018880) -#define KV_REG_KEY_ENTRY_13_4 (0x880) -#define CLP_KV_REG_KEY_ENTRY_13_5 (0x10018884) -#define KV_REG_KEY_ENTRY_13_5 (0x884) -#define CLP_KV_REG_KEY_ENTRY_13_6 (0x10018888) -#define KV_REG_KEY_ENTRY_13_6 (0x888) -#define CLP_KV_REG_KEY_ENTRY_13_7 (0x1001888c) -#define KV_REG_KEY_ENTRY_13_7 (0x88c) -#define CLP_KV_REG_KEY_ENTRY_13_8 (0x10018890) -#define KV_REG_KEY_ENTRY_13_8 (0x890) -#define CLP_KV_REG_KEY_ENTRY_13_9 (0x10018894) -#define KV_REG_KEY_ENTRY_13_9 (0x894) -#define CLP_KV_REG_KEY_ENTRY_13_10 (0x10018898) -#define KV_REG_KEY_ENTRY_13_10 (0x898) -#define CLP_KV_REG_KEY_ENTRY_13_11 (0x1001889c) -#define KV_REG_KEY_ENTRY_13_11 (0x89c) -#define CLP_KV_REG_KEY_ENTRY_14_0 (0x100188a0) -#define KV_REG_KEY_ENTRY_14_0 (0x8a0) -#define CLP_KV_REG_KEY_ENTRY_14_1 (0x100188a4) -#define KV_REG_KEY_ENTRY_14_1 (0x8a4) -#define CLP_KV_REG_KEY_ENTRY_14_2 (0x100188a8) -#define KV_REG_KEY_ENTRY_14_2 (0x8a8) -#define CLP_KV_REG_KEY_ENTRY_14_3 (0x100188ac) -#define KV_REG_KEY_ENTRY_14_3 (0x8ac) -#define CLP_KV_REG_KEY_ENTRY_14_4 (0x100188b0) -#define KV_REG_KEY_ENTRY_14_4 (0x8b0) -#define CLP_KV_REG_KEY_ENTRY_14_5 (0x100188b4) -#define KV_REG_KEY_ENTRY_14_5 (0x8b4) -#define CLP_KV_REG_KEY_ENTRY_14_6 (0x100188b8) -#define KV_REG_KEY_ENTRY_14_6 (0x8b8) -#define CLP_KV_REG_KEY_ENTRY_14_7 (0x100188bc) -#define KV_REG_KEY_ENTRY_14_7 (0x8bc) -#define CLP_KV_REG_KEY_ENTRY_14_8 (0x100188c0) -#define KV_REG_KEY_ENTRY_14_8 (0x8c0) -#define CLP_KV_REG_KEY_ENTRY_14_9 (0x100188c4) -#define KV_REG_KEY_ENTRY_14_9 (0x8c4) -#define CLP_KV_REG_KEY_ENTRY_14_10 (0x100188c8) -#define KV_REG_KEY_ENTRY_14_10 (0x8c8) -#define CLP_KV_REG_KEY_ENTRY_14_11 (0x100188cc) -#define KV_REG_KEY_ENTRY_14_11 (0x8cc) -#define CLP_KV_REG_KEY_ENTRY_15_0 (0x100188d0) -#define KV_REG_KEY_ENTRY_15_0 (0x8d0) -#define CLP_KV_REG_KEY_ENTRY_15_1 (0x100188d4) -#define KV_REG_KEY_ENTRY_15_1 (0x8d4) -#define CLP_KV_REG_KEY_ENTRY_15_2 (0x100188d8) -#define KV_REG_KEY_ENTRY_15_2 (0x8d8) -#define CLP_KV_REG_KEY_ENTRY_15_3 (0x100188dc) -#define KV_REG_KEY_ENTRY_15_3 (0x8dc) -#define CLP_KV_REG_KEY_ENTRY_15_4 (0x100188e0) -#define KV_REG_KEY_ENTRY_15_4 (0x8e0) -#define CLP_KV_REG_KEY_ENTRY_15_5 (0x100188e4) -#define KV_REG_KEY_ENTRY_15_5 (0x8e4) -#define CLP_KV_REG_KEY_ENTRY_15_6 (0x100188e8) -#define KV_REG_KEY_ENTRY_15_6 (0x8e8) -#define CLP_KV_REG_KEY_ENTRY_15_7 (0x100188ec) -#define KV_REG_KEY_ENTRY_15_7 (0x8ec) -#define CLP_KV_REG_KEY_ENTRY_15_8 (0x100188f0) -#define KV_REG_KEY_ENTRY_15_8 (0x8f0) -#define CLP_KV_REG_KEY_ENTRY_15_9 (0x100188f4) -#define KV_REG_KEY_ENTRY_15_9 (0x8f4) -#define CLP_KV_REG_KEY_ENTRY_15_10 (0x100188f8) -#define KV_REG_KEY_ENTRY_15_10 (0x8f8) -#define CLP_KV_REG_KEY_ENTRY_15_11 (0x100188fc) -#define KV_REG_KEY_ENTRY_15_11 (0x8fc) -#define CLP_KV_REG_KEY_ENTRY_16_0 (0x10018900) -#define KV_REG_KEY_ENTRY_16_0 (0x900) -#define CLP_KV_REG_KEY_ENTRY_16_1 (0x10018904) -#define KV_REG_KEY_ENTRY_16_1 (0x904) -#define CLP_KV_REG_KEY_ENTRY_16_2 (0x10018908) -#define KV_REG_KEY_ENTRY_16_2 (0x908) -#define CLP_KV_REG_KEY_ENTRY_16_3 (0x1001890c) -#define KV_REG_KEY_ENTRY_16_3 (0x90c) -#define CLP_KV_REG_KEY_ENTRY_16_4 (0x10018910) -#define KV_REG_KEY_ENTRY_16_4 (0x910) -#define CLP_KV_REG_KEY_ENTRY_16_5 (0x10018914) -#define KV_REG_KEY_ENTRY_16_5 (0x914) -#define CLP_KV_REG_KEY_ENTRY_16_6 (0x10018918) -#define KV_REG_KEY_ENTRY_16_6 (0x918) -#define CLP_KV_REG_KEY_ENTRY_16_7 (0x1001891c) -#define KV_REG_KEY_ENTRY_16_7 (0x91c) -#define CLP_KV_REG_KEY_ENTRY_16_8 (0x10018920) -#define KV_REG_KEY_ENTRY_16_8 (0x920) -#define CLP_KV_REG_KEY_ENTRY_16_9 (0x10018924) -#define KV_REG_KEY_ENTRY_16_9 (0x924) -#define CLP_KV_REG_KEY_ENTRY_16_10 (0x10018928) -#define KV_REG_KEY_ENTRY_16_10 (0x928) -#define CLP_KV_REG_KEY_ENTRY_16_11 (0x1001892c) -#define KV_REG_KEY_ENTRY_16_11 (0x92c) -#define CLP_KV_REG_KEY_ENTRY_17_0 (0x10018930) -#define KV_REG_KEY_ENTRY_17_0 (0x930) -#define CLP_KV_REG_KEY_ENTRY_17_1 (0x10018934) -#define KV_REG_KEY_ENTRY_17_1 (0x934) -#define CLP_KV_REG_KEY_ENTRY_17_2 (0x10018938) -#define KV_REG_KEY_ENTRY_17_2 (0x938) -#define CLP_KV_REG_KEY_ENTRY_17_3 (0x1001893c) -#define KV_REG_KEY_ENTRY_17_3 (0x93c) -#define CLP_KV_REG_KEY_ENTRY_17_4 (0x10018940) -#define KV_REG_KEY_ENTRY_17_4 (0x940) -#define CLP_KV_REG_KEY_ENTRY_17_5 (0x10018944) -#define KV_REG_KEY_ENTRY_17_5 (0x944) -#define CLP_KV_REG_KEY_ENTRY_17_6 (0x10018948) -#define KV_REG_KEY_ENTRY_17_6 (0x948) -#define CLP_KV_REG_KEY_ENTRY_17_7 (0x1001894c) -#define KV_REG_KEY_ENTRY_17_7 (0x94c) -#define CLP_KV_REG_KEY_ENTRY_17_8 (0x10018950) -#define KV_REG_KEY_ENTRY_17_8 (0x950) -#define CLP_KV_REG_KEY_ENTRY_17_9 (0x10018954) -#define KV_REG_KEY_ENTRY_17_9 (0x954) -#define CLP_KV_REG_KEY_ENTRY_17_10 (0x10018958) -#define KV_REG_KEY_ENTRY_17_10 (0x958) -#define CLP_KV_REG_KEY_ENTRY_17_11 (0x1001895c) -#define KV_REG_KEY_ENTRY_17_11 (0x95c) -#define CLP_KV_REG_KEY_ENTRY_18_0 (0x10018960) -#define KV_REG_KEY_ENTRY_18_0 (0x960) -#define CLP_KV_REG_KEY_ENTRY_18_1 (0x10018964) -#define KV_REG_KEY_ENTRY_18_1 (0x964) -#define CLP_KV_REG_KEY_ENTRY_18_2 (0x10018968) -#define KV_REG_KEY_ENTRY_18_2 (0x968) -#define CLP_KV_REG_KEY_ENTRY_18_3 (0x1001896c) -#define KV_REG_KEY_ENTRY_18_3 (0x96c) -#define CLP_KV_REG_KEY_ENTRY_18_4 (0x10018970) -#define KV_REG_KEY_ENTRY_18_4 (0x970) -#define CLP_KV_REG_KEY_ENTRY_18_5 (0x10018974) -#define KV_REG_KEY_ENTRY_18_5 (0x974) -#define CLP_KV_REG_KEY_ENTRY_18_6 (0x10018978) -#define KV_REG_KEY_ENTRY_18_6 (0x978) -#define CLP_KV_REG_KEY_ENTRY_18_7 (0x1001897c) -#define KV_REG_KEY_ENTRY_18_7 (0x97c) -#define CLP_KV_REG_KEY_ENTRY_18_8 (0x10018980) -#define KV_REG_KEY_ENTRY_18_8 (0x980) -#define CLP_KV_REG_KEY_ENTRY_18_9 (0x10018984) -#define KV_REG_KEY_ENTRY_18_9 (0x984) -#define CLP_KV_REG_KEY_ENTRY_18_10 (0x10018988) -#define KV_REG_KEY_ENTRY_18_10 (0x988) -#define CLP_KV_REG_KEY_ENTRY_18_11 (0x1001898c) -#define KV_REG_KEY_ENTRY_18_11 (0x98c) -#define CLP_KV_REG_KEY_ENTRY_19_0 (0x10018990) -#define KV_REG_KEY_ENTRY_19_0 (0x990) -#define CLP_KV_REG_KEY_ENTRY_19_1 (0x10018994) -#define KV_REG_KEY_ENTRY_19_1 (0x994) -#define CLP_KV_REG_KEY_ENTRY_19_2 (0x10018998) -#define KV_REG_KEY_ENTRY_19_2 (0x998) -#define CLP_KV_REG_KEY_ENTRY_19_3 (0x1001899c) -#define KV_REG_KEY_ENTRY_19_3 (0x99c) -#define CLP_KV_REG_KEY_ENTRY_19_4 (0x100189a0) -#define KV_REG_KEY_ENTRY_19_4 (0x9a0) -#define CLP_KV_REG_KEY_ENTRY_19_5 (0x100189a4) -#define KV_REG_KEY_ENTRY_19_5 (0x9a4) -#define CLP_KV_REG_KEY_ENTRY_19_6 (0x100189a8) -#define KV_REG_KEY_ENTRY_19_6 (0x9a8) -#define CLP_KV_REG_KEY_ENTRY_19_7 (0x100189ac) -#define KV_REG_KEY_ENTRY_19_7 (0x9ac) -#define CLP_KV_REG_KEY_ENTRY_19_8 (0x100189b0) -#define KV_REG_KEY_ENTRY_19_8 (0x9b0) -#define CLP_KV_REG_KEY_ENTRY_19_9 (0x100189b4) -#define KV_REG_KEY_ENTRY_19_9 (0x9b4) -#define CLP_KV_REG_KEY_ENTRY_19_10 (0x100189b8) -#define KV_REG_KEY_ENTRY_19_10 (0x9b8) -#define CLP_KV_REG_KEY_ENTRY_19_11 (0x100189bc) -#define KV_REG_KEY_ENTRY_19_11 (0x9bc) -#define CLP_KV_REG_KEY_ENTRY_20_0 (0x100189c0) -#define KV_REG_KEY_ENTRY_20_0 (0x9c0) -#define CLP_KV_REG_KEY_ENTRY_20_1 (0x100189c4) -#define KV_REG_KEY_ENTRY_20_1 (0x9c4) -#define CLP_KV_REG_KEY_ENTRY_20_2 (0x100189c8) -#define KV_REG_KEY_ENTRY_20_2 (0x9c8) -#define CLP_KV_REG_KEY_ENTRY_20_3 (0x100189cc) -#define KV_REG_KEY_ENTRY_20_3 (0x9cc) -#define CLP_KV_REG_KEY_ENTRY_20_4 (0x100189d0) -#define KV_REG_KEY_ENTRY_20_4 (0x9d0) -#define CLP_KV_REG_KEY_ENTRY_20_5 (0x100189d4) -#define KV_REG_KEY_ENTRY_20_5 (0x9d4) -#define CLP_KV_REG_KEY_ENTRY_20_6 (0x100189d8) -#define KV_REG_KEY_ENTRY_20_6 (0x9d8) -#define CLP_KV_REG_KEY_ENTRY_20_7 (0x100189dc) -#define KV_REG_KEY_ENTRY_20_7 (0x9dc) -#define CLP_KV_REG_KEY_ENTRY_20_8 (0x100189e0) -#define KV_REG_KEY_ENTRY_20_8 (0x9e0) -#define CLP_KV_REG_KEY_ENTRY_20_9 (0x100189e4) -#define KV_REG_KEY_ENTRY_20_9 (0x9e4) -#define CLP_KV_REG_KEY_ENTRY_20_10 (0x100189e8) -#define KV_REG_KEY_ENTRY_20_10 (0x9e8) -#define CLP_KV_REG_KEY_ENTRY_20_11 (0x100189ec) -#define KV_REG_KEY_ENTRY_20_11 (0x9ec) -#define CLP_KV_REG_KEY_ENTRY_21_0 (0x100189f0) -#define KV_REG_KEY_ENTRY_21_0 (0x9f0) -#define CLP_KV_REG_KEY_ENTRY_21_1 (0x100189f4) -#define KV_REG_KEY_ENTRY_21_1 (0x9f4) -#define CLP_KV_REG_KEY_ENTRY_21_2 (0x100189f8) -#define KV_REG_KEY_ENTRY_21_2 (0x9f8) -#define CLP_KV_REG_KEY_ENTRY_21_3 (0x100189fc) -#define KV_REG_KEY_ENTRY_21_3 (0x9fc) -#define CLP_KV_REG_KEY_ENTRY_21_4 (0x10018a00) -#define KV_REG_KEY_ENTRY_21_4 (0xa00) -#define CLP_KV_REG_KEY_ENTRY_21_5 (0x10018a04) -#define KV_REG_KEY_ENTRY_21_5 (0xa04) -#define CLP_KV_REG_KEY_ENTRY_21_6 (0x10018a08) -#define KV_REG_KEY_ENTRY_21_6 (0xa08) -#define CLP_KV_REG_KEY_ENTRY_21_7 (0x10018a0c) -#define KV_REG_KEY_ENTRY_21_7 (0xa0c) -#define CLP_KV_REG_KEY_ENTRY_21_8 (0x10018a10) -#define KV_REG_KEY_ENTRY_21_8 (0xa10) -#define CLP_KV_REG_KEY_ENTRY_21_9 (0x10018a14) -#define KV_REG_KEY_ENTRY_21_9 (0xa14) -#define CLP_KV_REG_KEY_ENTRY_21_10 (0x10018a18) -#define KV_REG_KEY_ENTRY_21_10 (0xa18) -#define CLP_KV_REG_KEY_ENTRY_21_11 (0x10018a1c) -#define KV_REG_KEY_ENTRY_21_11 (0xa1c) -#define CLP_KV_REG_KEY_ENTRY_22_0 (0x10018a20) -#define KV_REG_KEY_ENTRY_22_0 (0xa20) -#define CLP_KV_REG_KEY_ENTRY_22_1 (0x10018a24) -#define KV_REG_KEY_ENTRY_22_1 (0xa24) -#define CLP_KV_REG_KEY_ENTRY_22_2 (0x10018a28) -#define KV_REG_KEY_ENTRY_22_2 (0xa28) -#define CLP_KV_REG_KEY_ENTRY_22_3 (0x10018a2c) -#define KV_REG_KEY_ENTRY_22_3 (0xa2c) -#define CLP_KV_REG_KEY_ENTRY_22_4 (0x10018a30) -#define KV_REG_KEY_ENTRY_22_4 (0xa30) -#define CLP_KV_REG_KEY_ENTRY_22_5 (0x10018a34) -#define KV_REG_KEY_ENTRY_22_5 (0xa34) -#define CLP_KV_REG_KEY_ENTRY_22_6 (0x10018a38) -#define KV_REG_KEY_ENTRY_22_6 (0xa38) -#define CLP_KV_REG_KEY_ENTRY_22_7 (0x10018a3c) -#define KV_REG_KEY_ENTRY_22_7 (0xa3c) -#define CLP_KV_REG_KEY_ENTRY_22_8 (0x10018a40) -#define KV_REG_KEY_ENTRY_22_8 (0xa40) -#define CLP_KV_REG_KEY_ENTRY_22_9 (0x10018a44) -#define KV_REG_KEY_ENTRY_22_9 (0xa44) -#define CLP_KV_REG_KEY_ENTRY_22_10 (0x10018a48) -#define KV_REG_KEY_ENTRY_22_10 (0xa48) -#define CLP_KV_REG_KEY_ENTRY_22_11 (0x10018a4c) -#define KV_REG_KEY_ENTRY_22_11 (0xa4c) -#define CLP_KV_REG_KEY_ENTRY_23_0 (0x10018a50) -#define KV_REG_KEY_ENTRY_23_0 (0xa50) -#define CLP_KV_REG_KEY_ENTRY_23_1 (0x10018a54) -#define KV_REG_KEY_ENTRY_23_1 (0xa54) -#define CLP_KV_REG_KEY_ENTRY_23_2 (0x10018a58) -#define KV_REG_KEY_ENTRY_23_2 (0xa58) -#define CLP_KV_REG_KEY_ENTRY_23_3 (0x10018a5c) -#define KV_REG_KEY_ENTRY_23_3 (0xa5c) -#define CLP_KV_REG_KEY_ENTRY_23_4 (0x10018a60) -#define KV_REG_KEY_ENTRY_23_4 (0xa60) -#define CLP_KV_REG_KEY_ENTRY_23_5 (0x10018a64) -#define KV_REG_KEY_ENTRY_23_5 (0xa64) -#define CLP_KV_REG_KEY_ENTRY_23_6 (0x10018a68) -#define KV_REG_KEY_ENTRY_23_6 (0xa68) -#define CLP_KV_REG_KEY_ENTRY_23_7 (0x10018a6c) -#define KV_REG_KEY_ENTRY_23_7 (0xa6c) -#define CLP_KV_REG_KEY_ENTRY_23_8 (0x10018a70) -#define KV_REG_KEY_ENTRY_23_8 (0xa70) -#define CLP_KV_REG_KEY_ENTRY_23_9 (0x10018a74) -#define KV_REG_KEY_ENTRY_23_9 (0xa74) -#define CLP_KV_REG_KEY_ENTRY_23_10 (0x10018a78) -#define KV_REG_KEY_ENTRY_23_10 (0xa78) -#define CLP_KV_REG_KEY_ENTRY_23_11 (0x10018a7c) -#define KV_REG_KEY_ENTRY_23_11 (0xa7c) -#define CLP_KV_REG_KEY_ENTRY_24_0 (0x10018a80) -#define KV_REG_KEY_ENTRY_24_0 (0xa80) -#define CLP_KV_REG_KEY_ENTRY_24_1 (0x10018a84) -#define KV_REG_KEY_ENTRY_24_1 (0xa84) -#define CLP_KV_REG_KEY_ENTRY_24_2 (0x10018a88) -#define KV_REG_KEY_ENTRY_24_2 (0xa88) -#define CLP_KV_REG_KEY_ENTRY_24_3 (0x10018a8c) -#define KV_REG_KEY_ENTRY_24_3 (0xa8c) -#define CLP_KV_REG_KEY_ENTRY_24_4 (0x10018a90) -#define KV_REG_KEY_ENTRY_24_4 (0xa90) -#define CLP_KV_REG_KEY_ENTRY_24_5 (0x10018a94) -#define KV_REG_KEY_ENTRY_24_5 (0xa94) -#define CLP_KV_REG_KEY_ENTRY_24_6 (0x10018a98) -#define KV_REG_KEY_ENTRY_24_6 (0xa98) -#define CLP_KV_REG_KEY_ENTRY_24_7 (0x10018a9c) -#define KV_REG_KEY_ENTRY_24_7 (0xa9c) -#define CLP_KV_REG_KEY_ENTRY_24_8 (0x10018aa0) -#define KV_REG_KEY_ENTRY_24_8 (0xaa0) -#define CLP_KV_REG_KEY_ENTRY_24_9 (0x10018aa4) -#define KV_REG_KEY_ENTRY_24_9 (0xaa4) -#define CLP_KV_REG_KEY_ENTRY_24_10 (0x10018aa8) -#define KV_REG_KEY_ENTRY_24_10 (0xaa8) -#define CLP_KV_REG_KEY_ENTRY_24_11 (0x10018aac) -#define KV_REG_KEY_ENTRY_24_11 (0xaac) -#define CLP_KV_REG_KEY_ENTRY_25_0 (0x10018ab0) -#define KV_REG_KEY_ENTRY_25_0 (0xab0) -#define CLP_KV_REG_KEY_ENTRY_25_1 (0x10018ab4) -#define KV_REG_KEY_ENTRY_25_1 (0xab4) -#define CLP_KV_REG_KEY_ENTRY_25_2 (0x10018ab8) -#define KV_REG_KEY_ENTRY_25_2 (0xab8) -#define CLP_KV_REG_KEY_ENTRY_25_3 (0x10018abc) -#define KV_REG_KEY_ENTRY_25_3 (0xabc) -#define CLP_KV_REG_KEY_ENTRY_25_4 (0x10018ac0) -#define KV_REG_KEY_ENTRY_25_4 (0xac0) -#define CLP_KV_REG_KEY_ENTRY_25_5 (0x10018ac4) -#define KV_REG_KEY_ENTRY_25_5 (0xac4) -#define CLP_KV_REG_KEY_ENTRY_25_6 (0x10018ac8) -#define KV_REG_KEY_ENTRY_25_6 (0xac8) -#define CLP_KV_REG_KEY_ENTRY_25_7 (0x10018acc) -#define KV_REG_KEY_ENTRY_25_7 (0xacc) -#define CLP_KV_REG_KEY_ENTRY_25_8 (0x10018ad0) -#define KV_REG_KEY_ENTRY_25_8 (0xad0) -#define CLP_KV_REG_KEY_ENTRY_25_9 (0x10018ad4) -#define KV_REG_KEY_ENTRY_25_9 (0xad4) -#define CLP_KV_REG_KEY_ENTRY_25_10 (0x10018ad8) -#define KV_REG_KEY_ENTRY_25_10 (0xad8) -#define CLP_KV_REG_KEY_ENTRY_25_11 (0x10018adc) -#define KV_REG_KEY_ENTRY_25_11 (0xadc) -#define CLP_KV_REG_KEY_ENTRY_26_0 (0x10018ae0) -#define KV_REG_KEY_ENTRY_26_0 (0xae0) -#define CLP_KV_REG_KEY_ENTRY_26_1 (0x10018ae4) -#define KV_REG_KEY_ENTRY_26_1 (0xae4) -#define CLP_KV_REG_KEY_ENTRY_26_2 (0x10018ae8) -#define KV_REG_KEY_ENTRY_26_2 (0xae8) -#define CLP_KV_REG_KEY_ENTRY_26_3 (0x10018aec) -#define KV_REG_KEY_ENTRY_26_3 (0xaec) -#define CLP_KV_REG_KEY_ENTRY_26_4 (0x10018af0) -#define KV_REG_KEY_ENTRY_26_4 (0xaf0) -#define CLP_KV_REG_KEY_ENTRY_26_5 (0x10018af4) -#define KV_REG_KEY_ENTRY_26_5 (0xaf4) -#define CLP_KV_REG_KEY_ENTRY_26_6 (0x10018af8) -#define KV_REG_KEY_ENTRY_26_6 (0xaf8) -#define CLP_KV_REG_KEY_ENTRY_26_7 (0x10018afc) -#define KV_REG_KEY_ENTRY_26_7 (0xafc) -#define CLP_KV_REG_KEY_ENTRY_26_8 (0x10018b00) -#define KV_REG_KEY_ENTRY_26_8 (0xb00) -#define CLP_KV_REG_KEY_ENTRY_26_9 (0x10018b04) -#define KV_REG_KEY_ENTRY_26_9 (0xb04) -#define CLP_KV_REG_KEY_ENTRY_26_10 (0x10018b08) -#define KV_REG_KEY_ENTRY_26_10 (0xb08) -#define CLP_KV_REG_KEY_ENTRY_26_11 (0x10018b0c) -#define KV_REG_KEY_ENTRY_26_11 (0xb0c) -#define CLP_KV_REG_KEY_ENTRY_27_0 (0x10018b10) -#define KV_REG_KEY_ENTRY_27_0 (0xb10) -#define CLP_KV_REG_KEY_ENTRY_27_1 (0x10018b14) -#define KV_REG_KEY_ENTRY_27_1 (0xb14) -#define CLP_KV_REG_KEY_ENTRY_27_2 (0x10018b18) -#define KV_REG_KEY_ENTRY_27_2 (0xb18) -#define CLP_KV_REG_KEY_ENTRY_27_3 (0x10018b1c) -#define KV_REG_KEY_ENTRY_27_3 (0xb1c) -#define CLP_KV_REG_KEY_ENTRY_27_4 (0x10018b20) -#define KV_REG_KEY_ENTRY_27_4 (0xb20) -#define CLP_KV_REG_KEY_ENTRY_27_5 (0x10018b24) -#define KV_REG_KEY_ENTRY_27_5 (0xb24) -#define CLP_KV_REG_KEY_ENTRY_27_6 (0x10018b28) -#define KV_REG_KEY_ENTRY_27_6 (0xb28) -#define CLP_KV_REG_KEY_ENTRY_27_7 (0x10018b2c) -#define KV_REG_KEY_ENTRY_27_7 (0xb2c) -#define CLP_KV_REG_KEY_ENTRY_27_8 (0x10018b30) -#define KV_REG_KEY_ENTRY_27_8 (0xb30) -#define CLP_KV_REG_KEY_ENTRY_27_9 (0x10018b34) -#define KV_REG_KEY_ENTRY_27_9 (0xb34) -#define CLP_KV_REG_KEY_ENTRY_27_10 (0x10018b38) -#define KV_REG_KEY_ENTRY_27_10 (0xb38) -#define CLP_KV_REG_KEY_ENTRY_27_11 (0x10018b3c) -#define KV_REG_KEY_ENTRY_27_11 (0xb3c) -#define CLP_KV_REG_KEY_ENTRY_28_0 (0x10018b40) -#define KV_REG_KEY_ENTRY_28_0 (0xb40) -#define CLP_KV_REG_KEY_ENTRY_28_1 (0x10018b44) -#define KV_REG_KEY_ENTRY_28_1 (0xb44) -#define CLP_KV_REG_KEY_ENTRY_28_2 (0x10018b48) -#define KV_REG_KEY_ENTRY_28_2 (0xb48) -#define CLP_KV_REG_KEY_ENTRY_28_3 (0x10018b4c) -#define KV_REG_KEY_ENTRY_28_3 (0xb4c) -#define CLP_KV_REG_KEY_ENTRY_28_4 (0x10018b50) -#define KV_REG_KEY_ENTRY_28_4 (0xb50) -#define CLP_KV_REG_KEY_ENTRY_28_5 (0x10018b54) -#define KV_REG_KEY_ENTRY_28_5 (0xb54) -#define CLP_KV_REG_KEY_ENTRY_28_6 (0x10018b58) -#define KV_REG_KEY_ENTRY_28_6 (0xb58) -#define CLP_KV_REG_KEY_ENTRY_28_7 (0x10018b5c) -#define KV_REG_KEY_ENTRY_28_7 (0xb5c) -#define CLP_KV_REG_KEY_ENTRY_28_8 (0x10018b60) -#define KV_REG_KEY_ENTRY_28_8 (0xb60) -#define CLP_KV_REG_KEY_ENTRY_28_9 (0x10018b64) -#define KV_REG_KEY_ENTRY_28_9 (0xb64) -#define CLP_KV_REG_KEY_ENTRY_28_10 (0x10018b68) -#define KV_REG_KEY_ENTRY_28_10 (0xb68) -#define CLP_KV_REG_KEY_ENTRY_28_11 (0x10018b6c) -#define KV_REG_KEY_ENTRY_28_11 (0xb6c) -#define CLP_KV_REG_KEY_ENTRY_29_0 (0x10018b70) -#define KV_REG_KEY_ENTRY_29_0 (0xb70) -#define CLP_KV_REG_KEY_ENTRY_29_1 (0x10018b74) -#define KV_REG_KEY_ENTRY_29_1 (0xb74) -#define CLP_KV_REG_KEY_ENTRY_29_2 (0x10018b78) -#define KV_REG_KEY_ENTRY_29_2 (0xb78) -#define CLP_KV_REG_KEY_ENTRY_29_3 (0x10018b7c) -#define KV_REG_KEY_ENTRY_29_3 (0xb7c) -#define CLP_KV_REG_KEY_ENTRY_29_4 (0x10018b80) -#define KV_REG_KEY_ENTRY_29_4 (0xb80) -#define CLP_KV_REG_KEY_ENTRY_29_5 (0x10018b84) -#define KV_REG_KEY_ENTRY_29_5 (0xb84) -#define CLP_KV_REG_KEY_ENTRY_29_6 (0x10018b88) -#define KV_REG_KEY_ENTRY_29_6 (0xb88) -#define CLP_KV_REG_KEY_ENTRY_29_7 (0x10018b8c) -#define KV_REG_KEY_ENTRY_29_7 (0xb8c) -#define CLP_KV_REG_KEY_ENTRY_29_8 (0x10018b90) -#define KV_REG_KEY_ENTRY_29_8 (0xb90) -#define CLP_KV_REG_KEY_ENTRY_29_9 (0x10018b94) -#define KV_REG_KEY_ENTRY_29_9 (0xb94) -#define CLP_KV_REG_KEY_ENTRY_29_10 (0x10018b98) -#define KV_REG_KEY_ENTRY_29_10 (0xb98) -#define CLP_KV_REG_KEY_ENTRY_29_11 (0x10018b9c) -#define KV_REG_KEY_ENTRY_29_11 (0xb9c) -#define CLP_KV_REG_KEY_ENTRY_30_0 (0x10018ba0) -#define KV_REG_KEY_ENTRY_30_0 (0xba0) -#define CLP_KV_REG_KEY_ENTRY_30_1 (0x10018ba4) -#define KV_REG_KEY_ENTRY_30_1 (0xba4) -#define CLP_KV_REG_KEY_ENTRY_30_2 (0x10018ba8) -#define KV_REG_KEY_ENTRY_30_2 (0xba8) -#define CLP_KV_REG_KEY_ENTRY_30_3 (0x10018bac) -#define KV_REG_KEY_ENTRY_30_3 (0xbac) -#define CLP_KV_REG_KEY_ENTRY_30_4 (0x10018bb0) -#define KV_REG_KEY_ENTRY_30_4 (0xbb0) -#define CLP_KV_REG_KEY_ENTRY_30_5 (0x10018bb4) -#define KV_REG_KEY_ENTRY_30_5 (0xbb4) -#define CLP_KV_REG_KEY_ENTRY_30_6 (0x10018bb8) -#define KV_REG_KEY_ENTRY_30_6 (0xbb8) -#define CLP_KV_REG_KEY_ENTRY_30_7 (0x10018bbc) -#define KV_REG_KEY_ENTRY_30_7 (0xbbc) -#define CLP_KV_REG_KEY_ENTRY_30_8 (0x10018bc0) -#define KV_REG_KEY_ENTRY_30_8 (0xbc0) -#define CLP_KV_REG_KEY_ENTRY_30_9 (0x10018bc4) -#define KV_REG_KEY_ENTRY_30_9 (0xbc4) -#define CLP_KV_REG_KEY_ENTRY_30_10 (0x10018bc8) -#define KV_REG_KEY_ENTRY_30_10 (0xbc8) -#define CLP_KV_REG_KEY_ENTRY_30_11 (0x10018bcc) -#define KV_REG_KEY_ENTRY_30_11 (0xbcc) -#define CLP_KV_REG_KEY_ENTRY_31_0 (0x10018bd0) -#define KV_REG_KEY_ENTRY_31_0 (0xbd0) -#define CLP_KV_REG_KEY_ENTRY_31_1 (0x10018bd4) -#define KV_REG_KEY_ENTRY_31_1 (0xbd4) -#define CLP_KV_REG_KEY_ENTRY_31_2 (0x10018bd8) -#define KV_REG_KEY_ENTRY_31_2 (0xbd8) -#define CLP_KV_REG_KEY_ENTRY_31_3 (0x10018bdc) -#define KV_REG_KEY_ENTRY_31_3 (0xbdc) -#define CLP_KV_REG_KEY_ENTRY_31_4 (0x10018be0) -#define KV_REG_KEY_ENTRY_31_4 (0xbe0) -#define CLP_KV_REG_KEY_ENTRY_31_5 (0x10018be4) -#define KV_REG_KEY_ENTRY_31_5 (0xbe4) -#define CLP_KV_REG_KEY_ENTRY_31_6 (0x10018be8) -#define KV_REG_KEY_ENTRY_31_6 (0xbe8) -#define CLP_KV_REG_KEY_ENTRY_31_7 (0x10018bec) -#define KV_REG_KEY_ENTRY_31_7 (0xbec) -#define CLP_KV_REG_KEY_ENTRY_31_8 (0x10018bf0) -#define KV_REG_KEY_ENTRY_31_8 (0xbf0) -#define CLP_KV_REG_KEY_ENTRY_31_9 (0x10018bf4) -#define KV_REG_KEY_ENTRY_31_9 (0xbf4) -#define CLP_KV_REG_KEY_ENTRY_31_10 (0x10018bf8) -#define KV_REG_KEY_ENTRY_31_10 (0xbf8) -#define CLP_KV_REG_KEY_ENTRY_31_11 (0x10018bfc) -#define KV_REG_KEY_ENTRY_31_11 (0xbfc) +#define CLP_KV_REG_KEY_ENTRY_0_12 (0x10018630) +#define KV_REG_KEY_ENTRY_0_12 (0x630) +#define CLP_KV_REG_KEY_ENTRY_0_13 (0x10018634) +#define KV_REG_KEY_ENTRY_0_13 (0x634) +#define CLP_KV_REG_KEY_ENTRY_0_14 (0x10018638) +#define KV_REG_KEY_ENTRY_0_14 (0x638) +#define CLP_KV_REG_KEY_ENTRY_0_15 (0x1001863c) +#define KV_REG_KEY_ENTRY_0_15 (0x63c) +#define CLP_KV_REG_KEY_ENTRY_1_0 (0x10018640) +#define KV_REG_KEY_ENTRY_1_0 (0x640) +#define CLP_KV_REG_KEY_ENTRY_1_1 (0x10018644) +#define KV_REG_KEY_ENTRY_1_1 (0x644) +#define CLP_KV_REG_KEY_ENTRY_1_2 (0x10018648) +#define KV_REG_KEY_ENTRY_1_2 (0x648) +#define CLP_KV_REG_KEY_ENTRY_1_3 (0x1001864c) +#define KV_REG_KEY_ENTRY_1_3 (0x64c) +#define CLP_KV_REG_KEY_ENTRY_1_4 (0x10018650) +#define KV_REG_KEY_ENTRY_1_4 (0x650) +#define CLP_KV_REG_KEY_ENTRY_1_5 (0x10018654) +#define KV_REG_KEY_ENTRY_1_5 (0x654) +#define CLP_KV_REG_KEY_ENTRY_1_6 (0x10018658) +#define KV_REG_KEY_ENTRY_1_6 (0x658) +#define CLP_KV_REG_KEY_ENTRY_1_7 (0x1001865c) +#define KV_REG_KEY_ENTRY_1_7 (0x65c) +#define CLP_KV_REG_KEY_ENTRY_1_8 (0x10018660) +#define KV_REG_KEY_ENTRY_1_8 (0x660) +#define CLP_KV_REG_KEY_ENTRY_1_9 (0x10018664) +#define KV_REG_KEY_ENTRY_1_9 (0x664) +#define CLP_KV_REG_KEY_ENTRY_1_10 (0x10018668) +#define KV_REG_KEY_ENTRY_1_10 (0x668) +#define CLP_KV_REG_KEY_ENTRY_1_11 (0x1001866c) +#define KV_REG_KEY_ENTRY_1_11 (0x66c) +#define CLP_KV_REG_KEY_ENTRY_1_12 (0x10018670) +#define KV_REG_KEY_ENTRY_1_12 (0x670) +#define CLP_KV_REG_KEY_ENTRY_1_13 (0x10018674) +#define KV_REG_KEY_ENTRY_1_13 (0x674) +#define CLP_KV_REG_KEY_ENTRY_1_14 (0x10018678) +#define KV_REG_KEY_ENTRY_1_14 (0x678) +#define CLP_KV_REG_KEY_ENTRY_1_15 (0x1001867c) +#define KV_REG_KEY_ENTRY_1_15 (0x67c) +#define CLP_KV_REG_KEY_ENTRY_2_0 (0x10018680) +#define KV_REG_KEY_ENTRY_2_0 (0x680) +#define CLP_KV_REG_KEY_ENTRY_2_1 (0x10018684) +#define KV_REG_KEY_ENTRY_2_1 (0x684) +#define CLP_KV_REG_KEY_ENTRY_2_2 (0x10018688) +#define KV_REG_KEY_ENTRY_2_2 (0x688) +#define CLP_KV_REG_KEY_ENTRY_2_3 (0x1001868c) +#define KV_REG_KEY_ENTRY_2_3 (0x68c) +#define CLP_KV_REG_KEY_ENTRY_2_4 (0x10018690) +#define KV_REG_KEY_ENTRY_2_4 (0x690) +#define CLP_KV_REG_KEY_ENTRY_2_5 (0x10018694) +#define KV_REG_KEY_ENTRY_2_5 (0x694) +#define CLP_KV_REG_KEY_ENTRY_2_6 (0x10018698) +#define KV_REG_KEY_ENTRY_2_6 (0x698) +#define CLP_KV_REG_KEY_ENTRY_2_7 (0x1001869c) +#define KV_REG_KEY_ENTRY_2_7 (0x69c) +#define CLP_KV_REG_KEY_ENTRY_2_8 (0x100186a0) +#define KV_REG_KEY_ENTRY_2_8 (0x6a0) +#define CLP_KV_REG_KEY_ENTRY_2_9 (0x100186a4) +#define KV_REG_KEY_ENTRY_2_9 (0x6a4) +#define CLP_KV_REG_KEY_ENTRY_2_10 (0x100186a8) +#define KV_REG_KEY_ENTRY_2_10 (0x6a8) +#define CLP_KV_REG_KEY_ENTRY_2_11 (0x100186ac) +#define KV_REG_KEY_ENTRY_2_11 (0x6ac) +#define CLP_KV_REG_KEY_ENTRY_2_12 (0x100186b0) +#define KV_REG_KEY_ENTRY_2_12 (0x6b0) +#define CLP_KV_REG_KEY_ENTRY_2_13 (0x100186b4) +#define KV_REG_KEY_ENTRY_2_13 (0x6b4) +#define CLP_KV_REG_KEY_ENTRY_2_14 (0x100186b8) +#define KV_REG_KEY_ENTRY_2_14 (0x6b8) +#define CLP_KV_REG_KEY_ENTRY_2_15 (0x100186bc) +#define KV_REG_KEY_ENTRY_2_15 (0x6bc) +#define CLP_KV_REG_KEY_ENTRY_3_0 (0x100186c0) +#define KV_REG_KEY_ENTRY_3_0 (0x6c0) +#define CLP_KV_REG_KEY_ENTRY_3_1 (0x100186c4) +#define KV_REG_KEY_ENTRY_3_1 (0x6c4) +#define CLP_KV_REG_KEY_ENTRY_3_2 (0x100186c8) +#define KV_REG_KEY_ENTRY_3_2 (0x6c8) +#define CLP_KV_REG_KEY_ENTRY_3_3 (0x100186cc) +#define KV_REG_KEY_ENTRY_3_3 (0x6cc) +#define CLP_KV_REG_KEY_ENTRY_3_4 (0x100186d0) +#define KV_REG_KEY_ENTRY_3_4 (0x6d0) +#define CLP_KV_REG_KEY_ENTRY_3_5 (0x100186d4) +#define KV_REG_KEY_ENTRY_3_5 (0x6d4) +#define CLP_KV_REG_KEY_ENTRY_3_6 (0x100186d8) +#define KV_REG_KEY_ENTRY_3_6 (0x6d8) +#define CLP_KV_REG_KEY_ENTRY_3_7 (0x100186dc) +#define KV_REG_KEY_ENTRY_3_7 (0x6dc) +#define CLP_KV_REG_KEY_ENTRY_3_8 (0x100186e0) +#define KV_REG_KEY_ENTRY_3_8 (0x6e0) +#define CLP_KV_REG_KEY_ENTRY_3_9 (0x100186e4) +#define KV_REG_KEY_ENTRY_3_9 (0x6e4) +#define CLP_KV_REG_KEY_ENTRY_3_10 (0x100186e8) +#define KV_REG_KEY_ENTRY_3_10 (0x6e8) +#define CLP_KV_REG_KEY_ENTRY_3_11 (0x100186ec) +#define KV_REG_KEY_ENTRY_3_11 (0x6ec) +#define CLP_KV_REG_KEY_ENTRY_3_12 (0x100186f0) +#define KV_REG_KEY_ENTRY_3_12 (0x6f0) +#define CLP_KV_REG_KEY_ENTRY_3_13 (0x100186f4) +#define KV_REG_KEY_ENTRY_3_13 (0x6f4) +#define CLP_KV_REG_KEY_ENTRY_3_14 (0x100186f8) +#define KV_REG_KEY_ENTRY_3_14 (0x6f8) +#define CLP_KV_REG_KEY_ENTRY_3_15 (0x100186fc) +#define KV_REG_KEY_ENTRY_3_15 (0x6fc) +#define CLP_KV_REG_KEY_ENTRY_4_0 (0x10018700) +#define KV_REG_KEY_ENTRY_4_0 (0x700) +#define CLP_KV_REG_KEY_ENTRY_4_1 (0x10018704) +#define KV_REG_KEY_ENTRY_4_1 (0x704) +#define CLP_KV_REG_KEY_ENTRY_4_2 (0x10018708) +#define KV_REG_KEY_ENTRY_4_2 (0x708) +#define CLP_KV_REG_KEY_ENTRY_4_3 (0x1001870c) +#define KV_REG_KEY_ENTRY_4_3 (0x70c) +#define CLP_KV_REG_KEY_ENTRY_4_4 (0x10018710) +#define KV_REG_KEY_ENTRY_4_4 (0x710) +#define CLP_KV_REG_KEY_ENTRY_4_5 (0x10018714) +#define KV_REG_KEY_ENTRY_4_5 (0x714) +#define CLP_KV_REG_KEY_ENTRY_4_6 (0x10018718) +#define KV_REG_KEY_ENTRY_4_6 (0x718) +#define CLP_KV_REG_KEY_ENTRY_4_7 (0x1001871c) +#define KV_REG_KEY_ENTRY_4_7 (0x71c) +#define CLP_KV_REG_KEY_ENTRY_4_8 (0x10018720) +#define KV_REG_KEY_ENTRY_4_8 (0x720) +#define CLP_KV_REG_KEY_ENTRY_4_9 (0x10018724) +#define KV_REG_KEY_ENTRY_4_9 (0x724) +#define CLP_KV_REG_KEY_ENTRY_4_10 (0x10018728) +#define KV_REG_KEY_ENTRY_4_10 (0x728) +#define CLP_KV_REG_KEY_ENTRY_4_11 (0x1001872c) +#define KV_REG_KEY_ENTRY_4_11 (0x72c) +#define CLP_KV_REG_KEY_ENTRY_4_12 (0x10018730) +#define KV_REG_KEY_ENTRY_4_12 (0x730) +#define CLP_KV_REG_KEY_ENTRY_4_13 (0x10018734) +#define KV_REG_KEY_ENTRY_4_13 (0x734) +#define CLP_KV_REG_KEY_ENTRY_4_14 (0x10018738) +#define KV_REG_KEY_ENTRY_4_14 (0x738) +#define CLP_KV_REG_KEY_ENTRY_4_15 (0x1001873c) +#define KV_REG_KEY_ENTRY_4_15 (0x73c) +#define CLP_KV_REG_KEY_ENTRY_5_0 (0x10018740) +#define KV_REG_KEY_ENTRY_5_0 (0x740) +#define CLP_KV_REG_KEY_ENTRY_5_1 (0x10018744) +#define KV_REG_KEY_ENTRY_5_1 (0x744) +#define CLP_KV_REG_KEY_ENTRY_5_2 (0x10018748) +#define KV_REG_KEY_ENTRY_5_2 (0x748) +#define CLP_KV_REG_KEY_ENTRY_5_3 (0x1001874c) +#define KV_REG_KEY_ENTRY_5_3 (0x74c) +#define CLP_KV_REG_KEY_ENTRY_5_4 (0x10018750) +#define KV_REG_KEY_ENTRY_5_4 (0x750) +#define CLP_KV_REG_KEY_ENTRY_5_5 (0x10018754) +#define KV_REG_KEY_ENTRY_5_5 (0x754) +#define CLP_KV_REG_KEY_ENTRY_5_6 (0x10018758) +#define KV_REG_KEY_ENTRY_5_6 (0x758) +#define CLP_KV_REG_KEY_ENTRY_5_7 (0x1001875c) +#define KV_REG_KEY_ENTRY_5_7 (0x75c) +#define CLP_KV_REG_KEY_ENTRY_5_8 (0x10018760) +#define KV_REG_KEY_ENTRY_5_8 (0x760) +#define CLP_KV_REG_KEY_ENTRY_5_9 (0x10018764) +#define KV_REG_KEY_ENTRY_5_9 (0x764) +#define CLP_KV_REG_KEY_ENTRY_5_10 (0x10018768) +#define KV_REG_KEY_ENTRY_5_10 (0x768) +#define CLP_KV_REG_KEY_ENTRY_5_11 (0x1001876c) +#define KV_REG_KEY_ENTRY_5_11 (0x76c) +#define CLP_KV_REG_KEY_ENTRY_5_12 (0x10018770) +#define KV_REG_KEY_ENTRY_5_12 (0x770) +#define CLP_KV_REG_KEY_ENTRY_5_13 (0x10018774) +#define KV_REG_KEY_ENTRY_5_13 (0x774) +#define CLP_KV_REG_KEY_ENTRY_5_14 (0x10018778) +#define KV_REG_KEY_ENTRY_5_14 (0x778) +#define CLP_KV_REG_KEY_ENTRY_5_15 (0x1001877c) +#define KV_REG_KEY_ENTRY_5_15 (0x77c) +#define CLP_KV_REG_KEY_ENTRY_6_0 (0x10018780) +#define KV_REG_KEY_ENTRY_6_0 (0x780) +#define CLP_KV_REG_KEY_ENTRY_6_1 (0x10018784) +#define KV_REG_KEY_ENTRY_6_1 (0x784) +#define CLP_KV_REG_KEY_ENTRY_6_2 (0x10018788) +#define KV_REG_KEY_ENTRY_6_2 (0x788) +#define CLP_KV_REG_KEY_ENTRY_6_3 (0x1001878c) +#define KV_REG_KEY_ENTRY_6_3 (0x78c) +#define CLP_KV_REG_KEY_ENTRY_6_4 (0x10018790) +#define KV_REG_KEY_ENTRY_6_4 (0x790) +#define CLP_KV_REG_KEY_ENTRY_6_5 (0x10018794) +#define KV_REG_KEY_ENTRY_6_5 (0x794) +#define CLP_KV_REG_KEY_ENTRY_6_6 (0x10018798) +#define KV_REG_KEY_ENTRY_6_6 (0x798) +#define CLP_KV_REG_KEY_ENTRY_6_7 (0x1001879c) +#define KV_REG_KEY_ENTRY_6_7 (0x79c) +#define CLP_KV_REG_KEY_ENTRY_6_8 (0x100187a0) +#define KV_REG_KEY_ENTRY_6_8 (0x7a0) +#define CLP_KV_REG_KEY_ENTRY_6_9 (0x100187a4) +#define KV_REG_KEY_ENTRY_6_9 (0x7a4) +#define CLP_KV_REG_KEY_ENTRY_6_10 (0x100187a8) +#define KV_REG_KEY_ENTRY_6_10 (0x7a8) +#define CLP_KV_REG_KEY_ENTRY_6_11 (0x100187ac) +#define KV_REG_KEY_ENTRY_6_11 (0x7ac) +#define CLP_KV_REG_KEY_ENTRY_6_12 (0x100187b0) +#define KV_REG_KEY_ENTRY_6_12 (0x7b0) +#define CLP_KV_REG_KEY_ENTRY_6_13 (0x100187b4) +#define KV_REG_KEY_ENTRY_6_13 (0x7b4) +#define CLP_KV_REG_KEY_ENTRY_6_14 (0x100187b8) +#define KV_REG_KEY_ENTRY_6_14 (0x7b8) +#define CLP_KV_REG_KEY_ENTRY_6_15 (0x100187bc) +#define KV_REG_KEY_ENTRY_6_15 (0x7bc) +#define CLP_KV_REG_KEY_ENTRY_7_0 (0x100187c0) +#define KV_REG_KEY_ENTRY_7_0 (0x7c0) +#define CLP_KV_REG_KEY_ENTRY_7_1 (0x100187c4) +#define KV_REG_KEY_ENTRY_7_1 (0x7c4) +#define CLP_KV_REG_KEY_ENTRY_7_2 (0x100187c8) +#define KV_REG_KEY_ENTRY_7_2 (0x7c8) +#define CLP_KV_REG_KEY_ENTRY_7_3 (0x100187cc) +#define KV_REG_KEY_ENTRY_7_3 (0x7cc) +#define CLP_KV_REG_KEY_ENTRY_7_4 (0x100187d0) +#define KV_REG_KEY_ENTRY_7_4 (0x7d0) +#define CLP_KV_REG_KEY_ENTRY_7_5 (0x100187d4) +#define KV_REG_KEY_ENTRY_7_5 (0x7d4) +#define CLP_KV_REG_KEY_ENTRY_7_6 (0x100187d8) +#define KV_REG_KEY_ENTRY_7_6 (0x7d8) +#define CLP_KV_REG_KEY_ENTRY_7_7 (0x100187dc) +#define KV_REG_KEY_ENTRY_7_7 (0x7dc) +#define CLP_KV_REG_KEY_ENTRY_7_8 (0x100187e0) +#define KV_REG_KEY_ENTRY_7_8 (0x7e0) +#define CLP_KV_REG_KEY_ENTRY_7_9 (0x100187e4) +#define KV_REG_KEY_ENTRY_7_9 (0x7e4) +#define CLP_KV_REG_KEY_ENTRY_7_10 (0x100187e8) +#define KV_REG_KEY_ENTRY_7_10 (0x7e8) +#define CLP_KV_REG_KEY_ENTRY_7_11 (0x100187ec) +#define KV_REG_KEY_ENTRY_7_11 (0x7ec) +#define CLP_KV_REG_KEY_ENTRY_7_12 (0x100187f0) +#define KV_REG_KEY_ENTRY_7_12 (0x7f0) +#define CLP_KV_REG_KEY_ENTRY_7_13 (0x100187f4) +#define KV_REG_KEY_ENTRY_7_13 (0x7f4) +#define CLP_KV_REG_KEY_ENTRY_7_14 (0x100187f8) +#define KV_REG_KEY_ENTRY_7_14 (0x7f8) +#define CLP_KV_REG_KEY_ENTRY_7_15 (0x100187fc) +#define KV_REG_KEY_ENTRY_7_15 (0x7fc) +#define CLP_KV_REG_KEY_ENTRY_8_0 (0x10018800) +#define KV_REG_KEY_ENTRY_8_0 (0x800) +#define CLP_KV_REG_KEY_ENTRY_8_1 (0x10018804) +#define KV_REG_KEY_ENTRY_8_1 (0x804) +#define CLP_KV_REG_KEY_ENTRY_8_2 (0x10018808) +#define KV_REG_KEY_ENTRY_8_2 (0x808) +#define CLP_KV_REG_KEY_ENTRY_8_3 (0x1001880c) +#define KV_REG_KEY_ENTRY_8_3 (0x80c) +#define CLP_KV_REG_KEY_ENTRY_8_4 (0x10018810) +#define KV_REG_KEY_ENTRY_8_4 (0x810) +#define CLP_KV_REG_KEY_ENTRY_8_5 (0x10018814) +#define KV_REG_KEY_ENTRY_8_5 (0x814) +#define CLP_KV_REG_KEY_ENTRY_8_6 (0x10018818) +#define KV_REG_KEY_ENTRY_8_6 (0x818) +#define CLP_KV_REG_KEY_ENTRY_8_7 (0x1001881c) +#define KV_REG_KEY_ENTRY_8_7 (0x81c) +#define CLP_KV_REG_KEY_ENTRY_8_8 (0x10018820) +#define KV_REG_KEY_ENTRY_8_8 (0x820) +#define CLP_KV_REG_KEY_ENTRY_8_9 (0x10018824) +#define KV_REG_KEY_ENTRY_8_9 (0x824) +#define CLP_KV_REG_KEY_ENTRY_8_10 (0x10018828) +#define KV_REG_KEY_ENTRY_8_10 (0x828) +#define CLP_KV_REG_KEY_ENTRY_8_11 (0x1001882c) +#define KV_REG_KEY_ENTRY_8_11 (0x82c) +#define CLP_KV_REG_KEY_ENTRY_8_12 (0x10018830) +#define KV_REG_KEY_ENTRY_8_12 (0x830) +#define CLP_KV_REG_KEY_ENTRY_8_13 (0x10018834) +#define KV_REG_KEY_ENTRY_8_13 (0x834) +#define CLP_KV_REG_KEY_ENTRY_8_14 (0x10018838) +#define KV_REG_KEY_ENTRY_8_14 (0x838) +#define CLP_KV_REG_KEY_ENTRY_8_15 (0x1001883c) +#define KV_REG_KEY_ENTRY_8_15 (0x83c) +#define CLP_KV_REG_KEY_ENTRY_9_0 (0x10018840) +#define KV_REG_KEY_ENTRY_9_0 (0x840) +#define CLP_KV_REG_KEY_ENTRY_9_1 (0x10018844) +#define KV_REG_KEY_ENTRY_9_1 (0x844) +#define CLP_KV_REG_KEY_ENTRY_9_2 (0x10018848) +#define KV_REG_KEY_ENTRY_9_2 (0x848) +#define CLP_KV_REG_KEY_ENTRY_9_3 (0x1001884c) +#define KV_REG_KEY_ENTRY_9_3 (0x84c) +#define CLP_KV_REG_KEY_ENTRY_9_4 (0x10018850) +#define KV_REG_KEY_ENTRY_9_4 (0x850) +#define CLP_KV_REG_KEY_ENTRY_9_5 (0x10018854) +#define KV_REG_KEY_ENTRY_9_5 (0x854) +#define CLP_KV_REG_KEY_ENTRY_9_6 (0x10018858) +#define KV_REG_KEY_ENTRY_9_6 (0x858) +#define CLP_KV_REG_KEY_ENTRY_9_7 (0x1001885c) +#define KV_REG_KEY_ENTRY_9_7 (0x85c) +#define CLP_KV_REG_KEY_ENTRY_9_8 (0x10018860) +#define KV_REG_KEY_ENTRY_9_8 (0x860) +#define CLP_KV_REG_KEY_ENTRY_9_9 (0x10018864) +#define KV_REG_KEY_ENTRY_9_9 (0x864) +#define CLP_KV_REG_KEY_ENTRY_9_10 (0x10018868) +#define KV_REG_KEY_ENTRY_9_10 (0x868) +#define CLP_KV_REG_KEY_ENTRY_9_11 (0x1001886c) +#define KV_REG_KEY_ENTRY_9_11 (0x86c) +#define CLP_KV_REG_KEY_ENTRY_9_12 (0x10018870) +#define KV_REG_KEY_ENTRY_9_12 (0x870) +#define CLP_KV_REG_KEY_ENTRY_9_13 (0x10018874) +#define KV_REG_KEY_ENTRY_9_13 (0x874) +#define CLP_KV_REG_KEY_ENTRY_9_14 (0x10018878) +#define KV_REG_KEY_ENTRY_9_14 (0x878) +#define CLP_KV_REG_KEY_ENTRY_9_15 (0x1001887c) +#define KV_REG_KEY_ENTRY_9_15 (0x87c) +#define CLP_KV_REG_KEY_ENTRY_10_0 (0x10018880) +#define KV_REG_KEY_ENTRY_10_0 (0x880) +#define CLP_KV_REG_KEY_ENTRY_10_1 (0x10018884) +#define KV_REG_KEY_ENTRY_10_1 (0x884) +#define CLP_KV_REG_KEY_ENTRY_10_2 (0x10018888) +#define KV_REG_KEY_ENTRY_10_2 (0x888) +#define CLP_KV_REG_KEY_ENTRY_10_3 (0x1001888c) +#define KV_REG_KEY_ENTRY_10_3 (0x88c) +#define CLP_KV_REG_KEY_ENTRY_10_4 (0x10018890) +#define KV_REG_KEY_ENTRY_10_4 (0x890) +#define CLP_KV_REG_KEY_ENTRY_10_5 (0x10018894) +#define KV_REG_KEY_ENTRY_10_5 (0x894) +#define CLP_KV_REG_KEY_ENTRY_10_6 (0x10018898) +#define KV_REG_KEY_ENTRY_10_6 (0x898) +#define CLP_KV_REG_KEY_ENTRY_10_7 (0x1001889c) +#define KV_REG_KEY_ENTRY_10_7 (0x89c) +#define CLP_KV_REG_KEY_ENTRY_10_8 (0x100188a0) +#define KV_REG_KEY_ENTRY_10_8 (0x8a0) +#define CLP_KV_REG_KEY_ENTRY_10_9 (0x100188a4) +#define KV_REG_KEY_ENTRY_10_9 (0x8a4) +#define CLP_KV_REG_KEY_ENTRY_10_10 (0x100188a8) +#define KV_REG_KEY_ENTRY_10_10 (0x8a8) +#define CLP_KV_REG_KEY_ENTRY_10_11 (0x100188ac) +#define KV_REG_KEY_ENTRY_10_11 (0x8ac) +#define CLP_KV_REG_KEY_ENTRY_10_12 (0x100188b0) +#define KV_REG_KEY_ENTRY_10_12 (0x8b0) +#define CLP_KV_REG_KEY_ENTRY_10_13 (0x100188b4) +#define KV_REG_KEY_ENTRY_10_13 (0x8b4) +#define CLP_KV_REG_KEY_ENTRY_10_14 (0x100188b8) +#define KV_REG_KEY_ENTRY_10_14 (0x8b8) +#define CLP_KV_REG_KEY_ENTRY_10_15 (0x100188bc) +#define KV_REG_KEY_ENTRY_10_15 (0x8bc) +#define CLP_KV_REG_KEY_ENTRY_11_0 (0x100188c0) +#define KV_REG_KEY_ENTRY_11_0 (0x8c0) +#define CLP_KV_REG_KEY_ENTRY_11_1 (0x100188c4) +#define KV_REG_KEY_ENTRY_11_1 (0x8c4) +#define CLP_KV_REG_KEY_ENTRY_11_2 (0x100188c8) +#define KV_REG_KEY_ENTRY_11_2 (0x8c8) +#define CLP_KV_REG_KEY_ENTRY_11_3 (0x100188cc) +#define KV_REG_KEY_ENTRY_11_3 (0x8cc) +#define CLP_KV_REG_KEY_ENTRY_11_4 (0x100188d0) +#define KV_REG_KEY_ENTRY_11_4 (0x8d0) +#define CLP_KV_REG_KEY_ENTRY_11_5 (0x100188d4) +#define KV_REG_KEY_ENTRY_11_5 (0x8d4) +#define CLP_KV_REG_KEY_ENTRY_11_6 (0x100188d8) +#define KV_REG_KEY_ENTRY_11_6 (0x8d8) +#define CLP_KV_REG_KEY_ENTRY_11_7 (0x100188dc) +#define KV_REG_KEY_ENTRY_11_7 (0x8dc) +#define CLP_KV_REG_KEY_ENTRY_11_8 (0x100188e0) +#define KV_REG_KEY_ENTRY_11_8 (0x8e0) +#define CLP_KV_REG_KEY_ENTRY_11_9 (0x100188e4) +#define KV_REG_KEY_ENTRY_11_9 (0x8e4) +#define CLP_KV_REG_KEY_ENTRY_11_10 (0x100188e8) +#define KV_REG_KEY_ENTRY_11_10 (0x8e8) +#define CLP_KV_REG_KEY_ENTRY_11_11 (0x100188ec) +#define KV_REG_KEY_ENTRY_11_11 (0x8ec) +#define CLP_KV_REG_KEY_ENTRY_11_12 (0x100188f0) +#define KV_REG_KEY_ENTRY_11_12 (0x8f0) +#define CLP_KV_REG_KEY_ENTRY_11_13 (0x100188f4) +#define KV_REG_KEY_ENTRY_11_13 (0x8f4) +#define CLP_KV_REG_KEY_ENTRY_11_14 (0x100188f8) +#define KV_REG_KEY_ENTRY_11_14 (0x8f8) +#define CLP_KV_REG_KEY_ENTRY_11_15 (0x100188fc) +#define KV_REG_KEY_ENTRY_11_15 (0x8fc) +#define CLP_KV_REG_KEY_ENTRY_12_0 (0x10018900) +#define KV_REG_KEY_ENTRY_12_0 (0x900) +#define CLP_KV_REG_KEY_ENTRY_12_1 (0x10018904) +#define KV_REG_KEY_ENTRY_12_1 (0x904) +#define CLP_KV_REG_KEY_ENTRY_12_2 (0x10018908) +#define KV_REG_KEY_ENTRY_12_2 (0x908) +#define CLP_KV_REG_KEY_ENTRY_12_3 (0x1001890c) +#define KV_REG_KEY_ENTRY_12_3 (0x90c) +#define CLP_KV_REG_KEY_ENTRY_12_4 (0x10018910) +#define KV_REG_KEY_ENTRY_12_4 (0x910) +#define CLP_KV_REG_KEY_ENTRY_12_5 (0x10018914) +#define KV_REG_KEY_ENTRY_12_5 (0x914) +#define CLP_KV_REG_KEY_ENTRY_12_6 (0x10018918) +#define KV_REG_KEY_ENTRY_12_6 (0x918) +#define CLP_KV_REG_KEY_ENTRY_12_7 (0x1001891c) +#define KV_REG_KEY_ENTRY_12_7 (0x91c) +#define CLP_KV_REG_KEY_ENTRY_12_8 (0x10018920) +#define KV_REG_KEY_ENTRY_12_8 (0x920) +#define CLP_KV_REG_KEY_ENTRY_12_9 (0x10018924) +#define KV_REG_KEY_ENTRY_12_9 (0x924) +#define CLP_KV_REG_KEY_ENTRY_12_10 (0x10018928) +#define KV_REG_KEY_ENTRY_12_10 (0x928) +#define CLP_KV_REG_KEY_ENTRY_12_11 (0x1001892c) +#define KV_REG_KEY_ENTRY_12_11 (0x92c) +#define CLP_KV_REG_KEY_ENTRY_12_12 (0x10018930) +#define KV_REG_KEY_ENTRY_12_12 (0x930) +#define CLP_KV_REG_KEY_ENTRY_12_13 (0x10018934) +#define KV_REG_KEY_ENTRY_12_13 (0x934) +#define CLP_KV_REG_KEY_ENTRY_12_14 (0x10018938) +#define KV_REG_KEY_ENTRY_12_14 (0x938) +#define CLP_KV_REG_KEY_ENTRY_12_15 (0x1001893c) +#define KV_REG_KEY_ENTRY_12_15 (0x93c) +#define CLP_KV_REG_KEY_ENTRY_13_0 (0x10018940) +#define KV_REG_KEY_ENTRY_13_0 (0x940) +#define CLP_KV_REG_KEY_ENTRY_13_1 (0x10018944) +#define KV_REG_KEY_ENTRY_13_1 (0x944) +#define CLP_KV_REG_KEY_ENTRY_13_2 (0x10018948) +#define KV_REG_KEY_ENTRY_13_2 (0x948) +#define CLP_KV_REG_KEY_ENTRY_13_3 (0x1001894c) +#define KV_REG_KEY_ENTRY_13_3 (0x94c) +#define CLP_KV_REG_KEY_ENTRY_13_4 (0x10018950) +#define KV_REG_KEY_ENTRY_13_4 (0x950) +#define CLP_KV_REG_KEY_ENTRY_13_5 (0x10018954) +#define KV_REG_KEY_ENTRY_13_5 (0x954) +#define CLP_KV_REG_KEY_ENTRY_13_6 (0x10018958) +#define KV_REG_KEY_ENTRY_13_6 (0x958) +#define CLP_KV_REG_KEY_ENTRY_13_7 (0x1001895c) +#define KV_REG_KEY_ENTRY_13_7 (0x95c) +#define CLP_KV_REG_KEY_ENTRY_13_8 (0x10018960) +#define KV_REG_KEY_ENTRY_13_8 (0x960) +#define CLP_KV_REG_KEY_ENTRY_13_9 (0x10018964) +#define KV_REG_KEY_ENTRY_13_9 (0x964) +#define CLP_KV_REG_KEY_ENTRY_13_10 (0x10018968) +#define KV_REG_KEY_ENTRY_13_10 (0x968) +#define CLP_KV_REG_KEY_ENTRY_13_11 (0x1001896c) +#define KV_REG_KEY_ENTRY_13_11 (0x96c) +#define CLP_KV_REG_KEY_ENTRY_13_12 (0x10018970) +#define KV_REG_KEY_ENTRY_13_12 (0x970) +#define CLP_KV_REG_KEY_ENTRY_13_13 (0x10018974) +#define KV_REG_KEY_ENTRY_13_13 (0x974) +#define CLP_KV_REG_KEY_ENTRY_13_14 (0x10018978) +#define KV_REG_KEY_ENTRY_13_14 (0x978) +#define CLP_KV_REG_KEY_ENTRY_13_15 (0x1001897c) +#define KV_REG_KEY_ENTRY_13_15 (0x97c) +#define CLP_KV_REG_KEY_ENTRY_14_0 (0x10018980) +#define KV_REG_KEY_ENTRY_14_0 (0x980) +#define CLP_KV_REG_KEY_ENTRY_14_1 (0x10018984) +#define KV_REG_KEY_ENTRY_14_1 (0x984) +#define CLP_KV_REG_KEY_ENTRY_14_2 (0x10018988) +#define KV_REG_KEY_ENTRY_14_2 (0x988) +#define CLP_KV_REG_KEY_ENTRY_14_3 (0x1001898c) +#define KV_REG_KEY_ENTRY_14_3 (0x98c) +#define CLP_KV_REG_KEY_ENTRY_14_4 (0x10018990) +#define KV_REG_KEY_ENTRY_14_4 (0x990) +#define CLP_KV_REG_KEY_ENTRY_14_5 (0x10018994) +#define KV_REG_KEY_ENTRY_14_5 (0x994) +#define CLP_KV_REG_KEY_ENTRY_14_6 (0x10018998) +#define KV_REG_KEY_ENTRY_14_6 (0x998) +#define CLP_KV_REG_KEY_ENTRY_14_7 (0x1001899c) +#define KV_REG_KEY_ENTRY_14_7 (0x99c) +#define CLP_KV_REG_KEY_ENTRY_14_8 (0x100189a0) +#define KV_REG_KEY_ENTRY_14_8 (0x9a0) +#define CLP_KV_REG_KEY_ENTRY_14_9 (0x100189a4) +#define KV_REG_KEY_ENTRY_14_9 (0x9a4) +#define CLP_KV_REG_KEY_ENTRY_14_10 (0x100189a8) +#define KV_REG_KEY_ENTRY_14_10 (0x9a8) +#define CLP_KV_REG_KEY_ENTRY_14_11 (0x100189ac) +#define KV_REG_KEY_ENTRY_14_11 (0x9ac) +#define CLP_KV_REG_KEY_ENTRY_14_12 (0x100189b0) +#define KV_REG_KEY_ENTRY_14_12 (0x9b0) +#define CLP_KV_REG_KEY_ENTRY_14_13 (0x100189b4) +#define KV_REG_KEY_ENTRY_14_13 (0x9b4) +#define CLP_KV_REG_KEY_ENTRY_14_14 (0x100189b8) +#define KV_REG_KEY_ENTRY_14_14 (0x9b8) +#define CLP_KV_REG_KEY_ENTRY_14_15 (0x100189bc) +#define KV_REG_KEY_ENTRY_14_15 (0x9bc) +#define CLP_KV_REG_KEY_ENTRY_15_0 (0x100189c0) +#define KV_REG_KEY_ENTRY_15_0 (0x9c0) +#define CLP_KV_REG_KEY_ENTRY_15_1 (0x100189c4) +#define KV_REG_KEY_ENTRY_15_1 (0x9c4) +#define CLP_KV_REG_KEY_ENTRY_15_2 (0x100189c8) +#define KV_REG_KEY_ENTRY_15_2 (0x9c8) +#define CLP_KV_REG_KEY_ENTRY_15_3 (0x100189cc) +#define KV_REG_KEY_ENTRY_15_3 (0x9cc) +#define CLP_KV_REG_KEY_ENTRY_15_4 (0x100189d0) +#define KV_REG_KEY_ENTRY_15_4 (0x9d0) +#define CLP_KV_REG_KEY_ENTRY_15_5 (0x100189d4) +#define KV_REG_KEY_ENTRY_15_5 (0x9d4) +#define CLP_KV_REG_KEY_ENTRY_15_6 (0x100189d8) +#define KV_REG_KEY_ENTRY_15_6 (0x9d8) +#define CLP_KV_REG_KEY_ENTRY_15_7 (0x100189dc) +#define KV_REG_KEY_ENTRY_15_7 (0x9dc) +#define CLP_KV_REG_KEY_ENTRY_15_8 (0x100189e0) +#define KV_REG_KEY_ENTRY_15_8 (0x9e0) +#define CLP_KV_REG_KEY_ENTRY_15_9 (0x100189e4) +#define KV_REG_KEY_ENTRY_15_9 (0x9e4) +#define CLP_KV_REG_KEY_ENTRY_15_10 (0x100189e8) +#define KV_REG_KEY_ENTRY_15_10 (0x9e8) +#define CLP_KV_REG_KEY_ENTRY_15_11 (0x100189ec) +#define KV_REG_KEY_ENTRY_15_11 (0x9ec) +#define CLP_KV_REG_KEY_ENTRY_15_12 (0x100189f0) +#define KV_REG_KEY_ENTRY_15_12 (0x9f0) +#define CLP_KV_REG_KEY_ENTRY_15_13 (0x100189f4) +#define KV_REG_KEY_ENTRY_15_13 (0x9f4) +#define CLP_KV_REG_KEY_ENTRY_15_14 (0x100189f8) +#define KV_REG_KEY_ENTRY_15_14 (0x9f8) +#define CLP_KV_REG_KEY_ENTRY_15_15 (0x100189fc) +#define KV_REG_KEY_ENTRY_15_15 (0x9fc) +#define CLP_KV_REG_KEY_ENTRY_16_0 (0x10018a00) +#define KV_REG_KEY_ENTRY_16_0 (0xa00) +#define CLP_KV_REG_KEY_ENTRY_16_1 (0x10018a04) +#define KV_REG_KEY_ENTRY_16_1 (0xa04) +#define CLP_KV_REG_KEY_ENTRY_16_2 (0x10018a08) +#define KV_REG_KEY_ENTRY_16_2 (0xa08) +#define CLP_KV_REG_KEY_ENTRY_16_3 (0x10018a0c) +#define KV_REG_KEY_ENTRY_16_3 (0xa0c) +#define CLP_KV_REG_KEY_ENTRY_16_4 (0x10018a10) +#define KV_REG_KEY_ENTRY_16_4 (0xa10) +#define CLP_KV_REG_KEY_ENTRY_16_5 (0x10018a14) +#define KV_REG_KEY_ENTRY_16_5 (0xa14) +#define CLP_KV_REG_KEY_ENTRY_16_6 (0x10018a18) +#define KV_REG_KEY_ENTRY_16_6 (0xa18) +#define CLP_KV_REG_KEY_ENTRY_16_7 (0x10018a1c) +#define KV_REG_KEY_ENTRY_16_7 (0xa1c) +#define CLP_KV_REG_KEY_ENTRY_16_8 (0x10018a20) +#define KV_REG_KEY_ENTRY_16_8 (0xa20) +#define CLP_KV_REG_KEY_ENTRY_16_9 (0x10018a24) +#define KV_REG_KEY_ENTRY_16_9 (0xa24) +#define CLP_KV_REG_KEY_ENTRY_16_10 (0x10018a28) +#define KV_REG_KEY_ENTRY_16_10 (0xa28) +#define CLP_KV_REG_KEY_ENTRY_16_11 (0x10018a2c) +#define KV_REG_KEY_ENTRY_16_11 (0xa2c) +#define CLP_KV_REG_KEY_ENTRY_16_12 (0x10018a30) +#define KV_REG_KEY_ENTRY_16_12 (0xa30) +#define CLP_KV_REG_KEY_ENTRY_16_13 (0x10018a34) +#define KV_REG_KEY_ENTRY_16_13 (0xa34) +#define CLP_KV_REG_KEY_ENTRY_16_14 (0x10018a38) +#define KV_REG_KEY_ENTRY_16_14 (0xa38) +#define CLP_KV_REG_KEY_ENTRY_16_15 (0x10018a3c) +#define KV_REG_KEY_ENTRY_16_15 (0xa3c) +#define CLP_KV_REG_KEY_ENTRY_17_0 (0x10018a40) +#define KV_REG_KEY_ENTRY_17_0 (0xa40) +#define CLP_KV_REG_KEY_ENTRY_17_1 (0x10018a44) +#define KV_REG_KEY_ENTRY_17_1 (0xa44) +#define CLP_KV_REG_KEY_ENTRY_17_2 (0x10018a48) +#define KV_REG_KEY_ENTRY_17_2 (0xa48) +#define CLP_KV_REG_KEY_ENTRY_17_3 (0x10018a4c) +#define KV_REG_KEY_ENTRY_17_3 (0xa4c) +#define CLP_KV_REG_KEY_ENTRY_17_4 (0x10018a50) +#define KV_REG_KEY_ENTRY_17_4 (0xa50) +#define CLP_KV_REG_KEY_ENTRY_17_5 (0x10018a54) +#define KV_REG_KEY_ENTRY_17_5 (0xa54) +#define CLP_KV_REG_KEY_ENTRY_17_6 (0x10018a58) +#define KV_REG_KEY_ENTRY_17_6 (0xa58) +#define CLP_KV_REG_KEY_ENTRY_17_7 (0x10018a5c) +#define KV_REG_KEY_ENTRY_17_7 (0xa5c) +#define CLP_KV_REG_KEY_ENTRY_17_8 (0x10018a60) +#define KV_REG_KEY_ENTRY_17_8 (0xa60) +#define CLP_KV_REG_KEY_ENTRY_17_9 (0x10018a64) +#define KV_REG_KEY_ENTRY_17_9 (0xa64) +#define CLP_KV_REG_KEY_ENTRY_17_10 (0x10018a68) +#define KV_REG_KEY_ENTRY_17_10 (0xa68) +#define CLP_KV_REG_KEY_ENTRY_17_11 (0x10018a6c) +#define KV_REG_KEY_ENTRY_17_11 (0xa6c) +#define CLP_KV_REG_KEY_ENTRY_17_12 (0x10018a70) +#define KV_REG_KEY_ENTRY_17_12 (0xa70) +#define CLP_KV_REG_KEY_ENTRY_17_13 (0x10018a74) +#define KV_REG_KEY_ENTRY_17_13 (0xa74) +#define CLP_KV_REG_KEY_ENTRY_17_14 (0x10018a78) +#define KV_REG_KEY_ENTRY_17_14 (0xa78) +#define CLP_KV_REG_KEY_ENTRY_17_15 (0x10018a7c) +#define KV_REG_KEY_ENTRY_17_15 (0xa7c) +#define CLP_KV_REG_KEY_ENTRY_18_0 (0x10018a80) +#define KV_REG_KEY_ENTRY_18_0 (0xa80) +#define CLP_KV_REG_KEY_ENTRY_18_1 (0x10018a84) +#define KV_REG_KEY_ENTRY_18_1 (0xa84) +#define CLP_KV_REG_KEY_ENTRY_18_2 (0x10018a88) +#define KV_REG_KEY_ENTRY_18_2 (0xa88) +#define CLP_KV_REG_KEY_ENTRY_18_3 (0x10018a8c) +#define KV_REG_KEY_ENTRY_18_3 (0xa8c) +#define CLP_KV_REG_KEY_ENTRY_18_4 (0x10018a90) +#define KV_REG_KEY_ENTRY_18_4 (0xa90) +#define CLP_KV_REG_KEY_ENTRY_18_5 (0x10018a94) +#define KV_REG_KEY_ENTRY_18_5 (0xa94) +#define CLP_KV_REG_KEY_ENTRY_18_6 (0x10018a98) +#define KV_REG_KEY_ENTRY_18_6 (0xa98) +#define CLP_KV_REG_KEY_ENTRY_18_7 (0x10018a9c) +#define KV_REG_KEY_ENTRY_18_7 (0xa9c) +#define CLP_KV_REG_KEY_ENTRY_18_8 (0x10018aa0) +#define KV_REG_KEY_ENTRY_18_8 (0xaa0) +#define CLP_KV_REG_KEY_ENTRY_18_9 (0x10018aa4) +#define KV_REG_KEY_ENTRY_18_9 (0xaa4) +#define CLP_KV_REG_KEY_ENTRY_18_10 (0x10018aa8) +#define KV_REG_KEY_ENTRY_18_10 (0xaa8) +#define CLP_KV_REG_KEY_ENTRY_18_11 (0x10018aac) +#define KV_REG_KEY_ENTRY_18_11 (0xaac) +#define CLP_KV_REG_KEY_ENTRY_18_12 (0x10018ab0) +#define KV_REG_KEY_ENTRY_18_12 (0xab0) +#define CLP_KV_REG_KEY_ENTRY_18_13 (0x10018ab4) +#define KV_REG_KEY_ENTRY_18_13 (0xab4) +#define CLP_KV_REG_KEY_ENTRY_18_14 (0x10018ab8) +#define KV_REG_KEY_ENTRY_18_14 (0xab8) +#define CLP_KV_REG_KEY_ENTRY_18_15 (0x10018abc) +#define KV_REG_KEY_ENTRY_18_15 (0xabc) +#define CLP_KV_REG_KEY_ENTRY_19_0 (0x10018ac0) +#define KV_REG_KEY_ENTRY_19_0 (0xac0) +#define CLP_KV_REG_KEY_ENTRY_19_1 (0x10018ac4) +#define KV_REG_KEY_ENTRY_19_1 (0xac4) +#define CLP_KV_REG_KEY_ENTRY_19_2 (0x10018ac8) +#define KV_REG_KEY_ENTRY_19_2 (0xac8) +#define CLP_KV_REG_KEY_ENTRY_19_3 (0x10018acc) +#define KV_REG_KEY_ENTRY_19_3 (0xacc) +#define CLP_KV_REG_KEY_ENTRY_19_4 (0x10018ad0) +#define KV_REG_KEY_ENTRY_19_4 (0xad0) +#define CLP_KV_REG_KEY_ENTRY_19_5 (0x10018ad4) +#define KV_REG_KEY_ENTRY_19_5 (0xad4) +#define CLP_KV_REG_KEY_ENTRY_19_6 (0x10018ad8) +#define KV_REG_KEY_ENTRY_19_6 (0xad8) +#define CLP_KV_REG_KEY_ENTRY_19_7 (0x10018adc) +#define KV_REG_KEY_ENTRY_19_7 (0xadc) +#define CLP_KV_REG_KEY_ENTRY_19_8 (0x10018ae0) +#define KV_REG_KEY_ENTRY_19_8 (0xae0) +#define CLP_KV_REG_KEY_ENTRY_19_9 (0x10018ae4) +#define KV_REG_KEY_ENTRY_19_9 (0xae4) +#define CLP_KV_REG_KEY_ENTRY_19_10 (0x10018ae8) +#define KV_REG_KEY_ENTRY_19_10 (0xae8) +#define CLP_KV_REG_KEY_ENTRY_19_11 (0x10018aec) +#define KV_REG_KEY_ENTRY_19_11 (0xaec) +#define CLP_KV_REG_KEY_ENTRY_19_12 (0x10018af0) +#define KV_REG_KEY_ENTRY_19_12 (0xaf0) +#define CLP_KV_REG_KEY_ENTRY_19_13 (0x10018af4) +#define KV_REG_KEY_ENTRY_19_13 (0xaf4) +#define CLP_KV_REG_KEY_ENTRY_19_14 (0x10018af8) +#define KV_REG_KEY_ENTRY_19_14 (0xaf8) +#define CLP_KV_REG_KEY_ENTRY_19_15 (0x10018afc) +#define KV_REG_KEY_ENTRY_19_15 (0xafc) +#define CLP_KV_REG_KEY_ENTRY_20_0 (0x10018b00) +#define KV_REG_KEY_ENTRY_20_0 (0xb00) +#define CLP_KV_REG_KEY_ENTRY_20_1 (0x10018b04) +#define KV_REG_KEY_ENTRY_20_1 (0xb04) +#define CLP_KV_REG_KEY_ENTRY_20_2 (0x10018b08) +#define KV_REG_KEY_ENTRY_20_2 (0xb08) +#define CLP_KV_REG_KEY_ENTRY_20_3 (0x10018b0c) +#define KV_REG_KEY_ENTRY_20_3 (0xb0c) +#define CLP_KV_REG_KEY_ENTRY_20_4 (0x10018b10) +#define KV_REG_KEY_ENTRY_20_4 (0xb10) +#define CLP_KV_REG_KEY_ENTRY_20_5 (0x10018b14) +#define KV_REG_KEY_ENTRY_20_5 (0xb14) +#define CLP_KV_REG_KEY_ENTRY_20_6 (0x10018b18) +#define KV_REG_KEY_ENTRY_20_6 (0xb18) +#define CLP_KV_REG_KEY_ENTRY_20_7 (0x10018b1c) +#define KV_REG_KEY_ENTRY_20_7 (0xb1c) +#define CLP_KV_REG_KEY_ENTRY_20_8 (0x10018b20) +#define KV_REG_KEY_ENTRY_20_8 (0xb20) +#define CLP_KV_REG_KEY_ENTRY_20_9 (0x10018b24) +#define KV_REG_KEY_ENTRY_20_9 (0xb24) +#define CLP_KV_REG_KEY_ENTRY_20_10 (0x10018b28) +#define KV_REG_KEY_ENTRY_20_10 (0xb28) +#define CLP_KV_REG_KEY_ENTRY_20_11 (0x10018b2c) +#define KV_REG_KEY_ENTRY_20_11 (0xb2c) +#define CLP_KV_REG_KEY_ENTRY_20_12 (0x10018b30) +#define KV_REG_KEY_ENTRY_20_12 (0xb30) +#define CLP_KV_REG_KEY_ENTRY_20_13 (0x10018b34) +#define KV_REG_KEY_ENTRY_20_13 (0xb34) +#define CLP_KV_REG_KEY_ENTRY_20_14 (0x10018b38) +#define KV_REG_KEY_ENTRY_20_14 (0xb38) +#define CLP_KV_REG_KEY_ENTRY_20_15 (0x10018b3c) +#define KV_REG_KEY_ENTRY_20_15 (0xb3c) +#define CLP_KV_REG_KEY_ENTRY_21_0 (0x10018b40) +#define KV_REG_KEY_ENTRY_21_0 (0xb40) +#define CLP_KV_REG_KEY_ENTRY_21_1 (0x10018b44) +#define KV_REG_KEY_ENTRY_21_1 (0xb44) +#define CLP_KV_REG_KEY_ENTRY_21_2 (0x10018b48) +#define KV_REG_KEY_ENTRY_21_2 (0xb48) +#define CLP_KV_REG_KEY_ENTRY_21_3 (0x10018b4c) +#define KV_REG_KEY_ENTRY_21_3 (0xb4c) +#define CLP_KV_REG_KEY_ENTRY_21_4 (0x10018b50) +#define KV_REG_KEY_ENTRY_21_4 (0xb50) +#define CLP_KV_REG_KEY_ENTRY_21_5 (0x10018b54) +#define KV_REG_KEY_ENTRY_21_5 (0xb54) +#define CLP_KV_REG_KEY_ENTRY_21_6 (0x10018b58) +#define KV_REG_KEY_ENTRY_21_6 (0xb58) +#define CLP_KV_REG_KEY_ENTRY_21_7 (0x10018b5c) +#define KV_REG_KEY_ENTRY_21_7 (0xb5c) +#define CLP_KV_REG_KEY_ENTRY_21_8 (0x10018b60) +#define KV_REG_KEY_ENTRY_21_8 (0xb60) +#define CLP_KV_REG_KEY_ENTRY_21_9 (0x10018b64) +#define KV_REG_KEY_ENTRY_21_9 (0xb64) +#define CLP_KV_REG_KEY_ENTRY_21_10 (0x10018b68) +#define KV_REG_KEY_ENTRY_21_10 (0xb68) +#define CLP_KV_REG_KEY_ENTRY_21_11 (0x10018b6c) +#define KV_REG_KEY_ENTRY_21_11 (0xb6c) +#define CLP_KV_REG_KEY_ENTRY_21_12 (0x10018b70) +#define KV_REG_KEY_ENTRY_21_12 (0xb70) +#define CLP_KV_REG_KEY_ENTRY_21_13 (0x10018b74) +#define KV_REG_KEY_ENTRY_21_13 (0xb74) +#define CLP_KV_REG_KEY_ENTRY_21_14 (0x10018b78) +#define KV_REG_KEY_ENTRY_21_14 (0xb78) +#define CLP_KV_REG_KEY_ENTRY_21_15 (0x10018b7c) +#define KV_REG_KEY_ENTRY_21_15 (0xb7c) +#define CLP_KV_REG_KEY_ENTRY_22_0 (0x10018b80) +#define KV_REG_KEY_ENTRY_22_0 (0xb80) +#define CLP_KV_REG_KEY_ENTRY_22_1 (0x10018b84) +#define KV_REG_KEY_ENTRY_22_1 (0xb84) +#define CLP_KV_REG_KEY_ENTRY_22_2 (0x10018b88) +#define KV_REG_KEY_ENTRY_22_2 (0xb88) +#define CLP_KV_REG_KEY_ENTRY_22_3 (0x10018b8c) +#define KV_REG_KEY_ENTRY_22_3 (0xb8c) +#define CLP_KV_REG_KEY_ENTRY_22_4 (0x10018b90) +#define KV_REG_KEY_ENTRY_22_4 (0xb90) +#define CLP_KV_REG_KEY_ENTRY_22_5 (0x10018b94) +#define KV_REG_KEY_ENTRY_22_5 (0xb94) +#define CLP_KV_REG_KEY_ENTRY_22_6 (0x10018b98) +#define KV_REG_KEY_ENTRY_22_6 (0xb98) +#define CLP_KV_REG_KEY_ENTRY_22_7 (0x10018b9c) +#define KV_REG_KEY_ENTRY_22_7 (0xb9c) +#define CLP_KV_REG_KEY_ENTRY_22_8 (0x10018ba0) +#define KV_REG_KEY_ENTRY_22_8 (0xba0) +#define CLP_KV_REG_KEY_ENTRY_22_9 (0x10018ba4) +#define KV_REG_KEY_ENTRY_22_9 (0xba4) +#define CLP_KV_REG_KEY_ENTRY_22_10 (0x10018ba8) +#define KV_REG_KEY_ENTRY_22_10 (0xba8) +#define CLP_KV_REG_KEY_ENTRY_22_11 (0x10018bac) +#define KV_REG_KEY_ENTRY_22_11 (0xbac) +#define CLP_KV_REG_KEY_ENTRY_22_12 (0x10018bb0) +#define KV_REG_KEY_ENTRY_22_12 (0xbb0) +#define CLP_KV_REG_KEY_ENTRY_22_13 (0x10018bb4) +#define KV_REG_KEY_ENTRY_22_13 (0xbb4) +#define CLP_KV_REG_KEY_ENTRY_22_14 (0x10018bb8) +#define KV_REG_KEY_ENTRY_22_14 (0xbb8) +#define CLP_KV_REG_KEY_ENTRY_22_15 (0x10018bbc) +#define KV_REG_KEY_ENTRY_22_15 (0xbbc) +#define CLP_KV_REG_KEY_ENTRY_23_0 (0x10018bc0) +#define KV_REG_KEY_ENTRY_23_0 (0xbc0) +#define CLP_KV_REG_KEY_ENTRY_23_1 (0x10018bc4) +#define KV_REG_KEY_ENTRY_23_1 (0xbc4) +#define CLP_KV_REG_KEY_ENTRY_23_2 (0x10018bc8) +#define KV_REG_KEY_ENTRY_23_2 (0xbc8) +#define CLP_KV_REG_KEY_ENTRY_23_3 (0x10018bcc) +#define KV_REG_KEY_ENTRY_23_3 (0xbcc) +#define CLP_KV_REG_KEY_ENTRY_23_4 (0x10018bd0) +#define KV_REG_KEY_ENTRY_23_4 (0xbd0) +#define CLP_KV_REG_KEY_ENTRY_23_5 (0x10018bd4) +#define KV_REG_KEY_ENTRY_23_5 (0xbd4) +#define CLP_KV_REG_KEY_ENTRY_23_6 (0x10018bd8) +#define KV_REG_KEY_ENTRY_23_6 (0xbd8) +#define CLP_KV_REG_KEY_ENTRY_23_7 (0x10018bdc) +#define KV_REG_KEY_ENTRY_23_7 (0xbdc) +#define CLP_KV_REG_KEY_ENTRY_23_8 (0x10018be0) +#define KV_REG_KEY_ENTRY_23_8 (0xbe0) +#define CLP_KV_REG_KEY_ENTRY_23_9 (0x10018be4) +#define KV_REG_KEY_ENTRY_23_9 (0xbe4) +#define CLP_KV_REG_KEY_ENTRY_23_10 (0x10018be8) +#define KV_REG_KEY_ENTRY_23_10 (0xbe8) +#define CLP_KV_REG_KEY_ENTRY_23_11 (0x10018bec) +#define KV_REG_KEY_ENTRY_23_11 (0xbec) +#define CLP_KV_REG_KEY_ENTRY_23_12 (0x10018bf0) +#define KV_REG_KEY_ENTRY_23_12 (0xbf0) +#define CLP_KV_REG_KEY_ENTRY_23_13 (0x10018bf4) +#define KV_REG_KEY_ENTRY_23_13 (0xbf4) +#define CLP_KV_REG_KEY_ENTRY_23_14 (0x10018bf8) +#define KV_REG_KEY_ENTRY_23_14 (0xbf8) +#define CLP_KV_REG_KEY_ENTRY_23_15 (0x10018bfc) +#define KV_REG_KEY_ENTRY_23_15 (0xbfc) #define CLP_KV_REG_CLEAR_SECRETS (0x10018c00) #define KV_REG_CLEAR_SECRETS (0xc00) #define KV_REG_CLEAR_SECRETS_WR_DEBUG_VALUES_LOW (0) @@ -4099,8 +3971,8 @@ #define SHA512_REG_SHA512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK (0x40) #define SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW (7) #define SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK (0x80) -#define SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW (8) -#define SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK (0x100) +#define SHA512_REG_SHA512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW (8) +#define SHA512_REG_SHA512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK (0x100) #define SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW (9) #define SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK (0x200) #define SHA512_REG_SHA512_KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW (10) @@ -5866,156 +5738,164 @@ #define SOC_IFC_REG_FUSE_UDS_SEED_10 (0x228) #define CLP_SOC_IFC_REG_FUSE_UDS_SEED_11 (0x3003022c) #define SOC_IFC_REG_FUSE_UDS_SEED_11 (0x22c) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (0x30030230) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (0x230) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (0x30030234) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (0x234) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (0x30030238) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (0x238) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (0x3003023c) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (0x23c) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (0x30030240) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (0x240) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (0x30030244) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (0x244) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (0x30030248) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (0x248) -#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (0x3003024c) -#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (0x24c) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x30030250) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x250) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x30030254) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x254) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x30030258) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x258) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x3003025c) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x25c) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x30030260) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x260) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x30030264) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x264) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x30030268) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x268) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x3003026c) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x26c) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x30030270) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x270) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x30030274) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x274) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x30030278) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x278) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x3003027c) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x27c) -#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x30030280) -#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x280) +#define CLP_SOC_IFC_REG_FUSE_UDS_SEED_12 (0x30030230) +#define SOC_IFC_REG_FUSE_UDS_SEED_12 (0x230) +#define CLP_SOC_IFC_REG_FUSE_UDS_SEED_13 (0x30030234) +#define SOC_IFC_REG_FUSE_UDS_SEED_13 (0x234) +#define CLP_SOC_IFC_REG_FUSE_UDS_SEED_14 (0x30030238) +#define SOC_IFC_REG_FUSE_UDS_SEED_14 (0x238) +#define CLP_SOC_IFC_REG_FUSE_UDS_SEED_15 (0x3003023c) +#define SOC_IFC_REG_FUSE_UDS_SEED_15 (0x23c) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (0x30030240) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (0x240) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (0x30030244) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (0x244) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (0x30030248) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (0x248) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (0x3003024c) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (0x24c) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (0x30030250) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (0x250) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (0x30030254) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (0x254) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (0x30030258) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (0x258) +#define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (0x3003025c) +#define SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (0x25c) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x30030260) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x260) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x30030264) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x264) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x30030268) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x268) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x3003026c) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x26c) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x30030270) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x270) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x30030274) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x274) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x30030278) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x278) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x3003027c) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x27c) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x30030280) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x280) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x30030284) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x284) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x30030288) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x288) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x3003028c) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x28c) +#define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x30030290) +#define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x290) #define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_LOW (0) #define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_MASK (0xf) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (0x30030284) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (0x284) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (0x30030288) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (0x288) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (0x3003028c) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (0x28c) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (0x30030290) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (0x290) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (0x30030294) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (0x294) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (0x30030298) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (0x298) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (0x3003029c) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (0x29c) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (0x300302a0) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (0x2a0) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (0x300302a4) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (0x2a4) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (0x300302a8) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (0x2a8) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (0x300302ac) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (0x2ac) -#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (0x300302b0) -#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (0x2b0) -#define CLP_SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x300302b4) -#define SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x2b4) -#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (0x300302b8) -#define SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (0x2b8) -#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (0x300302bc) -#define SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (0x2bc) -#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (0x300302c0) -#define SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (0x2c0) -#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (0x300302c4) -#define SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (0x2c4) -#define CLP_SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x300302c8) -#define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x2c8) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (0x30030294) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (0x294) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (0x30030298) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (0x298) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (0x3003029c) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (0x29c) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (0x300302a0) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (0x2a0) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (0x300302a4) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (0x2a4) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (0x300302a8) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (0x2a8) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (0x300302ac) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (0x2ac) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (0x300302b0) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (0x2b0) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (0x300302b4) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (0x2b4) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (0x300302b8) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (0x2b8) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (0x300302bc) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (0x2bc) +#define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (0x300302c0) +#define SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (0x2c0) +#define CLP_SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x300302c4) +#define SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x2c4) +#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (0x300302c8) +#define SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (0x2c8) +#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (0x300302cc) +#define SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (0x2cc) +#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (0x300302d0) +#define SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (0x2d0) +#define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (0x300302d4) +#define SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (0x2d4) +#define CLP_SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x300302d8) +#define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x2d8) #define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_LOW (0) #define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_MASK (0x1) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (0x300302cc) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (0x2cc) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (0x300302d0) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (0x2d0) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (0x300302d4) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (0x2d4) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (0x300302d8) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (0x2d8) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (0x300302dc) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (0x2dc) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (0x300302e0) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (0x2e0) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (0x300302e4) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (0x2e4) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (0x300302e8) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (0x2e8) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (0x300302ec) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (0x2ec) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (0x300302f0) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (0x2f0) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (0x300302f4) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (0x2f4) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (0x300302f8) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (0x2f8) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (0x300302fc) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (0x2fc) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (0x30030300) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (0x300) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (0x30030304) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (0x304) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (0x30030308) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (0x308) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (0x3003030c) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (0x30c) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (0x30030310) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (0x310) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (0x30030314) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (0x314) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (0x30030318) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (0x318) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (0x3003031c) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (0x31c) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (0x30030320) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (0x320) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (0x30030324) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (0x324) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (0x30030328) -#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (0x328) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x3003032c) -#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x32c) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x30030330) -#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x330) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x30030334) -#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x334) -#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x30030338) -#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x338) -#define CLP_SOC_IFC_REG_FUSE_LIFE_CYCLE (0x3003033c) -#define SOC_IFC_REG_FUSE_LIFE_CYCLE (0x33c) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (0x300302dc) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (0x2dc) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (0x300302e0) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (0x2e0) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (0x300302e4) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (0x2e4) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (0x300302e8) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (0x2e8) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (0x300302ec) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (0x2ec) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (0x300302f0) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (0x2f0) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (0x300302f4) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (0x2f4) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (0x300302f8) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (0x2f8) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (0x300302fc) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (0x2fc) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (0x30030300) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (0x300) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (0x30030304) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (0x304) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (0x30030308) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (0x308) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (0x3003030c) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (0x30c) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (0x30030310) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (0x310) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (0x30030314) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (0x314) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (0x30030318) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (0x318) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (0x3003031c) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (0x31c) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (0x30030320) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (0x320) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (0x30030324) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (0x324) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (0x30030328) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (0x328) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (0x3003032c) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (0x32c) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (0x30030330) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (0x330) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (0x30030334) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (0x334) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (0x30030338) +#define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (0x338) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x3003033c) +#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x33c) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x30030340) +#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x340) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x30030344) +#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x344) +#define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x30030348) +#define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x348) +#define CLP_SOC_IFC_REG_FUSE_LIFE_CYCLE (0x3003034c) +#define SOC_IFC_REG_FUSE_LIFE_CYCLE (0x34c) #define SOC_IFC_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_LOW (0) #define SOC_IFC_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_MASK (0x3) -#define CLP_SOC_IFC_REG_FUSE_LMS_VERIFY (0x30030340) -#define SOC_IFC_REG_FUSE_LMS_VERIFY (0x340) +#define CLP_SOC_IFC_REG_FUSE_LMS_VERIFY (0x30030350) +#define SOC_IFC_REG_FUSE_LMS_VERIFY (0x350) #define SOC_IFC_REG_FUSE_LMS_VERIFY_LMS_VERIFY_LOW (0) #define SOC_IFC_REG_FUSE_LMS_VERIFY_LMS_VERIFY_MASK (0x1) -#define CLP_SOC_IFC_REG_FUSE_LMS_REVOCATION (0x30030344) -#define SOC_IFC_REG_FUSE_LMS_REVOCATION (0x344) -#define CLP_SOC_IFC_REG_FUSE_SOC_STEPPING_ID (0x30030348) -#define SOC_IFC_REG_FUSE_SOC_STEPPING_ID (0x348) +#define CLP_SOC_IFC_REG_FUSE_LMS_REVOCATION (0x30030354) +#define SOC_IFC_REG_FUSE_LMS_REVOCATION (0x354) +#define CLP_SOC_IFC_REG_FUSE_SOC_STEPPING_ID (0x30030358) +#define SOC_IFC_REG_FUSE_SOC_STEPPING_ID (0x358) #define SOC_IFC_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_LOW (0) #define SOC_IFC_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_MASK (0xffff) #define CLP_SOC_IFC_REG_INTERNAL_OBF_KEY_0 (0x30030600) diff --git a/src/integration/rtl/caliptra_reg.rdl b/src/integration/rtl/caliptra_reg.rdl index cb8724cf6..a47deccff 100644 --- a/src/integration/rtl/caliptra_reg.rdl +++ b/src/integration/rtl/caliptra_reg.rdl @@ -31,7 +31,7 @@ addrmap clp { sha512_reg sha512_reg @ 0x1002_0000; sha256_reg sha256_reg @ 0x1002_8000; - + mldsa_reg mldsa_reg @ 0x1003_0000; csrng csrng_reg @ 0x2000_2000; diff --git a/src/integration/rtl/caliptra_reg_defines.svh b/src/integration/rtl/caliptra_reg_defines.svh index 9ee22686c..c3e990b95 100644 --- a/src/integration/rtl/caliptra_reg_defines.svh +++ b/src/integration/rtl/caliptra_reg_defines.svh @@ -490,8 +490,8 @@ `define ECC_REG_ECC_KV_WR_PKEY_CTRL_HMAC_KEY_DEST_VALID_MASK (32'h40) `define ECC_REG_ECC_KV_WR_PKEY_CTRL_HMAC_BLOCK_DEST_VALID_LOW (7) `define ECC_REG_ECC_KV_WR_PKEY_CTRL_HMAC_BLOCK_DEST_VALID_MASK (32'h80) -`define ECC_REG_ECC_KV_WR_PKEY_CTRL_SHA_BLOCK_DEST_VALID_LOW (8) -`define ECC_REG_ECC_KV_WR_PKEY_CTRL_SHA_BLOCK_DEST_VALID_MASK (32'h100) +`define ECC_REG_ECC_KV_WR_PKEY_CTRL_MLDSA_SEED_DEST_VALID_LOW (8) +`define ECC_REG_ECC_KV_WR_PKEY_CTRL_MLDSA_SEED_DEST_VALID_MASK (32'h100) `define ECC_REG_ECC_KV_WR_PKEY_CTRL_ECC_PKEY_DEST_VALID_LOW (9) `define ECC_REG_ECC_KV_WR_PKEY_CTRL_ECC_PKEY_DEST_VALID_MASK (32'h200) `define ECC_REG_ECC_KV_WR_PKEY_CTRL_ECC_SEED_DEST_VALID_LOW (10) @@ -782,8 +782,8 @@ `define HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK (32'h40) `define HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW (7) `define HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK (32'h80) -`define HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW (8) -`define HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK (32'h100) +`define HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW (8) +`define HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK (32'h100) `define HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW (9) `define HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK (32'h200) `define HMAC_REG_HMAC512_KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW (10) @@ -1270,134 +1270,6 @@ `define KV_REG_KEY_CTRL_23_DEST_VALID_MASK (32'h1fe00) `define KV_REG_KEY_CTRL_23_LAST_DWORD_LOW (17) `define KV_REG_KEY_CTRL_23_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_24 (32'h10018060) -`define KV_REG_KEY_CTRL_24 (32'h60) -`define KV_REG_KEY_CTRL_24_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_24_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_24_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_24_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_24_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_24_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_24_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_24_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_24_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_24_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_24_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_24_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_24_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_24_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_25 (32'h10018064) -`define KV_REG_KEY_CTRL_25 (32'h64) -`define KV_REG_KEY_CTRL_25_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_25_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_25_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_25_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_25_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_25_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_25_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_25_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_25_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_25_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_25_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_25_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_25_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_25_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_26 (32'h10018068) -`define KV_REG_KEY_CTRL_26 (32'h68) -`define KV_REG_KEY_CTRL_26_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_26_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_26_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_26_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_26_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_26_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_26_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_26_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_26_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_26_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_26_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_26_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_26_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_26_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_27 (32'h1001806c) -`define KV_REG_KEY_CTRL_27 (32'h6c) -`define KV_REG_KEY_CTRL_27_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_27_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_27_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_27_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_27_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_27_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_27_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_27_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_27_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_27_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_27_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_27_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_27_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_27_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_28 (32'h10018070) -`define KV_REG_KEY_CTRL_28 (32'h70) -`define KV_REG_KEY_CTRL_28_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_28_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_28_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_28_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_28_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_28_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_28_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_28_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_28_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_28_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_28_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_28_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_28_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_28_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_29 (32'h10018074) -`define KV_REG_KEY_CTRL_29 (32'h74) -`define KV_REG_KEY_CTRL_29_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_29_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_29_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_29_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_29_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_29_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_29_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_29_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_29_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_29_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_29_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_29_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_29_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_29_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_30 (32'h10018078) -`define KV_REG_KEY_CTRL_30 (32'h78) -`define KV_REG_KEY_CTRL_30_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_30_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_30_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_30_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_30_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_30_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_30_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_30_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_30_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_30_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_30_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_30_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_30_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_30_LAST_DWORD_MASK (32'h1e0000) -`define CLP_KV_REG_KEY_CTRL_31 (32'h1001807c) -`define KV_REG_KEY_CTRL_31 (32'h7c) -`define KV_REG_KEY_CTRL_31_LOCK_WR_LOW (0) -`define KV_REG_KEY_CTRL_31_LOCK_WR_MASK (32'h1) -`define KV_REG_KEY_CTRL_31_LOCK_USE_LOW (1) -`define KV_REG_KEY_CTRL_31_LOCK_USE_MASK (32'h2) -`define KV_REG_KEY_CTRL_31_CLEAR_LOW (2) -`define KV_REG_KEY_CTRL_31_CLEAR_MASK (32'h4) -`define KV_REG_KEY_CTRL_31_RSVD0_LOW (3) -`define KV_REG_KEY_CTRL_31_RSVD0_MASK (32'h8) -`define KV_REG_KEY_CTRL_31_RSVD1_LOW (4) -`define KV_REG_KEY_CTRL_31_RSVD1_MASK (32'h1f0) -`define KV_REG_KEY_CTRL_31_DEST_VALID_LOW (9) -`define KV_REG_KEY_CTRL_31_DEST_VALID_MASK (32'h1fe00) -`define KV_REG_KEY_CTRL_31_LAST_DWORD_LOW (17) -`define KV_REG_KEY_CTRL_31_LAST_DWORD_MASK (32'h1e0000) `define CLP_KV_REG_KEY_ENTRY_0_0 (32'h10018600) `define KV_REG_KEY_ENTRY_0_0 (32'h600) `define CLP_KV_REG_KEY_ENTRY_0_1 (32'h10018604) @@ -1422,750 +1294,750 @@ `define KV_REG_KEY_ENTRY_0_10 (32'h628) `define CLP_KV_REG_KEY_ENTRY_0_11 (32'h1001862c) `define KV_REG_KEY_ENTRY_0_11 (32'h62c) -`define CLP_KV_REG_KEY_ENTRY_1_0 (32'h10018630) -`define KV_REG_KEY_ENTRY_1_0 (32'h630) -`define CLP_KV_REG_KEY_ENTRY_1_1 (32'h10018634) -`define KV_REG_KEY_ENTRY_1_1 (32'h634) -`define CLP_KV_REG_KEY_ENTRY_1_2 (32'h10018638) -`define KV_REG_KEY_ENTRY_1_2 (32'h638) -`define CLP_KV_REG_KEY_ENTRY_1_3 (32'h1001863c) -`define KV_REG_KEY_ENTRY_1_3 (32'h63c) -`define CLP_KV_REG_KEY_ENTRY_1_4 (32'h10018640) -`define KV_REG_KEY_ENTRY_1_4 (32'h640) -`define CLP_KV_REG_KEY_ENTRY_1_5 (32'h10018644) -`define KV_REG_KEY_ENTRY_1_5 (32'h644) -`define CLP_KV_REG_KEY_ENTRY_1_6 (32'h10018648) -`define KV_REG_KEY_ENTRY_1_6 (32'h648) -`define CLP_KV_REG_KEY_ENTRY_1_7 (32'h1001864c) -`define KV_REG_KEY_ENTRY_1_7 (32'h64c) -`define CLP_KV_REG_KEY_ENTRY_1_8 (32'h10018650) -`define KV_REG_KEY_ENTRY_1_8 (32'h650) -`define CLP_KV_REG_KEY_ENTRY_1_9 (32'h10018654) -`define KV_REG_KEY_ENTRY_1_9 (32'h654) -`define CLP_KV_REG_KEY_ENTRY_1_10 (32'h10018658) -`define KV_REG_KEY_ENTRY_1_10 (32'h658) -`define CLP_KV_REG_KEY_ENTRY_1_11 (32'h1001865c) -`define KV_REG_KEY_ENTRY_1_11 (32'h65c) -`define CLP_KV_REG_KEY_ENTRY_2_0 (32'h10018660) -`define KV_REG_KEY_ENTRY_2_0 (32'h660) -`define CLP_KV_REG_KEY_ENTRY_2_1 (32'h10018664) -`define KV_REG_KEY_ENTRY_2_1 (32'h664) -`define CLP_KV_REG_KEY_ENTRY_2_2 (32'h10018668) -`define KV_REG_KEY_ENTRY_2_2 (32'h668) -`define CLP_KV_REG_KEY_ENTRY_2_3 (32'h1001866c) -`define KV_REG_KEY_ENTRY_2_3 (32'h66c) -`define CLP_KV_REG_KEY_ENTRY_2_4 (32'h10018670) -`define KV_REG_KEY_ENTRY_2_4 (32'h670) -`define CLP_KV_REG_KEY_ENTRY_2_5 (32'h10018674) -`define KV_REG_KEY_ENTRY_2_5 (32'h674) -`define CLP_KV_REG_KEY_ENTRY_2_6 (32'h10018678) -`define KV_REG_KEY_ENTRY_2_6 (32'h678) -`define CLP_KV_REG_KEY_ENTRY_2_7 (32'h1001867c) -`define KV_REG_KEY_ENTRY_2_7 (32'h67c) -`define CLP_KV_REG_KEY_ENTRY_2_8 (32'h10018680) -`define KV_REG_KEY_ENTRY_2_8 (32'h680) -`define CLP_KV_REG_KEY_ENTRY_2_9 (32'h10018684) -`define KV_REG_KEY_ENTRY_2_9 (32'h684) -`define CLP_KV_REG_KEY_ENTRY_2_10 (32'h10018688) -`define KV_REG_KEY_ENTRY_2_10 (32'h688) -`define CLP_KV_REG_KEY_ENTRY_2_11 (32'h1001868c) -`define KV_REG_KEY_ENTRY_2_11 (32'h68c) -`define CLP_KV_REG_KEY_ENTRY_3_0 (32'h10018690) -`define KV_REG_KEY_ENTRY_3_0 (32'h690) -`define CLP_KV_REG_KEY_ENTRY_3_1 (32'h10018694) -`define KV_REG_KEY_ENTRY_3_1 (32'h694) -`define CLP_KV_REG_KEY_ENTRY_3_2 (32'h10018698) -`define KV_REG_KEY_ENTRY_3_2 (32'h698) -`define CLP_KV_REG_KEY_ENTRY_3_3 (32'h1001869c) -`define KV_REG_KEY_ENTRY_3_3 (32'h69c) -`define CLP_KV_REG_KEY_ENTRY_3_4 (32'h100186a0) -`define KV_REG_KEY_ENTRY_3_4 (32'h6a0) -`define CLP_KV_REG_KEY_ENTRY_3_5 (32'h100186a4) -`define KV_REG_KEY_ENTRY_3_5 (32'h6a4) -`define CLP_KV_REG_KEY_ENTRY_3_6 (32'h100186a8) -`define KV_REG_KEY_ENTRY_3_6 (32'h6a8) -`define CLP_KV_REG_KEY_ENTRY_3_7 (32'h100186ac) -`define KV_REG_KEY_ENTRY_3_7 (32'h6ac) -`define CLP_KV_REG_KEY_ENTRY_3_8 (32'h100186b0) -`define KV_REG_KEY_ENTRY_3_8 (32'h6b0) -`define CLP_KV_REG_KEY_ENTRY_3_9 (32'h100186b4) -`define KV_REG_KEY_ENTRY_3_9 (32'h6b4) -`define CLP_KV_REG_KEY_ENTRY_3_10 (32'h100186b8) -`define KV_REG_KEY_ENTRY_3_10 (32'h6b8) -`define CLP_KV_REG_KEY_ENTRY_3_11 (32'h100186bc) -`define KV_REG_KEY_ENTRY_3_11 (32'h6bc) -`define CLP_KV_REG_KEY_ENTRY_4_0 (32'h100186c0) -`define KV_REG_KEY_ENTRY_4_0 (32'h6c0) -`define CLP_KV_REG_KEY_ENTRY_4_1 (32'h100186c4) -`define KV_REG_KEY_ENTRY_4_1 (32'h6c4) -`define CLP_KV_REG_KEY_ENTRY_4_2 (32'h100186c8) -`define KV_REG_KEY_ENTRY_4_2 (32'h6c8) -`define CLP_KV_REG_KEY_ENTRY_4_3 (32'h100186cc) -`define KV_REG_KEY_ENTRY_4_3 (32'h6cc) -`define CLP_KV_REG_KEY_ENTRY_4_4 (32'h100186d0) -`define KV_REG_KEY_ENTRY_4_4 (32'h6d0) -`define CLP_KV_REG_KEY_ENTRY_4_5 (32'h100186d4) -`define KV_REG_KEY_ENTRY_4_5 (32'h6d4) -`define CLP_KV_REG_KEY_ENTRY_4_6 (32'h100186d8) -`define KV_REG_KEY_ENTRY_4_6 (32'h6d8) -`define CLP_KV_REG_KEY_ENTRY_4_7 (32'h100186dc) -`define KV_REG_KEY_ENTRY_4_7 (32'h6dc) -`define CLP_KV_REG_KEY_ENTRY_4_8 (32'h100186e0) -`define KV_REG_KEY_ENTRY_4_8 (32'h6e0) -`define CLP_KV_REG_KEY_ENTRY_4_9 (32'h100186e4) -`define KV_REG_KEY_ENTRY_4_9 (32'h6e4) -`define CLP_KV_REG_KEY_ENTRY_4_10 (32'h100186e8) -`define KV_REG_KEY_ENTRY_4_10 (32'h6e8) -`define CLP_KV_REG_KEY_ENTRY_4_11 (32'h100186ec) -`define KV_REG_KEY_ENTRY_4_11 (32'h6ec) -`define CLP_KV_REG_KEY_ENTRY_5_0 (32'h100186f0) -`define KV_REG_KEY_ENTRY_5_0 (32'h6f0) -`define CLP_KV_REG_KEY_ENTRY_5_1 (32'h100186f4) -`define KV_REG_KEY_ENTRY_5_1 (32'h6f4) -`define CLP_KV_REG_KEY_ENTRY_5_2 (32'h100186f8) -`define KV_REG_KEY_ENTRY_5_2 (32'h6f8) -`define CLP_KV_REG_KEY_ENTRY_5_3 (32'h100186fc) -`define KV_REG_KEY_ENTRY_5_3 (32'h6fc) -`define CLP_KV_REG_KEY_ENTRY_5_4 (32'h10018700) -`define KV_REG_KEY_ENTRY_5_4 (32'h700) -`define CLP_KV_REG_KEY_ENTRY_5_5 (32'h10018704) -`define KV_REG_KEY_ENTRY_5_5 (32'h704) -`define CLP_KV_REG_KEY_ENTRY_5_6 (32'h10018708) -`define KV_REG_KEY_ENTRY_5_6 (32'h708) -`define CLP_KV_REG_KEY_ENTRY_5_7 (32'h1001870c) -`define KV_REG_KEY_ENTRY_5_7 (32'h70c) -`define CLP_KV_REG_KEY_ENTRY_5_8 (32'h10018710) -`define KV_REG_KEY_ENTRY_5_8 (32'h710) -`define CLP_KV_REG_KEY_ENTRY_5_9 (32'h10018714) -`define KV_REG_KEY_ENTRY_5_9 (32'h714) -`define CLP_KV_REG_KEY_ENTRY_5_10 (32'h10018718) -`define KV_REG_KEY_ENTRY_5_10 (32'h718) -`define CLP_KV_REG_KEY_ENTRY_5_11 (32'h1001871c) -`define KV_REG_KEY_ENTRY_5_11 (32'h71c) -`define CLP_KV_REG_KEY_ENTRY_6_0 (32'h10018720) -`define KV_REG_KEY_ENTRY_6_0 (32'h720) -`define CLP_KV_REG_KEY_ENTRY_6_1 (32'h10018724) -`define KV_REG_KEY_ENTRY_6_1 (32'h724) -`define CLP_KV_REG_KEY_ENTRY_6_2 (32'h10018728) -`define KV_REG_KEY_ENTRY_6_2 (32'h728) -`define CLP_KV_REG_KEY_ENTRY_6_3 (32'h1001872c) -`define KV_REG_KEY_ENTRY_6_3 (32'h72c) -`define CLP_KV_REG_KEY_ENTRY_6_4 (32'h10018730) -`define KV_REG_KEY_ENTRY_6_4 (32'h730) -`define CLP_KV_REG_KEY_ENTRY_6_5 (32'h10018734) -`define KV_REG_KEY_ENTRY_6_5 (32'h734) -`define CLP_KV_REG_KEY_ENTRY_6_6 (32'h10018738) -`define KV_REG_KEY_ENTRY_6_6 (32'h738) -`define CLP_KV_REG_KEY_ENTRY_6_7 (32'h1001873c) -`define KV_REG_KEY_ENTRY_6_7 (32'h73c) -`define CLP_KV_REG_KEY_ENTRY_6_8 (32'h10018740) -`define KV_REG_KEY_ENTRY_6_8 (32'h740) -`define CLP_KV_REG_KEY_ENTRY_6_9 (32'h10018744) -`define KV_REG_KEY_ENTRY_6_9 (32'h744) -`define CLP_KV_REG_KEY_ENTRY_6_10 (32'h10018748) -`define KV_REG_KEY_ENTRY_6_10 (32'h748) -`define CLP_KV_REG_KEY_ENTRY_6_11 (32'h1001874c) -`define KV_REG_KEY_ENTRY_6_11 (32'h74c) -`define CLP_KV_REG_KEY_ENTRY_7_0 (32'h10018750) -`define KV_REG_KEY_ENTRY_7_0 (32'h750) -`define CLP_KV_REG_KEY_ENTRY_7_1 (32'h10018754) -`define KV_REG_KEY_ENTRY_7_1 (32'h754) -`define CLP_KV_REG_KEY_ENTRY_7_2 (32'h10018758) -`define KV_REG_KEY_ENTRY_7_2 (32'h758) -`define CLP_KV_REG_KEY_ENTRY_7_3 (32'h1001875c) -`define KV_REG_KEY_ENTRY_7_3 (32'h75c) -`define CLP_KV_REG_KEY_ENTRY_7_4 (32'h10018760) -`define KV_REG_KEY_ENTRY_7_4 (32'h760) -`define CLP_KV_REG_KEY_ENTRY_7_5 (32'h10018764) -`define KV_REG_KEY_ENTRY_7_5 (32'h764) -`define CLP_KV_REG_KEY_ENTRY_7_6 (32'h10018768) -`define KV_REG_KEY_ENTRY_7_6 (32'h768) -`define CLP_KV_REG_KEY_ENTRY_7_7 (32'h1001876c) -`define KV_REG_KEY_ENTRY_7_7 (32'h76c) -`define CLP_KV_REG_KEY_ENTRY_7_8 (32'h10018770) -`define KV_REG_KEY_ENTRY_7_8 (32'h770) -`define CLP_KV_REG_KEY_ENTRY_7_9 (32'h10018774) -`define KV_REG_KEY_ENTRY_7_9 (32'h774) -`define CLP_KV_REG_KEY_ENTRY_7_10 (32'h10018778) -`define KV_REG_KEY_ENTRY_7_10 (32'h778) -`define CLP_KV_REG_KEY_ENTRY_7_11 (32'h1001877c) -`define KV_REG_KEY_ENTRY_7_11 (32'h77c) -`define CLP_KV_REG_KEY_ENTRY_8_0 (32'h10018780) -`define KV_REG_KEY_ENTRY_8_0 (32'h780) -`define CLP_KV_REG_KEY_ENTRY_8_1 (32'h10018784) -`define KV_REG_KEY_ENTRY_8_1 (32'h784) -`define CLP_KV_REG_KEY_ENTRY_8_2 (32'h10018788) -`define KV_REG_KEY_ENTRY_8_2 (32'h788) -`define CLP_KV_REG_KEY_ENTRY_8_3 (32'h1001878c) -`define KV_REG_KEY_ENTRY_8_3 (32'h78c) -`define CLP_KV_REG_KEY_ENTRY_8_4 (32'h10018790) -`define KV_REG_KEY_ENTRY_8_4 (32'h790) -`define CLP_KV_REG_KEY_ENTRY_8_5 (32'h10018794) -`define KV_REG_KEY_ENTRY_8_5 (32'h794) -`define CLP_KV_REG_KEY_ENTRY_8_6 (32'h10018798) -`define KV_REG_KEY_ENTRY_8_6 (32'h798) -`define CLP_KV_REG_KEY_ENTRY_8_7 (32'h1001879c) -`define KV_REG_KEY_ENTRY_8_7 (32'h79c) -`define CLP_KV_REG_KEY_ENTRY_8_8 (32'h100187a0) -`define KV_REG_KEY_ENTRY_8_8 (32'h7a0) -`define CLP_KV_REG_KEY_ENTRY_8_9 (32'h100187a4) -`define KV_REG_KEY_ENTRY_8_9 (32'h7a4) -`define CLP_KV_REG_KEY_ENTRY_8_10 (32'h100187a8) -`define KV_REG_KEY_ENTRY_8_10 (32'h7a8) -`define CLP_KV_REG_KEY_ENTRY_8_11 (32'h100187ac) -`define KV_REG_KEY_ENTRY_8_11 (32'h7ac) -`define CLP_KV_REG_KEY_ENTRY_9_0 (32'h100187b0) -`define KV_REG_KEY_ENTRY_9_0 (32'h7b0) -`define CLP_KV_REG_KEY_ENTRY_9_1 (32'h100187b4) -`define KV_REG_KEY_ENTRY_9_1 (32'h7b4) -`define CLP_KV_REG_KEY_ENTRY_9_2 (32'h100187b8) -`define KV_REG_KEY_ENTRY_9_2 (32'h7b8) -`define CLP_KV_REG_KEY_ENTRY_9_3 (32'h100187bc) -`define KV_REG_KEY_ENTRY_9_3 (32'h7bc) -`define CLP_KV_REG_KEY_ENTRY_9_4 (32'h100187c0) -`define KV_REG_KEY_ENTRY_9_4 (32'h7c0) -`define CLP_KV_REG_KEY_ENTRY_9_5 (32'h100187c4) -`define KV_REG_KEY_ENTRY_9_5 (32'h7c4) -`define CLP_KV_REG_KEY_ENTRY_9_6 (32'h100187c8) -`define KV_REG_KEY_ENTRY_9_6 (32'h7c8) -`define CLP_KV_REG_KEY_ENTRY_9_7 (32'h100187cc) -`define KV_REG_KEY_ENTRY_9_7 (32'h7cc) -`define CLP_KV_REG_KEY_ENTRY_9_8 (32'h100187d0) -`define KV_REG_KEY_ENTRY_9_8 (32'h7d0) -`define CLP_KV_REG_KEY_ENTRY_9_9 (32'h100187d4) -`define KV_REG_KEY_ENTRY_9_9 (32'h7d4) -`define CLP_KV_REG_KEY_ENTRY_9_10 (32'h100187d8) -`define KV_REG_KEY_ENTRY_9_10 (32'h7d8) -`define CLP_KV_REG_KEY_ENTRY_9_11 (32'h100187dc) -`define KV_REG_KEY_ENTRY_9_11 (32'h7dc) -`define CLP_KV_REG_KEY_ENTRY_10_0 (32'h100187e0) -`define KV_REG_KEY_ENTRY_10_0 (32'h7e0) -`define CLP_KV_REG_KEY_ENTRY_10_1 (32'h100187e4) -`define KV_REG_KEY_ENTRY_10_1 (32'h7e4) -`define CLP_KV_REG_KEY_ENTRY_10_2 (32'h100187e8) -`define KV_REG_KEY_ENTRY_10_2 (32'h7e8) -`define CLP_KV_REG_KEY_ENTRY_10_3 (32'h100187ec) -`define KV_REG_KEY_ENTRY_10_3 (32'h7ec) -`define CLP_KV_REG_KEY_ENTRY_10_4 (32'h100187f0) -`define KV_REG_KEY_ENTRY_10_4 (32'h7f0) -`define CLP_KV_REG_KEY_ENTRY_10_5 (32'h100187f4) -`define KV_REG_KEY_ENTRY_10_5 (32'h7f4) -`define CLP_KV_REG_KEY_ENTRY_10_6 (32'h100187f8) -`define KV_REG_KEY_ENTRY_10_6 (32'h7f8) -`define CLP_KV_REG_KEY_ENTRY_10_7 (32'h100187fc) -`define KV_REG_KEY_ENTRY_10_7 (32'h7fc) -`define CLP_KV_REG_KEY_ENTRY_10_8 (32'h10018800) -`define KV_REG_KEY_ENTRY_10_8 (32'h800) -`define CLP_KV_REG_KEY_ENTRY_10_9 (32'h10018804) -`define KV_REG_KEY_ENTRY_10_9 (32'h804) -`define CLP_KV_REG_KEY_ENTRY_10_10 (32'h10018808) -`define KV_REG_KEY_ENTRY_10_10 (32'h808) -`define CLP_KV_REG_KEY_ENTRY_10_11 (32'h1001880c) -`define KV_REG_KEY_ENTRY_10_11 (32'h80c) -`define CLP_KV_REG_KEY_ENTRY_11_0 (32'h10018810) -`define KV_REG_KEY_ENTRY_11_0 (32'h810) -`define CLP_KV_REG_KEY_ENTRY_11_1 (32'h10018814) -`define KV_REG_KEY_ENTRY_11_1 (32'h814) -`define CLP_KV_REG_KEY_ENTRY_11_2 (32'h10018818) -`define KV_REG_KEY_ENTRY_11_2 (32'h818) -`define CLP_KV_REG_KEY_ENTRY_11_3 (32'h1001881c) -`define KV_REG_KEY_ENTRY_11_3 (32'h81c) -`define CLP_KV_REG_KEY_ENTRY_11_4 (32'h10018820) -`define KV_REG_KEY_ENTRY_11_4 (32'h820) -`define CLP_KV_REG_KEY_ENTRY_11_5 (32'h10018824) -`define KV_REG_KEY_ENTRY_11_5 (32'h824) -`define CLP_KV_REG_KEY_ENTRY_11_6 (32'h10018828) -`define KV_REG_KEY_ENTRY_11_6 (32'h828) -`define CLP_KV_REG_KEY_ENTRY_11_7 (32'h1001882c) -`define KV_REG_KEY_ENTRY_11_7 (32'h82c) -`define CLP_KV_REG_KEY_ENTRY_11_8 (32'h10018830) -`define KV_REG_KEY_ENTRY_11_8 (32'h830) -`define CLP_KV_REG_KEY_ENTRY_11_9 (32'h10018834) -`define KV_REG_KEY_ENTRY_11_9 (32'h834) -`define CLP_KV_REG_KEY_ENTRY_11_10 (32'h10018838) -`define KV_REG_KEY_ENTRY_11_10 (32'h838) -`define CLP_KV_REG_KEY_ENTRY_11_11 (32'h1001883c) -`define KV_REG_KEY_ENTRY_11_11 (32'h83c) -`define CLP_KV_REG_KEY_ENTRY_12_0 (32'h10018840) -`define KV_REG_KEY_ENTRY_12_0 (32'h840) -`define CLP_KV_REG_KEY_ENTRY_12_1 (32'h10018844) -`define KV_REG_KEY_ENTRY_12_1 (32'h844) -`define CLP_KV_REG_KEY_ENTRY_12_2 (32'h10018848) -`define KV_REG_KEY_ENTRY_12_2 (32'h848) -`define CLP_KV_REG_KEY_ENTRY_12_3 (32'h1001884c) -`define KV_REG_KEY_ENTRY_12_3 (32'h84c) -`define CLP_KV_REG_KEY_ENTRY_12_4 (32'h10018850) -`define KV_REG_KEY_ENTRY_12_4 (32'h850) -`define CLP_KV_REG_KEY_ENTRY_12_5 (32'h10018854) -`define KV_REG_KEY_ENTRY_12_5 (32'h854) -`define CLP_KV_REG_KEY_ENTRY_12_6 (32'h10018858) -`define KV_REG_KEY_ENTRY_12_6 (32'h858) -`define CLP_KV_REG_KEY_ENTRY_12_7 (32'h1001885c) -`define KV_REG_KEY_ENTRY_12_7 (32'h85c) -`define CLP_KV_REG_KEY_ENTRY_12_8 (32'h10018860) -`define KV_REG_KEY_ENTRY_12_8 (32'h860) -`define CLP_KV_REG_KEY_ENTRY_12_9 (32'h10018864) -`define KV_REG_KEY_ENTRY_12_9 (32'h864) -`define CLP_KV_REG_KEY_ENTRY_12_10 (32'h10018868) -`define KV_REG_KEY_ENTRY_12_10 (32'h868) -`define CLP_KV_REG_KEY_ENTRY_12_11 (32'h1001886c) -`define KV_REG_KEY_ENTRY_12_11 (32'h86c) -`define CLP_KV_REG_KEY_ENTRY_13_0 (32'h10018870) -`define KV_REG_KEY_ENTRY_13_0 (32'h870) -`define CLP_KV_REG_KEY_ENTRY_13_1 (32'h10018874) -`define KV_REG_KEY_ENTRY_13_1 (32'h874) -`define CLP_KV_REG_KEY_ENTRY_13_2 (32'h10018878) -`define KV_REG_KEY_ENTRY_13_2 (32'h878) -`define CLP_KV_REG_KEY_ENTRY_13_3 (32'h1001887c) -`define KV_REG_KEY_ENTRY_13_3 (32'h87c) -`define CLP_KV_REG_KEY_ENTRY_13_4 (32'h10018880) -`define KV_REG_KEY_ENTRY_13_4 (32'h880) -`define CLP_KV_REG_KEY_ENTRY_13_5 (32'h10018884) -`define KV_REG_KEY_ENTRY_13_5 (32'h884) -`define CLP_KV_REG_KEY_ENTRY_13_6 (32'h10018888) -`define KV_REG_KEY_ENTRY_13_6 (32'h888) -`define CLP_KV_REG_KEY_ENTRY_13_7 (32'h1001888c) -`define KV_REG_KEY_ENTRY_13_7 (32'h88c) -`define CLP_KV_REG_KEY_ENTRY_13_8 (32'h10018890) -`define KV_REG_KEY_ENTRY_13_8 (32'h890) -`define CLP_KV_REG_KEY_ENTRY_13_9 (32'h10018894) -`define KV_REG_KEY_ENTRY_13_9 (32'h894) -`define CLP_KV_REG_KEY_ENTRY_13_10 (32'h10018898) -`define KV_REG_KEY_ENTRY_13_10 (32'h898) -`define CLP_KV_REG_KEY_ENTRY_13_11 (32'h1001889c) -`define KV_REG_KEY_ENTRY_13_11 (32'h89c) -`define CLP_KV_REG_KEY_ENTRY_14_0 (32'h100188a0) -`define KV_REG_KEY_ENTRY_14_0 (32'h8a0) -`define CLP_KV_REG_KEY_ENTRY_14_1 (32'h100188a4) -`define KV_REG_KEY_ENTRY_14_1 (32'h8a4) -`define CLP_KV_REG_KEY_ENTRY_14_2 (32'h100188a8) -`define KV_REG_KEY_ENTRY_14_2 (32'h8a8) -`define CLP_KV_REG_KEY_ENTRY_14_3 (32'h100188ac) -`define KV_REG_KEY_ENTRY_14_3 (32'h8ac) -`define CLP_KV_REG_KEY_ENTRY_14_4 (32'h100188b0) -`define KV_REG_KEY_ENTRY_14_4 (32'h8b0) -`define CLP_KV_REG_KEY_ENTRY_14_5 (32'h100188b4) -`define KV_REG_KEY_ENTRY_14_5 (32'h8b4) -`define CLP_KV_REG_KEY_ENTRY_14_6 (32'h100188b8) -`define KV_REG_KEY_ENTRY_14_6 (32'h8b8) -`define CLP_KV_REG_KEY_ENTRY_14_7 (32'h100188bc) -`define KV_REG_KEY_ENTRY_14_7 (32'h8bc) -`define CLP_KV_REG_KEY_ENTRY_14_8 (32'h100188c0) -`define KV_REG_KEY_ENTRY_14_8 (32'h8c0) -`define CLP_KV_REG_KEY_ENTRY_14_9 (32'h100188c4) -`define KV_REG_KEY_ENTRY_14_9 (32'h8c4) -`define CLP_KV_REG_KEY_ENTRY_14_10 (32'h100188c8) -`define KV_REG_KEY_ENTRY_14_10 (32'h8c8) -`define CLP_KV_REG_KEY_ENTRY_14_11 (32'h100188cc) -`define KV_REG_KEY_ENTRY_14_11 (32'h8cc) -`define CLP_KV_REG_KEY_ENTRY_15_0 (32'h100188d0) -`define KV_REG_KEY_ENTRY_15_0 (32'h8d0) -`define CLP_KV_REG_KEY_ENTRY_15_1 (32'h100188d4) -`define KV_REG_KEY_ENTRY_15_1 (32'h8d4) -`define CLP_KV_REG_KEY_ENTRY_15_2 (32'h100188d8) -`define KV_REG_KEY_ENTRY_15_2 (32'h8d8) -`define CLP_KV_REG_KEY_ENTRY_15_3 (32'h100188dc) -`define KV_REG_KEY_ENTRY_15_3 (32'h8dc) -`define CLP_KV_REG_KEY_ENTRY_15_4 (32'h100188e0) -`define KV_REG_KEY_ENTRY_15_4 (32'h8e0) -`define CLP_KV_REG_KEY_ENTRY_15_5 (32'h100188e4) -`define KV_REG_KEY_ENTRY_15_5 (32'h8e4) -`define CLP_KV_REG_KEY_ENTRY_15_6 (32'h100188e8) -`define KV_REG_KEY_ENTRY_15_6 (32'h8e8) -`define CLP_KV_REG_KEY_ENTRY_15_7 (32'h100188ec) -`define KV_REG_KEY_ENTRY_15_7 (32'h8ec) -`define CLP_KV_REG_KEY_ENTRY_15_8 (32'h100188f0) -`define KV_REG_KEY_ENTRY_15_8 (32'h8f0) -`define CLP_KV_REG_KEY_ENTRY_15_9 (32'h100188f4) -`define KV_REG_KEY_ENTRY_15_9 (32'h8f4) -`define CLP_KV_REG_KEY_ENTRY_15_10 (32'h100188f8) -`define KV_REG_KEY_ENTRY_15_10 (32'h8f8) -`define CLP_KV_REG_KEY_ENTRY_15_11 (32'h100188fc) -`define KV_REG_KEY_ENTRY_15_11 (32'h8fc) -`define CLP_KV_REG_KEY_ENTRY_16_0 (32'h10018900) -`define KV_REG_KEY_ENTRY_16_0 (32'h900) -`define CLP_KV_REG_KEY_ENTRY_16_1 (32'h10018904) -`define KV_REG_KEY_ENTRY_16_1 (32'h904) -`define CLP_KV_REG_KEY_ENTRY_16_2 (32'h10018908) -`define KV_REG_KEY_ENTRY_16_2 (32'h908) -`define CLP_KV_REG_KEY_ENTRY_16_3 (32'h1001890c) -`define KV_REG_KEY_ENTRY_16_3 (32'h90c) -`define CLP_KV_REG_KEY_ENTRY_16_4 (32'h10018910) -`define KV_REG_KEY_ENTRY_16_4 (32'h910) -`define CLP_KV_REG_KEY_ENTRY_16_5 (32'h10018914) -`define KV_REG_KEY_ENTRY_16_5 (32'h914) -`define CLP_KV_REG_KEY_ENTRY_16_6 (32'h10018918) -`define KV_REG_KEY_ENTRY_16_6 (32'h918) -`define CLP_KV_REG_KEY_ENTRY_16_7 (32'h1001891c) -`define KV_REG_KEY_ENTRY_16_7 (32'h91c) -`define CLP_KV_REG_KEY_ENTRY_16_8 (32'h10018920) -`define KV_REG_KEY_ENTRY_16_8 (32'h920) -`define CLP_KV_REG_KEY_ENTRY_16_9 (32'h10018924) -`define KV_REG_KEY_ENTRY_16_9 (32'h924) -`define CLP_KV_REG_KEY_ENTRY_16_10 (32'h10018928) -`define KV_REG_KEY_ENTRY_16_10 (32'h928) -`define CLP_KV_REG_KEY_ENTRY_16_11 (32'h1001892c) -`define KV_REG_KEY_ENTRY_16_11 (32'h92c) -`define CLP_KV_REG_KEY_ENTRY_17_0 (32'h10018930) -`define KV_REG_KEY_ENTRY_17_0 (32'h930) -`define CLP_KV_REG_KEY_ENTRY_17_1 (32'h10018934) -`define KV_REG_KEY_ENTRY_17_1 (32'h934) -`define CLP_KV_REG_KEY_ENTRY_17_2 (32'h10018938) -`define KV_REG_KEY_ENTRY_17_2 (32'h938) -`define CLP_KV_REG_KEY_ENTRY_17_3 (32'h1001893c) -`define KV_REG_KEY_ENTRY_17_3 (32'h93c) -`define CLP_KV_REG_KEY_ENTRY_17_4 (32'h10018940) -`define KV_REG_KEY_ENTRY_17_4 (32'h940) -`define CLP_KV_REG_KEY_ENTRY_17_5 (32'h10018944) -`define KV_REG_KEY_ENTRY_17_5 (32'h944) -`define CLP_KV_REG_KEY_ENTRY_17_6 (32'h10018948) -`define KV_REG_KEY_ENTRY_17_6 (32'h948) -`define CLP_KV_REG_KEY_ENTRY_17_7 (32'h1001894c) -`define KV_REG_KEY_ENTRY_17_7 (32'h94c) -`define CLP_KV_REG_KEY_ENTRY_17_8 (32'h10018950) -`define KV_REG_KEY_ENTRY_17_8 (32'h950) -`define CLP_KV_REG_KEY_ENTRY_17_9 (32'h10018954) -`define KV_REG_KEY_ENTRY_17_9 (32'h954) -`define CLP_KV_REG_KEY_ENTRY_17_10 (32'h10018958) -`define KV_REG_KEY_ENTRY_17_10 (32'h958) -`define CLP_KV_REG_KEY_ENTRY_17_11 (32'h1001895c) -`define KV_REG_KEY_ENTRY_17_11 (32'h95c) -`define CLP_KV_REG_KEY_ENTRY_18_0 (32'h10018960) -`define KV_REG_KEY_ENTRY_18_0 (32'h960) -`define CLP_KV_REG_KEY_ENTRY_18_1 (32'h10018964) -`define KV_REG_KEY_ENTRY_18_1 (32'h964) -`define CLP_KV_REG_KEY_ENTRY_18_2 (32'h10018968) -`define KV_REG_KEY_ENTRY_18_2 (32'h968) -`define CLP_KV_REG_KEY_ENTRY_18_3 (32'h1001896c) -`define KV_REG_KEY_ENTRY_18_3 (32'h96c) -`define CLP_KV_REG_KEY_ENTRY_18_4 (32'h10018970) -`define KV_REG_KEY_ENTRY_18_4 (32'h970) -`define CLP_KV_REG_KEY_ENTRY_18_5 (32'h10018974) -`define KV_REG_KEY_ENTRY_18_5 (32'h974) -`define CLP_KV_REG_KEY_ENTRY_18_6 (32'h10018978) -`define KV_REG_KEY_ENTRY_18_6 (32'h978) -`define CLP_KV_REG_KEY_ENTRY_18_7 (32'h1001897c) -`define KV_REG_KEY_ENTRY_18_7 (32'h97c) -`define CLP_KV_REG_KEY_ENTRY_18_8 (32'h10018980) -`define KV_REG_KEY_ENTRY_18_8 (32'h980) -`define CLP_KV_REG_KEY_ENTRY_18_9 (32'h10018984) -`define KV_REG_KEY_ENTRY_18_9 (32'h984) -`define CLP_KV_REG_KEY_ENTRY_18_10 (32'h10018988) -`define KV_REG_KEY_ENTRY_18_10 (32'h988) -`define CLP_KV_REG_KEY_ENTRY_18_11 (32'h1001898c) -`define KV_REG_KEY_ENTRY_18_11 (32'h98c) -`define CLP_KV_REG_KEY_ENTRY_19_0 (32'h10018990) -`define KV_REG_KEY_ENTRY_19_0 (32'h990) -`define CLP_KV_REG_KEY_ENTRY_19_1 (32'h10018994) -`define KV_REG_KEY_ENTRY_19_1 (32'h994) -`define CLP_KV_REG_KEY_ENTRY_19_2 (32'h10018998) -`define KV_REG_KEY_ENTRY_19_2 (32'h998) -`define CLP_KV_REG_KEY_ENTRY_19_3 (32'h1001899c) -`define KV_REG_KEY_ENTRY_19_3 (32'h99c) -`define CLP_KV_REG_KEY_ENTRY_19_4 (32'h100189a0) -`define KV_REG_KEY_ENTRY_19_4 (32'h9a0) -`define CLP_KV_REG_KEY_ENTRY_19_5 (32'h100189a4) -`define KV_REG_KEY_ENTRY_19_5 (32'h9a4) -`define CLP_KV_REG_KEY_ENTRY_19_6 (32'h100189a8) -`define KV_REG_KEY_ENTRY_19_6 (32'h9a8) -`define CLP_KV_REG_KEY_ENTRY_19_7 (32'h100189ac) -`define KV_REG_KEY_ENTRY_19_7 (32'h9ac) -`define CLP_KV_REG_KEY_ENTRY_19_8 (32'h100189b0) -`define KV_REG_KEY_ENTRY_19_8 (32'h9b0) -`define CLP_KV_REG_KEY_ENTRY_19_9 (32'h100189b4) -`define KV_REG_KEY_ENTRY_19_9 (32'h9b4) -`define CLP_KV_REG_KEY_ENTRY_19_10 (32'h100189b8) -`define KV_REG_KEY_ENTRY_19_10 (32'h9b8) -`define CLP_KV_REG_KEY_ENTRY_19_11 (32'h100189bc) -`define KV_REG_KEY_ENTRY_19_11 (32'h9bc) -`define CLP_KV_REG_KEY_ENTRY_20_0 (32'h100189c0) -`define KV_REG_KEY_ENTRY_20_0 (32'h9c0) -`define CLP_KV_REG_KEY_ENTRY_20_1 (32'h100189c4) -`define KV_REG_KEY_ENTRY_20_1 (32'h9c4) -`define CLP_KV_REG_KEY_ENTRY_20_2 (32'h100189c8) -`define KV_REG_KEY_ENTRY_20_2 (32'h9c8) -`define CLP_KV_REG_KEY_ENTRY_20_3 (32'h100189cc) -`define KV_REG_KEY_ENTRY_20_3 (32'h9cc) -`define CLP_KV_REG_KEY_ENTRY_20_4 (32'h100189d0) -`define KV_REG_KEY_ENTRY_20_4 (32'h9d0) -`define CLP_KV_REG_KEY_ENTRY_20_5 (32'h100189d4) -`define KV_REG_KEY_ENTRY_20_5 (32'h9d4) -`define CLP_KV_REG_KEY_ENTRY_20_6 (32'h100189d8) -`define KV_REG_KEY_ENTRY_20_6 (32'h9d8) -`define CLP_KV_REG_KEY_ENTRY_20_7 (32'h100189dc) -`define KV_REG_KEY_ENTRY_20_7 (32'h9dc) -`define CLP_KV_REG_KEY_ENTRY_20_8 (32'h100189e0) -`define KV_REG_KEY_ENTRY_20_8 (32'h9e0) -`define CLP_KV_REG_KEY_ENTRY_20_9 (32'h100189e4) -`define KV_REG_KEY_ENTRY_20_9 (32'h9e4) -`define CLP_KV_REG_KEY_ENTRY_20_10 (32'h100189e8) -`define KV_REG_KEY_ENTRY_20_10 (32'h9e8) -`define CLP_KV_REG_KEY_ENTRY_20_11 (32'h100189ec) -`define KV_REG_KEY_ENTRY_20_11 (32'h9ec) -`define CLP_KV_REG_KEY_ENTRY_21_0 (32'h100189f0) -`define KV_REG_KEY_ENTRY_21_0 (32'h9f0) -`define CLP_KV_REG_KEY_ENTRY_21_1 (32'h100189f4) -`define KV_REG_KEY_ENTRY_21_1 (32'h9f4) -`define CLP_KV_REG_KEY_ENTRY_21_2 (32'h100189f8) -`define KV_REG_KEY_ENTRY_21_2 (32'h9f8) -`define CLP_KV_REG_KEY_ENTRY_21_3 (32'h100189fc) -`define KV_REG_KEY_ENTRY_21_3 (32'h9fc) -`define CLP_KV_REG_KEY_ENTRY_21_4 (32'h10018a00) -`define KV_REG_KEY_ENTRY_21_4 (32'ha00) -`define CLP_KV_REG_KEY_ENTRY_21_5 (32'h10018a04) -`define KV_REG_KEY_ENTRY_21_5 (32'ha04) -`define CLP_KV_REG_KEY_ENTRY_21_6 (32'h10018a08) -`define KV_REG_KEY_ENTRY_21_6 (32'ha08) -`define CLP_KV_REG_KEY_ENTRY_21_7 (32'h10018a0c) -`define KV_REG_KEY_ENTRY_21_7 (32'ha0c) -`define CLP_KV_REG_KEY_ENTRY_21_8 (32'h10018a10) -`define KV_REG_KEY_ENTRY_21_8 (32'ha10) -`define CLP_KV_REG_KEY_ENTRY_21_9 (32'h10018a14) -`define KV_REG_KEY_ENTRY_21_9 (32'ha14) -`define CLP_KV_REG_KEY_ENTRY_21_10 (32'h10018a18) -`define KV_REG_KEY_ENTRY_21_10 (32'ha18) -`define CLP_KV_REG_KEY_ENTRY_21_11 (32'h10018a1c) -`define KV_REG_KEY_ENTRY_21_11 (32'ha1c) -`define CLP_KV_REG_KEY_ENTRY_22_0 (32'h10018a20) -`define KV_REG_KEY_ENTRY_22_0 (32'ha20) -`define CLP_KV_REG_KEY_ENTRY_22_1 (32'h10018a24) -`define KV_REG_KEY_ENTRY_22_1 (32'ha24) -`define CLP_KV_REG_KEY_ENTRY_22_2 (32'h10018a28) -`define KV_REG_KEY_ENTRY_22_2 (32'ha28) -`define CLP_KV_REG_KEY_ENTRY_22_3 (32'h10018a2c) -`define KV_REG_KEY_ENTRY_22_3 (32'ha2c) -`define CLP_KV_REG_KEY_ENTRY_22_4 (32'h10018a30) -`define KV_REG_KEY_ENTRY_22_4 (32'ha30) -`define CLP_KV_REG_KEY_ENTRY_22_5 (32'h10018a34) -`define KV_REG_KEY_ENTRY_22_5 (32'ha34) -`define CLP_KV_REG_KEY_ENTRY_22_6 (32'h10018a38) -`define KV_REG_KEY_ENTRY_22_6 (32'ha38) -`define CLP_KV_REG_KEY_ENTRY_22_7 (32'h10018a3c) -`define KV_REG_KEY_ENTRY_22_7 (32'ha3c) -`define CLP_KV_REG_KEY_ENTRY_22_8 (32'h10018a40) -`define KV_REG_KEY_ENTRY_22_8 (32'ha40) -`define CLP_KV_REG_KEY_ENTRY_22_9 (32'h10018a44) -`define KV_REG_KEY_ENTRY_22_9 (32'ha44) -`define CLP_KV_REG_KEY_ENTRY_22_10 (32'h10018a48) -`define KV_REG_KEY_ENTRY_22_10 (32'ha48) -`define CLP_KV_REG_KEY_ENTRY_22_11 (32'h10018a4c) -`define KV_REG_KEY_ENTRY_22_11 (32'ha4c) -`define CLP_KV_REG_KEY_ENTRY_23_0 (32'h10018a50) -`define KV_REG_KEY_ENTRY_23_0 (32'ha50) -`define CLP_KV_REG_KEY_ENTRY_23_1 (32'h10018a54) -`define KV_REG_KEY_ENTRY_23_1 (32'ha54) -`define CLP_KV_REG_KEY_ENTRY_23_2 (32'h10018a58) -`define KV_REG_KEY_ENTRY_23_2 (32'ha58) -`define CLP_KV_REG_KEY_ENTRY_23_3 (32'h10018a5c) -`define KV_REG_KEY_ENTRY_23_3 (32'ha5c) -`define CLP_KV_REG_KEY_ENTRY_23_4 (32'h10018a60) -`define KV_REG_KEY_ENTRY_23_4 (32'ha60) -`define CLP_KV_REG_KEY_ENTRY_23_5 (32'h10018a64) -`define KV_REG_KEY_ENTRY_23_5 (32'ha64) -`define CLP_KV_REG_KEY_ENTRY_23_6 (32'h10018a68) -`define KV_REG_KEY_ENTRY_23_6 (32'ha68) -`define CLP_KV_REG_KEY_ENTRY_23_7 (32'h10018a6c) -`define KV_REG_KEY_ENTRY_23_7 (32'ha6c) -`define CLP_KV_REG_KEY_ENTRY_23_8 (32'h10018a70) -`define KV_REG_KEY_ENTRY_23_8 (32'ha70) -`define CLP_KV_REG_KEY_ENTRY_23_9 (32'h10018a74) -`define KV_REG_KEY_ENTRY_23_9 (32'ha74) -`define CLP_KV_REG_KEY_ENTRY_23_10 (32'h10018a78) -`define KV_REG_KEY_ENTRY_23_10 (32'ha78) -`define CLP_KV_REG_KEY_ENTRY_23_11 (32'h10018a7c) -`define KV_REG_KEY_ENTRY_23_11 (32'ha7c) -`define CLP_KV_REG_KEY_ENTRY_24_0 (32'h10018a80) -`define KV_REG_KEY_ENTRY_24_0 (32'ha80) -`define CLP_KV_REG_KEY_ENTRY_24_1 (32'h10018a84) -`define KV_REG_KEY_ENTRY_24_1 (32'ha84) -`define CLP_KV_REG_KEY_ENTRY_24_2 (32'h10018a88) -`define KV_REG_KEY_ENTRY_24_2 (32'ha88) -`define CLP_KV_REG_KEY_ENTRY_24_3 (32'h10018a8c) -`define KV_REG_KEY_ENTRY_24_3 (32'ha8c) -`define CLP_KV_REG_KEY_ENTRY_24_4 (32'h10018a90) -`define KV_REG_KEY_ENTRY_24_4 (32'ha90) -`define CLP_KV_REG_KEY_ENTRY_24_5 (32'h10018a94) -`define KV_REG_KEY_ENTRY_24_5 (32'ha94) -`define CLP_KV_REG_KEY_ENTRY_24_6 (32'h10018a98) -`define KV_REG_KEY_ENTRY_24_6 (32'ha98) -`define CLP_KV_REG_KEY_ENTRY_24_7 (32'h10018a9c) -`define KV_REG_KEY_ENTRY_24_7 (32'ha9c) -`define CLP_KV_REG_KEY_ENTRY_24_8 (32'h10018aa0) -`define KV_REG_KEY_ENTRY_24_8 (32'haa0) -`define CLP_KV_REG_KEY_ENTRY_24_9 (32'h10018aa4) -`define KV_REG_KEY_ENTRY_24_9 (32'haa4) -`define CLP_KV_REG_KEY_ENTRY_24_10 (32'h10018aa8) -`define KV_REG_KEY_ENTRY_24_10 (32'haa8) -`define CLP_KV_REG_KEY_ENTRY_24_11 (32'h10018aac) -`define KV_REG_KEY_ENTRY_24_11 (32'haac) -`define CLP_KV_REG_KEY_ENTRY_25_0 (32'h10018ab0) -`define KV_REG_KEY_ENTRY_25_0 (32'hab0) -`define CLP_KV_REG_KEY_ENTRY_25_1 (32'h10018ab4) -`define KV_REG_KEY_ENTRY_25_1 (32'hab4) -`define CLP_KV_REG_KEY_ENTRY_25_2 (32'h10018ab8) -`define KV_REG_KEY_ENTRY_25_2 (32'hab8) -`define CLP_KV_REG_KEY_ENTRY_25_3 (32'h10018abc) -`define KV_REG_KEY_ENTRY_25_3 (32'habc) -`define CLP_KV_REG_KEY_ENTRY_25_4 (32'h10018ac0) -`define KV_REG_KEY_ENTRY_25_4 (32'hac0) -`define CLP_KV_REG_KEY_ENTRY_25_5 (32'h10018ac4) -`define KV_REG_KEY_ENTRY_25_5 (32'hac4) -`define CLP_KV_REG_KEY_ENTRY_25_6 (32'h10018ac8) -`define KV_REG_KEY_ENTRY_25_6 (32'hac8) -`define CLP_KV_REG_KEY_ENTRY_25_7 (32'h10018acc) -`define KV_REG_KEY_ENTRY_25_7 (32'hacc) -`define CLP_KV_REG_KEY_ENTRY_25_8 (32'h10018ad0) -`define KV_REG_KEY_ENTRY_25_8 (32'had0) -`define CLP_KV_REG_KEY_ENTRY_25_9 (32'h10018ad4) -`define KV_REG_KEY_ENTRY_25_9 (32'had4) -`define CLP_KV_REG_KEY_ENTRY_25_10 (32'h10018ad8) -`define KV_REG_KEY_ENTRY_25_10 (32'had8) -`define CLP_KV_REG_KEY_ENTRY_25_11 (32'h10018adc) -`define KV_REG_KEY_ENTRY_25_11 (32'hadc) -`define CLP_KV_REG_KEY_ENTRY_26_0 (32'h10018ae0) -`define KV_REG_KEY_ENTRY_26_0 (32'hae0) -`define CLP_KV_REG_KEY_ENTRY_26_1 (32'h10018ae4) -`define KV_REG_KEY_ENTRY_26_1 (32'hae4) -`define CLP_KV_REG_KEY_ENTRY_26_2 (32'h10018ae8) -`define KV_REG_KEY_ENTRY_26_2 (32'hae8) -`define CLP_KV_REG_KEY_ENTRY_26_3 (32'h10018aec) -`define KV_REG_KEY_ENTRY_26_3 (32'haec) -`define CLP_KV_REG_KEY_ENTRY_26_4 (32'h10018af0) -`define KV_REG_KEY_ENTRY_26_4 (32'haf0) -`define CLP_KV_REG_KEY_ENTRY_26_5 (32'h10018af4) -`define KV_REG_KEY_ENTRY_26_5 (32'haf4) -`define CLP_KV_REG_KEY_ENTRY_26_6 (32'h10018af8) -`define KV_REG_KEY_ENTRY_26_6 (32'haf8) -`define CLP_KV_REG_KEY_ENTRY_26_7 (32'h10018afc) -`define KV_REG_KEY_ENTRY_26_7 (32'hafc) -`define CLP_KV_REG_KEY_ENTRY_26_8 (32'h10018b00) -`define KV_REG_KEY_ENTRY_26_8 (32'hb00) -`define CLP_KV_REG_KEY_ENTRY_26_9 (32'h10018b04) -`define KV_REG_KEY_ENTRY_26_9 (32'hb04) -`define CLP_KV_REG_KEY_ENTRY_26_10 (32'h10018b08) -`define KV_REG_KEY_ENTRY_26_10 (32'hb08) -`define CLP_KV_REG_KEY_ENTRY_26_11 (32'h10018b0c) -`define KV_REG_KEY_ENTRY_26_11 (32'hb0c) -`define CLP_KV_REG_KEY_ENTRY_27_0 (32'h10018b10) -`define KV_REG_KEY_ENTRY_27_0 (32'hb10) -`define CLP_KV_REG_KEY_ENTRY_27_1 (32'h10018b14) -`define KV_REG_KEY_ENTRY_27_1 (32'hb14) -`define CLP_KV_REG_KEY_ENTRY_27_2 (32'h10018b18) -`define KV_REG_KEY_ENTRY_27_2 (32'hb18) -`define CLP_KV_REG_KEY_ENTRY_27_3 (32'h10018b1c) -`define KV_REG_KEY_ENTRY_27_3 (32'hb1c) -`define CLP_KV_REG_KEY_ENTRY_27_4 (32'h10018b20) -`define KV_REG_KEY_ENTRY_27_4 (32'hb20) -`define CLP_KV_REG_KEY_ENTRY_27_5 (32'h10018b24) -`define KV_REG_KEY_ENTRY_27_5 (32'hb24) -`define CLP_KV_REG_KEY_ENTRY_27_6 (32'h10018b28) -`define KV_REG_KEY_ENTRY_27_6 (32'hb28) -`define CLP_KV_REG_KEY_ENTRY_27_7 (32'h10018b2c) -`define KV_REG_KEY_ENTRY_27_7 (32'hb2c) -`define CLP_KV_REG_KEY_ENTRY_27_8 (32'h10018b30) -`define KV_REG_KEY_ENTRY_27_8 (32'hb30) -`define CLP_KV_REG_KEY_ENTRY_27_9 (32'h10018b34) -`define KV_REG_KEY_ENTRY_27_9 (32'hb34) -`define CLP_KV_REG_KEY_ENTRY_27_10 (32'h10018b38) -`define KV_REG_KEY_ENTRY_27_10 (32'hb38) -`define CLP_KV_REG_KEY_ENTRY_27_11 (32'h10018b3c) -`define KV_REG_KEY_ENTRY_27_11 (32'hb3c) -`define CLP_KV_REG_KEY_ENTRY_28_0 (32'h10018b40) -`define KV_REG_KEY_ENTRY_28_0 (32'hb40) -`define CLP_KV_REG_KEY_ENTRY_28_1 (32'h10018b44) -`define KV_REG_KEY_ENTRY_28_1 (32'hb44) -`define CLP_KV_REG_KEY_ENTRY_28_2 (32'h10018b48) -`define KV_REG_KEY_ENTRY_28_2 (32'hb48) -`define CLP_KV_REG_KEY_ENTRY_28_3 (32'h10018b4c) -`define KV_REG_KEY_ENTRY_28_3 (32'hb4c) -`define CLP_KV_REG_KEY_ENTRY_28_4 (32'h10018b50) -`define KV_REG_KEY_ENTRY_28_4 (32'hb50) -`define CLP_KV_REG_KEY_ENTRY_28_5 (32'h10018b54) -`define KV_REG_KEY_ENTRY_28_5 (32'hb54) -`define CLP_KV_REG_KEY_ENTRY_28_6 (32'h10018b58) -`define KV_REG_KEY_ENTRY_28_6 (32'hb58) -`define CLP_KV_REG_KEY_ENTRY_28_7 (32'h10018b5c) -`define KV_REG_KEY_ENTRY_28_7 (32'hb5c) -`define CLP_KV_REG_KEY_ENTRY_28_8 (32'h10018b60) -`define KV_REG_KEY_ENTRY_28_8 (32'hb60) -`define CLP_KV_REG_KEY_ENTRY_28_9 (32'h10018b64) -`define KV_REG_KEY_ENTRY_28_9 (32'hb64) -`define CLP_KV_REG_KEY_ENTRY_28_10 (32'h10018b68) -`define KV_REG_KEY_ENTRY_28_10 (32'hb68) -`define CLP_KV_REG_KEY_ENTRY_28_11 (32'h10018b6c) -`define KV_REG_KEY_ENTRY_28_11 (32'hb6c) -`define CLP_KV_REG_KEY_ENTRY_29_0 (32'h10018b70) -`define KV_REG_KEY_ENTRY_29_0 (32'hb70) -`define CLP_KV_REG_KEY_ENTRY_29_1 (32'h10018b74) -`define KV_REG_KEY_ENTRY_29_1 (32'hb74) -`define CLP_KV_REG_KEY_ENTRY_29_2 (32'h10018b78) -`define KV_REG_KEY_ENTRY_29_2 (32'hb78) -`define CLP_KV_REG_KEY_ENTRY_29_3 (32'h10018b7c) -`define KV_REG_KEY_ENTRY_29_3 (32'hb7c) -`define CLP_KV_REG_KEY_ENTRY_29_4 (32'h10018b80) -`define KV_REG_KEY_ENTRY_29_4 (32'hb80) -`define CLP_KV_REG_KEY_ENTRY_29_5 (32'h10018b84) -`define KV_REG_KEY_ENTRY_29_5 (32'hb84) -`define CLP_KV_REG_KEY_ENTRY_29_6 (32'h10018b88) -`define KV_REG_KEY_ENTRY_29_6 (32'hb88) -`define CLP_KV_REG_KEY_ENTRY_29_7 (32'h10018b8c) -`define KV_REG_KEY_ENTRY_29_7 (32'hb8c) -`define CLP_KV_REG_KEY_ENTRY_29_8 (32'h10018b90) -`define KV_REG_KEY_ENTRY_29_8 (32'hb90) -`define CLP_KV_REG_KEY_ENTRY_29_9 (32'h10018b94) -`define KV_REG_KEY_ENTRY_29_9 (32'hb94) -`define CLP_KV_REG_KEY_ENTRY_29_10 (32'h10018b98) -`define KV_REG_KEY_ENTRY_29_10 (32'hb98) -`define CLP_KV_REG_KEY_ENTRY_29_11 (32'h10018b9c) -`define KV_REG_KEY_ENTRY_29_11 (32'hb9c) -`define CLP_KV_REG_KEY_ENTRY_30_0 (32'h10018ba0) -`define KV_REG_KEY_ENTRY_30_0 (32'hba0) -`define CLP_KV_REG_KEY_ENTRY_30_1 (32'h10018ba4) -`define KV_REG_KEY_ENTRY_30_1 (32'hba4) -`define CLP_KV_REG_KEY_ENTRY_30_2 (32'h10018ba8) -`define KV_REG_KEY_ENTRY_30_2 (32'hba8) -`define CLP_KV_REG_KEY_ENTRY_30_3 (32'h10018bac) -`define KV_REG_KEY_ENTRY_30_3 (32'hbac) -`define CLP_KV_REG_KEY_ENTRY_30_4 (32'h10018bb0) -`define KV_REG_KEY_ENTRY_30_4 (32'hbb0) -`define CLP_KV_REG_KEY_ENTRY_30_5 (32'h10018bb4) -`define KV_REG_KEY_ENTRY_30_5 (32'hbb4) -`define CLP_KV_REG_KEY_ENTRY_30_6 (32'h10018bb8) -`define KV_REG_KEY_ENTRY_30_6 (32'hbb8) -`define CLP_KV_REG_KEY_ENTRY_30_7 (32'h10018bbc) -`define KV_REG_KEY_ENTRY_30_7 (32'hbbc) -`define CLP_KV_REG_KEY_ENTRY_30_8 (32'h10018bc0) -`define KV_REG_KEY_ENTRY_30_8 (32'hbc0) -`define CLP_KV_REG_KEY_ENTRY_30_9 (32'h10018bc4) -`define KV_REG_KEY_ENTRY_30_9 (32'hbc4) -`define CLP_KV_REG_KEY_ENTRY_30_10 (32'h10018bc8) -`define KV_REG_KEY_ENTRY_30_10 (32'hbc8) -`define CLP_KV_REG_KEY_ENTRY_30_11 (32'h10018bcc) -`define KV_REG_KEY_ENTRY_30_11 (32'hbcc) -`define CLP_KV_REG_KEY_ENTRY_31_0 (32'h10018bd0) -`define KV_REG_KEY_ENTRY_31_0 (32'hbd0) -`define CLP_KV_REG_KEY_ENTRY_31_1 (32'h10018bd4) -`define KV_REG_KEY_ENTRY_31_1 (32'hbd4) -`define CLP_KV_REG_KEY_ENTRY_31_2 (32'h10018bd8) -`define KV_REG_KEY_ENTRY_31_2 (32'hbd8) -`define CLP_KV_REG_KEY_ENTRY_31_3 (32'h10018bdc) -`define KV_REG_KEY_ENTRY_31_3 (32'hbdc) -`define CLP_KV_REG_KEY_ENTRY_31_4 (32'h10018be0) -`define KV_REG_KEY_ENTRY_31_4 (32'hbe0) -`define CLP_KV_REG_KEY_ENTRY_31_5 (32'h10018be4) -`define KV_REG_KEY_ENTRY_31_5 (32'hbe4) -`define CLP_KV_REG_KEY_ENTRY_31_6 (32'h10018be8) -`define KV_REG_KEY_ENTRY_31_6 (32'hbe8) -`define CLP_KV_REG_KEY_ENTRY_31_7 (32'h10018bec) -`define KV_REG_KEY_ENTRY_31_7 (32'hbec) -`define CLP_KV_REG_KEY_ENTRY_31_8 (32'h10018bf0) -`define KV_REG_KEY_ENTRY_31_8 (32'hbf0) -`define CLP_KV_REG_KEY_ENTRY_31_9 (32'h10018bf4) -`define KV_REG_KEY_ENTRY_31_9 (32'hbf4) -`define CLP_KV_REG_KEY_ENTRY_31_10 (32'h10018bf8) -`define KV_REG_KEY_ENTRY_31_10 (32'hbf8) -`define CLP_KV_REG_KEY_ENTRY_31_11 (32'h10018bfc) -`define KV_REG_KEY_ENTRY_31_11 (32'hbfc) +`define CLP_KV_REG_KEY_ENTRY_0_12 (32'h10018630) +`define KV_REG_KEY_ENTRY_0_12 (32'h630) +`define CLP_KV_REG_KEY_ENTRY_0_13 (32'h10018634) +`define KV_REG_KEY_ENTRY_0_13 (32'h634) +`define CLP_KV_REG_KEY_ENTRY_0_14 (32'h10018638) +`define KV_REG_KEY_ENTRY_0_14 (32'h638) +`define CLP_KV_REG_KEY_ENTRY_0_15 (32'h1001863c) +`define KV_REG_KEY_ENTRY_0_15 (32'h63c) +`define CLP_KV_REG_KEY_ENTRY_1_0 (32'h10018640) +`define KV_REG_KEY_ENTRY_1_0 (32'h640) +`define CLP_KV_REG_KEY_ENTRY_1_1 (32'h10018644) +`define KV_REG_KEY_ENTRY_1_1 (32'h644) +`define CLP_KV_REG_KEY_ENTRY_1_2 (32'h10018648) +`define KV_REG_KEY_ENTRY_1_2 (32'h648) +`define CLP_KV_REG_KEY_ENTRY_1_3 (32'h1001864c) +`define KV_REG_KEY_ENTRY_1_3 (32'h64c) +`define CLP_KV_REG_KEY_ENTRY_1_4 (32'h10018650) +`define KV_REG_KEY_ENTRY_1_4 (32'h650) +`define CLP_KV_REG_KEY_ENTRY_1_5 (32'h10018654) +`define KV_REG_KEY_ENTRY_1_5 (32'h654) +`define CLP_KV_REG_KEY_ENTRY_1_6 (32'h10018658) +`define KV_REG_KEY_ENTRY_1_6 (32'h658) +`define CLP_KV_REG_KEY_ENTRY_1_7 (32'h1001865c) +`define KV_REG_KEY_ENTRY_1_7 (32'h65c) +`define CLP_KV_REG_KEY_ENTRY_1_8 (32'h10018660) +`define KV_REG_KEY_ENTRY_1_8 (32'h660) +`define CLP_KV_REG_KEY_ENTRY_1_9 (32'h10018664) +`define KV_REG_KEY_ENTRY_1_9 (32'h664) +`define CLP_KV_REG_KEY_ENTRY_1_10 (32'h10018668) +`define KV_REG_KEY_ENTRY_1_10 (32'h668) +`define CLP_KV_REG_KEY_ENTRY_1_11 (32'h1001866c) +`define KV_REG_KEY_ENTRY_1_11 (32'h66c) +`define CLP_KV_REG_KEY_ENTRY_1_12 (32'h10018670) +`define KV_REG_KEY_ENTRY_1_12 (32'h670) +`define CLP_KV_REG_KEY_ENTRY_1_13 (32'h10018674) +`define KV_REG_KEY_ENTRY_1_13 (32'h674) +`define CLP_KV_REG_KEY_ENTRY_1_14 (32'h10018678) +`define KV_REG_KEY_ENTRY_1_14 (32'h678) +`define CLP_KV_REG_KEY_ENTRY_1_15 (32'h1001867c) +`define KV_REG_KEY_ENTRY_1_15 (32'h67c) +`define CLP_KV_REG_KEY_ENTRY_2_0 (32'h10018680) +`define KV_REG_KEY_ENTRY_2_0 (32'h680) +`define CLP_KV_REG_KEY_ENTRY_2_1 (32'h10018684) +`define KV_REG_KEY_ENTRY_2_1 (32'h684) +`define CLP_KV_REG_KEY_ENTRY_2_2 (32'h10018688) +`define KV_REG_KEY_ENTRY_2_2 (32'h688) +`define CLP_KV_REG_KEY_ENTRY_2_3 (32'h1001868c) +`define KV_REG_KEY_ENTRY_2_3 (32'h68c) +`define CLP_KV_REG_KEY_ENTRY_2_4 (32'h10018690) +`define KV_REG_KEY_ENTRY_2_4 (32'h690) +`define CLP_KV_REG_KEY_ENTRY_2_5 (32'h10018694) +`define KV_REG_KEY_ENTRY_2_5 (32'h694) +`define CLP_KV_REG_KEY_ENTRY_2_6 (32'h10018698) +`define KV_REG_KEY_ENTRY_2_6 (32'h698) +`define CLP_KV_REG_KEY_ENTRY_2_7 (32'h1001869c) +`define KV_REG_KEY_ENTRY_2_7 (32'h69c) +`define CLP_KV_REG_KEY_ENTRY_2_8 (32'h100186a0) +`define KV_REG_KEY_ENTRY_2_8 (32'h6a0) +`define CLP_KV_REG_KEY_ENTRY_2_9 (32'h100186a4) +`define KV_REG_KEY_ENTRY_2_9 (32'h6a4) +`define CLP_KV_REG_KEY_ENTRY_2_10 (32'h100186a8) +`define KV_REG_KEY_ENTRY_2_10 (32'h6a8) +`define CLP_KV_REG_KEY_ENTRY_2_11 (32'h100186ac) +`define KV_REG_KEY_ENTRY_2_11 (32'h6ac) +`define CLP_KV_REG_KEY_ENTRY_2_12 (32'h100186b0) +`define KV_REG_KEY_ENTRY_2_12 (32'h6b0) +`define CLP_KV_REG_KEY_ENTRY_2_13 (32'h100186b4) +`define KV_REG_KEY_ENTRY_2_13 (32'h6b4) +`define CLP_KV_REG_KEY_ENTRY_2_14 (32'h100186b8) +`define KV_REG_KEY_ENTRY_2_14 (32'h6b8) +`define CLP_KV_REG_KEY_ENTRY_2_15 (32'h100186bc) +`define KV_REG_KEY_ENTRY_2_15 (32'h6bc) +`define CLP_KV_REG_KEY_ENTRY_3_0 (32'h100186c0) +`define KV_REG_KEY_ENTRY_3_0 (32'h6c0) +`define CLP_KV_REG_KEY_ENTRY_3_1 (32'h100186c4) +`define KV_REG_KEY_ENTRY_3_1 (32'h6c4) +`define CLP_KV_REG_KEY_ENTRY_3_2 (32'h100186c8) +`define KV_REG_KEY_ENTRY_3_2 (32'h6c8) +`define CLP_KV_REG_KEY_ENTRY_3_3 (32'h100186cc) +`define KV_REG_KEY_ENTRY_3_3 (32'h6cc) +`define CLP_KV_REG_KEY_ENTRY_3_4 (32'h100186d0) +`define KV_REG_KEY_ENTRY_3_4 (32'h6d0) +`define CLP_KV_REG_KEY_ENTRY_3_5 (32'h100186d4) +`define KV_REG_KEY_ENTRY_3_5 (32'h6d4) +`define CLP_KV_REG_KEY_ENTRY_3_6 (32'h100186d8) +`define KV_REG_KEY_ENTRY_3_6 (32'h6d8) +`define CLP_KV_REG_KEY_ENTRY_3_7 (32'h100186dc) +`define KV_REG_KEY_ENTRY_3_7 (32'h6dc) +`define CLP_KV_REG_KEY_ENTRY_3_8 (32'h100186e0) +`define KV_REG_KEY_ENTRY_3_8 (32'h6e0) +`define CLP_KV_REG_KEY_ENTRY_3_9 (32'h100186e4) +`define KV_REG_KEY_ENTRY_3_9 (32'h6e4) +`define CLP_KV_REG_KEY_ENTRY_3_10 (32'h100186e8) +`define KV_REG_KEY_ENTRY_3_10 (32'h6e8) +`define CLP_KV_REG_KEY_ENTRY_3_11 (32'h100186ec) +`define KV_REG_KEY_ENTRY_3_11 (32'h6ec) +`define CLP_KV_REG_KEY_ENTRY_3_12 (32'h100186f0) +`define KV_REG_KEY_ENTRY_3_12 (32'h6f0) +`define CLP_KV_REG_KEY_ENTRY_3_13 (32'h100186f4) +`define KV_REG_KEY_ENTRY_3_13 (32'h6f4) +`define CLP_KV_REG_KEY_ENTRY_3_14 (32'h100186f8) +`define KV_REG_KEY_ENTRY_3_14 (32'h6f8) +`define CLP_KV_REG_KEY_ENTRY_3_15 (32'h100186fc) +`define KV_REG_KEY_ENTRY_3_15 (32'h6fc) +`define CLP_KV_REG_KEY_ENTRY_4_0 (32'h10018700) +`define KV_REG_KEY_ENTRY_4_0 (32'h700) +`define CLP_KV_REG_KEY_ENTRY_4_1 (32'h10018704) +`define KV_REG_KEY_ENTRY_4_1 (32'h704) +`define CLP_KV_REG_KEY_ENTRY_4_2 (32'h10018708) +`define KV_REG_KEY_ENTRY_4_2 (32'h708) +`define CLP_KV_REG_KEY_ENTRY_4_3 (32'h1001870c) +`define KV_REG_KEY_ENTRY_4_3 (32'h70c) +`define CLP_KV_REG_KEY_ENTRY_4_4 (32'h10018710) +`define KV_REG_KEY_ENTRY_4_4 (32'h710) +`define CLP_KV_REG_KEY_ENTRY_4_5 (32'h10018714) +`define KV_REG_KEY_ENTRY_4_5 (32'h714) +`define CLP_KV_REG_KEY_ENTRY_4_6 (32'h10018718) +`define KV_REG_KEY_ENTRY_4_6 (32'h718) +`define CLP_KV_REG_KEY_ENTRY_4_7 (32'h1001871c) +`define KV_REG_KEY_ENTRY_4_7 (32'h71c) +`define CLP_KV_REG_KEY_ENTRY_4_8 (32'h10018720) +`define KV_REG_KEY_ENTRY_4_8 (32'h720) +`define CLP_KV_REG_KEY_ENTRY_4_9 (32'h10018724) +`define KV_REG_KEY_ENTRY_4_9 (32'h724) +`define CLP_KV_REG_KEY_ENTRY_4_10 (32'h10018728) +`define KV_REG_KEY_ENTRY_4_10 (32'h728) +`define CLP_KV_REG_KEY_ENTRY_4_11 (32'h1001872c) +`define KV_REG_KEY_ENTRY_4_11 (32'h72c) +`define CLP_KV_REG_KEY_ENTRY_4_12 (32'h10018730) +`define KV_REG_KEY_ENTRY_4_12 (32'h730) +`define CLP_KV_REG_KEY_ENTRY_4_13 (32'h10018734) +`define KV_REG_KEY_ENTRY_4_13 (32'h734) +`define CLP_KV_REG_KEY_ENTRY_4_14 (32'h10018738) +`define KV_REG_KEY_ENTRY_4_14 (32'h738) +`define CLP_KV_REG_KEY_ENTRY_4_15 (32'h1001873c) +`define KV_REG_KEY_ENTRY_4_15 (32'h73c) +`define CLP_KV_REG_KEY_ENTRY_5_0 (32'h10018740) +`define KV_REG_KEY_ENTRY_5_0 (32'h740) +`define CLP_KV_REG_KEY_ENTRY_5_1 (32'h10018744) +`define KV_REG_KEY_ENTRY_5_1 (32'h744) +`define CLP_KV_REG_KEY_ENTRY_5_2 (32'h10018748) +`define KV_REG_KEY_ENTRY_5_2 (32'h748) +`define CLP_KV_REG_KEY_ENTRY_5_3 (32'h1001874c) +`define KV_REG_KEY_ENTRY_5_3 (32'h74c) +`define CLP_KV_REG_KEY_ENTRY_5_4 (32'h10018750) +`define KV_REG_KEY_ENTRY_5_4 (32'h750) +`define CLP_KV_REG_KEY_ENTRY_5_5 (32'h10018754) +`define KV_REG_KEY_ENTRY_5_5 (32'h754) +`define CLP_KV_REG_KEY_ENTRY_5_6 (32'h10018758) +`define KV_REG_KEY_ENTRY_5_6 (32'h758) +`define CLP_KV_REG_KEY_ENTRY_5_7 (32'h1001875c) +`define KV_REG_KEY_ENTRY_5_7 (32'h75c) +`define CLP_KV_REG_KEY_ENTRY_5_8 (32'h10018760) +`define KV_REG_KEY_ENTRY_5_8 (32'h760) +`define CLP_KV_REG_KEY_ENTRY_5_9 (32'h10018764) +`define KV_REG_KEY_ENTRY_5_9 (32'h764) +`define CLP_KV_REG_KEY_ENTRY_5_10 (32'h10018768) +`define KV_REG_KEY_ENTRY_5_10 (32'h768) +`define CLP_KV_REG_KEY_ENTRY_5_11 (32'h1001876c) +`define KV_REG_KEY_ENTRY_5_11 (32'h76c) +`define CLP_KV_REG_KEY_ENTRY_5_12 (32'h10018770) +`define KV_REG_KEY_ENTRY_5_12 (32'h770) +`define CLP_KV_REG_KEY_ENTRY_5_13 (32'h10018774) +`define KV_REG_KEY_ENTRY_5_13 (32'h774) +`define CLP_KV_REG_KEY_ENTRY_5_14 (32'h10018778) +`define KV_REG_KEY_ENTRY_5_14 (32'h778) +`define CLP_KV_REG_KEY_ENTRY_5_15 (32'h1001877c) +`define KV_REG_KEY_ENTRY_5_15 (32'h77c) +`define CLP_KV_REG_KEY_ENTRY_6_0 (32'h10018780) +`define KV_REG_KEY_ENTRY_6_0 (32'h780) +`define CLP_KV_REG_KEY_ENTRY_6_1 (32'h10018784) +`define KV_REG_KEY_ENTRY_6_1 (32'h784) +`define CLP_KV_REG_KEY_ENTRY_6_2 (32'h10018788) +`define KV_REG_KEY_ENTRY_6_2 (32'h788) +`define CLP_KV_REG_KEY_ENTRY_6_3 (32'h1001878c) +`define KV_REG_KEY_ENTRY_6_3 (32'h78c) +`define CLP_KV_REG_KEY_ENTRY_6_4 (32'h10018790) +`define KV_REG_KEY_ENTRY_6_4 (32'h790) +`define CLP_KV_REG_KEY_ENTRY_6_5 (32'h10018794) +`define KV_REG_KEY_ENTRY_6_5 (32'h794) +`define CLP_KV_REG_KEY_ENTRY_6_6 (32'h10018798) +`define KV_REG_KEY_ENTRY_6_6 (32'h798) +`define CLP_KV_REG_KEY_ENTRY_6_7 (32'h1001879c) +`define KV_REG_KEY_ENTRY_6_7 (32'h79c) +`define CLP_KV_REG_KEY_ENTRY_6_8 (32'h100187a0) +`define KV_REG_KEY_ENTRY_6_8 (32'h7a0) +`define CLP_KV_REG_KEY_ENTRY_6_9 (32'h100187a4) +`define KV_REG_KEY_ENTRY_6_9 (32'h7a4) +`define CLP_KV_REG_KEY_ENTRY_6_10 (32'h100187a8) +`define KV_REG_KEY_ENTRY_6_10 (32'h7a8) +`define CLP_KV_REG_KEY_ENTRY_6_11 (32'h100187ac) +`define KV_REG_KEY_ENTRY_6_11 (32'h7ac) +`define CLP_KV_REG_KEY_ENTRY_6_12 (32'h100187b0) +`define KV_REG_KEY_ENTRY_6_12 (32'h7b0) +`define CLP_KV_REG_KEY_ENTRY_6_13 (32'h100187b4) +`define KV_REG_KEY_ENTRY_6_13 (32'h7b4) +`define CLP_KV_REG_KEY_ENTRY_6_14 (32'h100187b8) +`define KV_REG_KEY_ENTRY_6_14 (32'h7b8) +`define CLP_KV_REG_KEY_ENTRY_6_15 (32'h100187bc) +`define KV_REG_KEY_ENTRY_6_15 (32'h7bc) +`define CLP_KV_REG_KEY_ENTRY_7_0 (32'h100187c0) +`define KV_REG_KEY_ENTRY_7_0 (32'h7c0) +`define CLP_KV_REG_KEY_ENTRY_7_1 (32'h100187c4) +`define KV_REG_KEY_ENTRY_7_1 (32'h7c4) +`define CLP_KV_REG_KEY_ENTRY_7_2 (32'h100187c8) +`define KV_REG_KEY_ENTRY_7_2 (32'h7c8) +`define CLP_KV_REG_KEY_ENTRY_7_3 (32'h100187cc) +`define KV_REG_KEY_ENTRY_7_3 (32'h7cc) +`define CLP_KV_REG_KEY_ENTRY_7_4 (32'h100187d0) +`define KV_REG_KEY_ENTRY_7_4 (32'h7d0) +`define CLP_KV_REG_KEY_ENTRY_7_5 (32'h100187d4) +`define KV_REG_KEY_ENTRY_7_5 (32'h7d4) +`define CLP_KV_REG_KEY_ENTRY_7_6 (32'h100187d8) +`define KV_REG_KEY_ENTRY_7_6 (32'h7d8) +`define CLP_KV_REG_KEY_ENTRY_7_7 (32'h100187dc) +`define KV_REG_KEY_ENTRY_7_7 (32'h7dc) +`define CLP_KV_REG_KEY_ENTRY_7_8 (32'h100187e0) +`define KV_REG_KEY_ENTRY_7_8 (32'h7e0) +`define CLP_KV_REG_KEY_ENTRY_7_9 (32'h100187e4) +`define KV_REG_KEY_ENTRY_7_9 (32'h7e4) +`define CLP_KV_REG_KEY_ENTRY_7_10 (32'h100187e8) +`define KV_REG_KEY_ENTRY_7_10 (32'h7e8) +`define CLP_KV_REG_KEY_ENTRY_7_11 (32'h100187ec) +`define KV_REG_KEY_ENTRY_7_11 (32'h7ec) +`define CLP_KV_REG_KEY_ENTRY_7_12 (32'h100187f0) +`define KV_REG_KEY_ENTRY_7_12 (32'h7f0) +`define CLP_KV_REG_KEY_ENTRY_7_13 (32'h100187f4) +`define KV_REG_KEY_ENTRY_7_13 (32'h7f4) +`define CLP_KV_REG_KEY_ENTRY_7_14 (32'h100187f8) +`define KV_REG_KEY_ENTRY_7_14 (32'h7f8) +`define CLP_KV_REG_KEY_ENTRY_7_15 (32'h100187fc) +`define KV_REG_KEY_ENTRY_7_15 (32'h7fc) +`define CLP_KV_REG_KEY_ENTRY_8_0 (32'h10018800) +`define KV_REG_KEY_ENTRY_8_0 (32'h800) +`define CLP_KV_REG_KEY_ENTRY_8_1 (32'h10018804) +`define KV_REG_KEY_ENTRY_8_1 (32'h804) +`define CLP_KV_REG_KEY_ENTRY_8_2 (32'h10018808) +`define KV_REG_KEY_ENTRY_8_2 (32'h808) +`define CLP_KV_REG_KEY_ENTRY_8_3 (32'h1001880c) +`define KV_REG_KEY_ENTRY_8_3 (32'h80c) +`define CLP_KV_REG_KEY_ENTRY_8_4 (32'h10018810) +`define KV_REG_KEY_ENTRY_8_4 (32'h810) +`define CLP_KV_REG_KEY_ENTRY_8_5 (32'h10018814) +`define KV_REG_KEY_ENTRY_8_5 (32'h814) +`define CLP_KV_REG_KEY_ENTRY_8_6 (32'h10018818) +`define KV_REG_KEY_ENTRY_8_6 (32'h818) +`define CLP_KV_REG_KEY_ENTRY_8_7 (32'h1001881c) +`define KV_REG_KEY_ENTRY_8_7 (32'h81c) +`define CLP_KV_REG_KEY_ENTRY_8_8 (32'h10018820) +`define KV_REG_KEY_ENTRY_8_8 (32'h820) +`define CLP_KV_REG_KEY_ENTRY_8_9 (32'h10018824) +`define KV_REG_KEY_ENTRY_8_9 (32'h824) +`define CLP_KV_REG_KEY_ENTRY_8_10 (32'h10018828) +`define KV_REG_KEY_ENTRY_8_10 (32'h828) +`define CLP_KV_REG_KEY_ENTRY_8_11 (32'h1001882c) +`define KV_REG_KEY_ENTRY_8_11 (32'h82c) +`define CLP_KV_REG_KEY_ENTRY_8_12 (32'h10018830) +`define KV_REG_KEY_ENTRY_8_12 (32'h830) +`define CLP_KV_REG_KEY_ENTRY_8_13 (32'h10018834) +`define KV_REG_KEY_ENTRY_8_13 (32'h834) +`define CLP_KV_REG_KEY_ENTRY_8_14 (32'h10018838) +`define KV_REG_KEY_ENTRY_8_14 (32'h838) +`define CLP_KV_REG_KEY_ENTRY_8_15 (32'h1001883c) +`define KV_REG_KEY_ENTRY_8_15 (32'h83c) +`define CLP_KV_REG_KEY_ENTRY_9_0 (32'h10018840) +`define KV_REG_KEY_ENTRY_9_0 (32'h840) +`define CLP_KV_REG_KEY_ENTRY_9_1 (32'h10018844) +`define KV_REG_KEY_ENTRY_9_1 (32'h844) +`define CLP_KV_REG_KEY_ENTRY_9_2 (32'h10018848) +`define KV_REG_KEY_ENTRY_9_2 (32'h848) +`define CLP_KV_REG_KEY_ENTRY_9_3 (32'h1001884c) +`define KV_REG_KEY_ENTRY_9_3 (32'h84c) +`define CLP_KV_REG_KEY_ENTRY_9_4 (32'h10018850) +`define KV_REG_KEY_ENTRY_9_4 (32'h850) +`define CLP_KV_REG_KEY_ENTRY_9_5 (32'h10018854) +`define KV_REG_KEY_ENTRY_9_5 (32'h854) +`define CLP_KV_REG_KEY_ENTRY_9_6 (32'h10018858) +`define KV_REG_KEY_ENTRY_9_6 (32'h858) +`define CLP_KV_REG_KEY_ENTRY_9_7 (32'h1001885c) +`define KV_REG_KEY_ENTRY_9_7 (32'h85c) +`define CLP_KV_REG_KEY_ENTRY_9_8 (32'h10018860) +`define KV_REG_KEY_ENTRY_9_8 (32'h860) +`define CLP_KV_REG_KEY_ENTRY_9_9 (32'h10018864) +`define KV_REG_KEY_ENTRY_9_9 (32'h864) +`define CLP_KV_REG_KEY_ENTRY_9_10 (32'h10018868) +`define KV_REG_KEY_ENTRY_9_10 (32'h868) +`define CLP_KV_REG_KEY_ENTRY_9_11 (32'h1001886c) +`define KV_REG_KEY_ENTRY_9_11 (32'h86c) +`define CLP_KV_REG_KEY_ENTRY_9_12 (32'h10018870) +`define KV_REG_KEY_ENTRY_9_12 (32'h870) +`define CLP_KV_REG_KEY_ENTRY_9_13 (32'h10018874) +`define KV_REG_KEY_ENTRY_9_13 (32'h874) +`define CLP_KV_REG_KEY_ENTRY_9_14 (32'h10018878) +`define KV_REG_KEY_ENTRY_9_14 (32'h878) +`define CLP_KV_REG_KEY_ENTRY_9_15 (32'h1001887c) +`define KV_REG_KEY_ENTRY_9_15 (32'h87c) +`define CLP_KV_REG_KEY_ENTRY_10_0 (32'h10018880) +`define KV_REG_KEY_ENTRY_10_0 (32'h880) +`define CLP_KV_REG_KEY_ENTRY_10_1 (32'h10018884) +`define KV_REG_KEY_ENTRY_10_1 (32'h884) +`define CLP_KV_REG_KEY_ENTRY_10_2 (32'h10018888) +`define KV_REG_KEY_ENTRY_10_2 (32'h888) +`define CLP_KV_REG_KEY_ENTRY_10_3 (32'h1001888c) +`define KV_REG_KEY_ENTRY_10_3 (32'h88c) +`define CLP_KV_REG_KEY_ENTRY_10_4 (32'h10018890) +`define KV_REG_KEY_ENTRY_10_4 (32'h890) +`define CLP_KV_REG_KEY_ENTRY_10_5 (32'h10018894) +`define KV_REG_KEY_ENTRY_10_5 (32'h894) +`define CLP_KV_REG_KEY_ENTRY_10_6 (32'h10018898) +`define KV_REG_KEY_ENTRY_10_6 (32'h898) +`define CLP_KV_REG_KEY_ENTRY_10_7 (32'h1001889c) +`define KV_REG_KEY_ENTRY_10_7 (32'h89c) +`define CLP_KV_REG_KEY_ENTRY_10_8 (32'h100188a0) +`define KV_REG_KEY_ENTRY_10_8 (32'h8a0) +`define CLP_KV_REG_KEY_ENTRY_10_9 (32'h100188a4) +`define KV_REG_KEY_ENTRY_10_9 (32'h8a4) +`define CLP_KV_REG_KEY_ENTRY_10_10 (32'h100188a8) +`define KV_REG_KEY_ENTRY_10_10 (32'h8a8) +`define CLP_KV_REG_KEY_ENTRY_10_11 (32'h100188ac) +`define KV_REG_KEY_ENTRY_10_11 (32'h8ac) +`define CLP_KV_REG_KEY_ENTRY_10_12 (32'h100188b0) +`define KV_REG_KEY_ENTRY_10_12 (32'h8b0) +`define CLP_KV_REG_KEY_ENTRY_10_13 (32'h100188b4) +`define KV_REG_KEY_ENTRY_10_13 (32'h8b4) +`define CLP_KV_REG_KEY_ENTRY_10_14 (32'h100188b8) +`define KV_REG_KEY_ENTRY_10_14 (32'h8b8) +`define CLP_KV_REG_KEY_ENTRY_10_15 (32'h100188bc) +`define KV_REG_KEY_ENTRY_10_15 (32'h8bc) +`define CLP_KV_REG_KEY_ENTRY_11_0 (32'h100188c0) +`define KV_REG_KEY_ENTRY_11_0 (32'h8c0) +`define CLP_KV_REG_KEY_ENTRY_11_1 (32'h100188c4) +`define KV_REG_KEY_ENTRY_11_1 (32'h8c4) +`define CLP_KV_REG_KEY_ENTRY_11_2 (32'h100188c8) +`define KV_REG_KEY_ENTRY_11_2 (32'h8c8) +`define CLP_KV_REG_KEY_ENTRY_11_3 (32'h100188cc) +`define KV_REG_KEY_ENTRY_11_3 (32'h8cc) +`define CLP_KV_REG_KEY_ENTRY_11_4 (32'h100188d0) +`define KV_REG_KEY_ENTRY_11_4 (32'h8d0) +`define CLP_KV_REG_KEY_ENTRY_11_5 (32'h100188d4) +`define KV_REG_KEY_ENTRY_11_5 (32'h8d4) +`define CLP_KV_REG_KEY_ENTRY_11_6 (32'h100188d8) +`define KV_REG_KEY_ENTRY_11_6 (32'h8d8) +`define CLP_KV_REG_KEY_ENTRY_11_7 (32'h100188dc) +`define KV_REG_KEY_ENTRY_11_7 (32'h8dc) +`define CLP_KV_REG_KEY_ENTRY_11_8 (32'h100188e0) +`define KV_REG_KEY_ENTRY_11_8 (32'h8e0) +`define CLP_KV_REG_KEY_ENTRY_11_9 (32'h100188e4) +`define KV_REG_KEY_ENTRY_11_9 (32'h8e4) +`define CLP_KV_REG_KEY_ENTRY_11_10 (32'h100188e8) +`define KV_REG_KEY_ENTRY_11_10 (32'h8e8) +`define CLP_KV_REG_KEY_ENTRY_11_11 (32'h100188ec) +`define KV_REG_KEY_ENTRY_11_11 (32'h8ec) +`define CLP_KV_REG_KEY_ENTRY_11_12 (32'h100188f0) +`define KV_REG_KEY_ENTRY_11_12 (32'h8f0) +`define CLP_KV_REG_KEY_ENTRY_11_13 (32'h100188f4) +`define KV_REG_KEY_ENTRY_11_13 (32'h8f4) +`define CLP_KV_REG_KEY_ENTRY_11_14 (32'h100188f8) +`define KV_REG_KEY_ENTRY_11_14 (32'h8f8) +`define CLP_KV_REG_KEY_ENTRY_11_15 (32'h100188fc) +`define KV_REG_KEY_ENTRY_11_15 (32'h8fc) +`define CLP_KV_REG_KEY_ENTRY_12_0 (32'h10018900) +`define KV_REG_KEY_ENTRY_12_0 (32'h900) +`define CLP_KV_REG_KEY_ENTRY_12_1 (32'h10018904) +`define KV_REG_KEY_ENTRY_12_1 (32'h904) +`define CLP_KV_REG_KEY_ENTRY_12_2 (32'h10018908) +`define KV_REG_KEY_ENTRY_12_2 (32'h908) +`define CLP_KV_REG_KEY_ENTRY_12_3 (32'h1001890c) +`define KV_REG_KEY_ENTRY_12_3 (32'h90c) +`define CLP_KV_REG_KEY_ENTRY_12_4 (32'h10018910) +`define KV_REG_KEY_ENTRY_12_4 (32'h910) +`define CLP_KV_REG_KEY_ENTRY_12_5 (32'h10018914) +`define KV_REG_KEY_ENTRY_12_5 (32'h914) +`define CLP_KV_REG_KEY_ENTRY_12_6 (32'h10018918) +`define KV_REG_KEY_ENTRY_12_6 (32'h918) +`define CLP_KV_REG_KEY_ENTRY_12_7 (32'h1001891c) +`define KV_REG_KEY_ENTRY_12_7 (32'h91c) +`define CLP_KV_REG_KEY_ENTRY_12_8 (32'h10018920) +`define KV_REG_KEY_ENTRY_12_8 (32'h920) +`define CLP_KV_REG_KEY_ENTRY_12_9 (32'h10018924) +`define KV_REG_KEY_ENTRY_12_9 (32'h924) +`define CLP_KV_REG_KEY_ENTRY_12_10 (32'h10018928) +`define KV_REG_KEY_ENTRY_12_10 (32'h928) +`define CLP_KV_REG_KEY_ENTRY_12_11 (32'h1001892c) +`define KV_REG_KEY_ENTRY_12_11 (32'h92c) +`define CLP_KV_REG_KEY_ENTRY_12_12 (32'h10018930) +`define KV_REG_KEY_ENTRY_12_12 (32'h930) +`define CLP_KV_REG_KEY_ENTRY_12_13 (32'h10018934) +`define KV_REG_KEY_ENTRY_12_13 (32'h934) +`define CLP_KV_REG_KEY_ENTRY_12_14 (32'h10018938) +`define KV_REG_KEY_ENTRY_12_14 (32'h938) +`define CLP_KV_REG_KEY_ENTRY_12_15 (32'h1001893c) +`define KV_REG_KEY_ENTRY_12_15 (32'h93c) +`define CLP_KV_REG_KEY_ENTRY_13_0 (32'h10018940) +`define KV_REG_KEY_ENTRY_13_0 (32'h940) +`define CLP_KV_REG_KEY_ENTRY_13_1 (32'h10018944) +`define KV_REG_KEY_ENTRY_13_1 (32'h944) +`define CLP_KV_REG_KEY_ENTRY_13_2 (32'h10018948) +`define KV_REG_KEY_ENTRY_13_2 (32'h948) +`define CLP_KV_REG_KEY_ENTRY_13_3 (32'h1001894c) +`define KV_REG_KEY_ENTRY_13_3 (32'h94c) +`define CLP_KV_REG_KEY_ENTRY_13_4 (32'h10018950) +`define KV_REG_KEY_ENTRY_13_4 (32'h950) +`define CLP_KV_REG_KEY_ENTRY_13_5 (32'h10018954) +`define KV_REG_KEY_ENTRY_13_5 (32'h954) +`define CLP_KV_REG_KEY_ENTRY_13_6 (32'h10018958) +`define KV_REG_KEY_ENTRY_13_6 (32'h958) +`define CLP_KV_REG_KEY_ENTRY_13_7 (32'h1001895c) +`define KV_REG_KEY_ENTRY_13_7 (32'h95c) +`define CLP_KV_REG_KEY_ENTRY_13_8 (32'h10018960) +`define KV_REG_KEY_ENTRY_13_8 (32'h960) +`define CLP_KV_REG_KEY_ENTRY_13_9 (32'h10018964) +`define KV_REG_KEY_ENTRY_13_9 (32'h964) +`define CLP_KV_REG_KEY_ENTRY_13_10 (32'h10018968) +`define KV_REG_KEY_ENTRY_13_10 (32'h968) +`define CLP_KV_REG_KEY_ENTRY_13_11 (32'h1001896c) +`define KV_REG_KEY_ENTRY_13_11 (32'h96c) +`define CLP_KV_REG_KEY_ENTRY_13_12 (32'h10018970) +`define KV_REG_KEY_ENTRY_13_12 (32'h970) +`define CLP_KV_REG_KEY_ENTRY_13_13 (32'h10018974) +`define KV_REG_KEY_ENTRY_13_13 (32'h974) +`define CLP_KV_REG_KEY_ENTRY_13_14 (32'h10018978) +`define KV_REG_KEY_ENTRY_13_14 (32'h978) +`define CLP_KV_REG_KEY_ENTRY_13_15 (32'h1001897c) +`define KV_REG_KEY_ENTRY_13_15 (32'h97c) +`define CLP_KV_REG_KEY_ENTRY_14_0 (32'h10018980) +`define KV_REG_KEY_ENTRY_14_0 (32'h980) +`define CLP_KV_REG_KEY_ENTRY_14_1 (32'h10018984) +`define KV_REG_KEY_ENTRY_14_1 (32'h984) +`define CLP_KV_REG_KEY_ENTRY_14_2 (32'h10018988) +`define KV_REG_KEY_ENTRY_14_2 (32'h988) +`define CLP_KV_REG_KEY_ENTRY_14_3 (32'h1001898c) +`define KV_REG_KEY_ENTRY_14_3 (32'h98c) +`define CLP_KV_REG_KEY_ENTRY_14_4 (32'h10018990) +`define KV_REG_KEY_ENTRY_14_4 (32'h990) +`define CLP_KV_REG_KEY_ENTRY_14_5 (32'h10018994) +`define KV_REG_KEY_ENTRY_14_5 (32'h994) +`define CLP_KV_REG_KEY_ENTRY_14_6 (32'h10018998) +`define KV_REG_KEY_ENTRY_14_6 (32'h998) +`define CLP_KV_REG_KEY_ENTRY_14_7 (32'h1001899c) +`define KV_REG_KEY_ENTRY_14_7 (32'h99c) +`define CLP_KV_REG_KEY_ENTRY_14_8 (32'h100189a0) +`define KV_REG_KEY_ENTRY_14_8 (32'h9a0) +`define CLP_KV_REG_KEY_ENTRY_14_9 (32'h100189a4) +`define KV_REG_KEY_ENTRY_14_9 (32'h9a4) +`define CLP_KV_REG_KEY_ENTRY_14_10 (32'h100189a8) +`define KV_REG_KEY_ENTRY_14_10 (32'h9a8) +`define CLP_KV_REG_KEY_ENTRY_14_11 (32'h100189ac) +`define KV_REG_KEY_ENTRY_14_11 (32'h9ac) +`define CLP_KV_REG_KEY_ENTRY_14_12 (32'h100189b0) +`define KV_REG_KEY_ENTRY_14_12 (32'h9b0) +`define CLP_KV_REG_KEY_ENTRY_14_13 (32'h100189b4) +`define KV_REG_KEY_ENTRY_14_13 (32'h9b4) +`define CLP_KV_REG_KEY_ENTRY_14_14 (32'h100189b8) +`define KV_REG_KEY_ENTRY_14_14 (32'h9b8) +`define CLP_KV_REG_KEY_ENTRY_14_15 (32'h100189bc) +`define KV_REG_KEY_ENTRY_14_15 (32'h9bc) +`define CLP_KV_REG_KEY_ENTRY_15_0 (32'h100189c0) +`define KV_REG_KEY_ENTRY_15_0 (32'h9c0) +`define CLP_KV_REG_KEY_ENTRY_15_1 (32'h100189c4) +`define KV_REG_KEY_ENTRY_15_1 (32'h9c4) +`define CLP_KV_REG_KEY_ENTRY_15_2 (32'h100189c8) +`define KV_REG_KEY_ENTRY_15_2 (32'h9c8) +`define CLP_KV_REG_KEY_ENTRY_15_3 (32'h100189cc) +`define KV_REG_KEY_ENTRY_15_3 (32'h9cc) +`define CLP_KV_REG_KEY_ENTRY_15_4 (32'h100189d0) +`define KV_REG_KEY_ENTRY_15_4 (32'h9d0) +`define CLP_KV_REG_KEY_ENTRY_15_5 (32'h100189d4) +`define KV_REG_KEY_ENTRY_15_5 (32'h9d4) +`define CLP_KV_REG_KEY_ENTRY_15_6 (32'h100189d8) +`define KV_REG_KEY_ENTRY_15_6 (32'h9d8) +`define CLP_KV_REG_KEY_ENTRY_15_7 (32'h100189dc) +`define KV_REG_KEY_ENTRY_15_7 (32'h9dc) +`define CLP_KV_REG_KEY_ENTRY_15_8 (32'h100189e0) +`define KV_REG_KEY_ENTRY_15_8 (32'h9e0) +`define CLP_KV_REG_KEY_ENTRY_15_9 (32'h100189e4) +`define KV_REG_KEY_ENTRY_15_9 (32'h9e4) +`define CLP_KV_REG_KEY_ENTRY_15_10 (32'h100189e8) +`define KV_REG_KEY_ENTRY_15_10 (32'h9e8) +`define CLP_KV_REG_KEY_ENTRY_15_11 (32'h100189ec) +`define KV_REG_KEY_ENTRY_15_11 (32'h9ec) +`define CLP_KV_REG_KEY_ENTRY_15_12 (32'h100189f0) +`define KV_REG_KEY_ENTRY_15_12 (32'h9f0) +`define CLP_KV_REG_KEY_ENTRY_15_13 (32'h100189f4) +`define KV_REG_KEY_ENTRY_15_13 (32'h9f4) +`define CLP_KV_REG_KEY_ENTRY_15_14 (32'h100189f8) +`define KV_REG_KEY_ENTRY_15_14 (32'h9f8) +`define CLP_KV_REG_KEY_ENTRY_15_15 (32'h100189fc) +`define KV_REG_KEY_ENTRY_15_15 (32'h9fc) +`define CLP_KV_REG_KEY_ENTRY_16_0 (32'h10018a00) +`define KV_REG_KEY_ENTRY_16_0 (32'ha00) +`define CLP_KV_REG_KEY_ENTRY_16_1 (32'h10018a04) +`define KV_REG_KEY_ENTRY_16_1 (32'ha04) +`define CLP_KV_REG_KEY_ENTRY_16_2 (32'h10018a08) +`define KV_REG_KEY_ENTRY_16_2 (32'ha08) +`define CLP_KV_REG_KEY_ENTRY_16_3 (32'h10018a0c) +`define KV_REG_KEY_ENTRY_16_3 (32'ha0c) +`define CLP_KV_REG_KEY_ENTRY_16_4 (32'h10018a10) +`define KV_REG_KEY_ENTRY_16_4 (32'ha10) +`define CLP_KV_REG_KEY_ENTRY_16_5 (32'h10018a14) +`define KV_REG_KEY_ENTRY_16_5 (32'ha14) +`define CLP_KV_REG_KEY_ENTRY_16_6 (32'h10018a18) +`define KV_REG_KEY_ENTRY_16_6 (32'ha18) +`define CLP_KV_REG_KEY_ENTRY_16_7 (32'h10018a1c) +`define KV_REG_KEY_ENTRY_16_7 (32'ha1c) +`define CLP_KV_REG_KEY_ENTRY_16_8 (32'h10018a20) +`define KV_REG_KEY_ENTRY_16_8 (32'ha20) +`define CLP_KV_REG_KEY_ENTRY_16_9 (32'h10018a24) +`define KV_REG_KEY_ENTRY_16_9 (32'ha24) +`define CLP_KV_REG_KEY_ENTRY_16_10 (32'h10018a28) +`define KV_REG_KEY_ENTRY_16_10 (32'ha28) +`define CLP_KV_REG_KEY_ENTRY_16_11 (32'h10018a2c) +`define KV_REG_KEY_ENTRY_16_11 (32'ha2c) +`define CLP_KV_REG_KEY_ENTRY_16_12 (32'h10018a30) +`define KV_REG_KEY_ENTRY_16_12 (32'ha30) +`define CLP_KV_REG_KEY_ENTRY_16_13 (32'h10018a34) +`define KV_REG_KEY_ENTRY_16_13 (32'ha34) +`define CLP_KV_REG_KEY_ENTRY_16_14 (32'h10018a38) +`define KV_REG_KEY_ENTRY_16_14 (32'ha38) +`define CLP_KV_REG_KEY_ENTRY_16_15 (32'h10018a3c) +`define KV_REG_KEY_ENTRY_16_15 (32'ha3c) +`define CLP_KV_REG_KEY_ENTRY_17_0 (32'h10018a40) +`define KV_REG_KEY_ENTRY_17_0 (32'ha40) +`define CLP_KV_REG_KEY_ENTRY_17_1 (32'h10018a44) +`define KV_REG_KEY_ENTRY_17_1 (32'ha44) +`define CLP_KV_REG_KEY_ENTRY_17_2 (32'h10018a48) +`define KV_REG_KEY_ENTRY_17_2 (32'ha48) +`define CLP_KV_REG_KEY_ENTRY_17_3 (32'h10018a4c) +`define KV_REG_KEY_ENTRY_17_3 (32'ha4c) +`define CLP_KV_REG_KEY_ENTRY_17_4 (32'h10018a50) +`define KV_REG_KEY_ENTRY_17_4 (32'ha50) +`define CLP_KV_REG_KEY_ENTRY_17_5 (32'h10018a54) +`define KV_REG_KEY_ENTRY_17_5 (32'ha54) +`define CLP_KV_REG_KEY_ENTRY_17_6 (32'h10018a58) +`define KV_REG_KEY_ENTRY_17_6 (32'ha58) +`define CLP_KV_REG_KEY_ENTRY_17_7 (32'h10018a5c) +`define KV_REG_KEY_ENTRY_17_7 (32'ha5c) +`define CLP_KV_REG_KEY_ENTRY_17_8 (32'h10018a60) +`define KV_REG_KEY_ENTRY_17_8 (32'ha60) +`define CLP_KV_REG_KEY_ENTRY_17_9 (32'h10018a64) +`define KV_REG_KEY_ENTRY_17_9 (32'ha64) +`define CLP_KV_REG_KEY_ENTRY_17_10 (32'h10018a68) +`define KV_REG_KEY_ENTRY_17_10 (32'ha68) +`define CLP_KV_REG_KEY_ENTRY_17_11 (32'h10018a6c) +`define KV_REG_KEY_ENTRY_17_11 (32'ha6c) +`define CLP_KV_REG_KEY_ENTRY_17_12 (32'h10018a70) +`define KV_REG_KEY_ENTRY_17_12 (32'ha70) +`define CLP_KV_REG_KEY_ENTRY_17_13 (32'h10018a74) +`define KV_REG_KEY_ENTRY_17_13 (32'ha74) +`define CLP_KV_REG_KEY_ENTRY_17_14 (32'h10018a78) +`define KV_REG_KEY_ENTRY_17_14 (32'ha78) +`define CLP_KV_REG_KEY_ENTRY_17_15 (32'h10018a7c) +`define KV_REG_KEY_ENTRY_17_15 (32'ha7c) +`define CLP_KV_REG_KEY_ENTRY_18_0 (32'h10018a80) +`define KV_REG_KEY_ENTRY_18_0 (32'ha80) +`define CLP_KV_REG_KEY_ENTRY_18_1 (32'h10018a84) +`define KV_REG_KEY_ENTRY_18_1 (32'ha84) +`define CLP_KV_REG_KEY_ENTRY_18_2 (32'h10018a88) +`define KV_REG_KEY_ENTRY_18_2 (32'ha88) +`define CLP_KV_REG_KEY_ENTRY_18_3 (32'h10018a8c) +`define KV_REG_KEY_ENTRY_18_3 (32'ha8c) +`define CLP_KV_REG_KEY_ENTRY_18_4 (32'h10018a90) +`define KV_REG_KEY_ENTRY_18_4 (32'ha90) +`define CLP_KV_REG_KEY_ENTRY_18_5 (32'h10018a94) +`define KV_REG_KEY_ENTRY_18_5 (32'ha94) +`define CLP_KV_REG_KEY_ENTRY_18_6 (32'h10018a98) +`define KV_REG_KEY_ENTRY_18_6 (32'ha98) +`define CLP_KV_REG_KEY_ENTRY_18_7 (32'h10018a9c) +`define KV_REG_KEY_ENTRY_18_7 (32'ha9c) +`define CLP_KV_REG_KEY_ENTRY_18_8 (32'h10018aa0) +`define KV_REG_KEY_ENTRY_18_8 (32'haa0) +`define CLP_KV_REG_KEY_ENTRY_18_9 (32'h10018aa4) +`define KV_REG_KEY_ENTRY_18_9 (32'haa4) +`define CLP_KV_REG_KEY_ENTRY_18_10 (32'h10018aa8) +`define KV_REG_KEY_ENTRY_18_10 (32'haa8) +`define CLP_KV_REG_KEY_ENTRY_18_11 (32'h10018aac) +`define KV_REG_KEY_ENTRY_18_11 (32'haac) +`define CLP_KV_REG_KEY_ENTRY_18_12 (32'h10018ab0) +`define KV_REG_KEY_ENTRY_18_12 (32'hab0) +`define CLP_KV_REG_KEY_ENTRY_18_13 (32'h10018ab4) +`define KV_REG_KEY_ENTRY_18_13 (32'hab4) +`define CLP_KV_REG_KEY_ENTRY_18_14 (32'h10018ab8) +`define KV_REG_KEY_ENTRY_18_14 (32'hab8) +`define CLP_KV_REG_KEY_ENTRY_18_15 (32'h10018abc) +`define KV_REG_KEY_ENTRY_18_15 (32'habc) +`define CLP_KV_REG_KEY_ENTRY_19_0 (32'h10018ac0) +`define KV_REG_KEY_ENTRY_19_0 (32'hac0) +`define CLP_KV_REG_KEY_ENTRY_19_1 (32'h10018ac4) +`define KV_REG_KEY_ENTRY_19_1 (32'hac4) +`define CLP_KV_REG_KEY_ENTRY_19_2 (32'h10018ac8) +`define KV_REG_KEY_ENTRY_19_2 (32'hac8) +`define CLP_KV_REG_KEY_ENTRY_19_3 (32'h10018acc) +`define KV_REG_KEY_ENTRY_19_3 (32'hacc) +`define CLP_KV_REG_KEY_ENTRY_19_4 (32'h10018ad0) +`define KV_REG_KEY_ENTRY_19_4 (32'had0) +`define CLP_KV_REG_KEY_ENTRY_19_5 (32'h10018ad4) +`define KV_REG_KEY_ENTRY_19_5 (32'had4) +`define CLP_KV_REG_KEY_ENTRY_19_6 (32'h10018ad8) +`define KV_REG_KEY_ENTRY_19_6 (32'had8) +`define CLP_KV_REG_KEY_ENTRY_19_7 (32'h10018adc) +`define KV_REG_KEY_ENTRY_19_7 (32'hadc) +`define CLP_KV_REG_KEY_ENTRY_19_8 (32'h10018ae0) +`define KV_REG_KEY_ENTRY_19_8 (32'hae0) +`define CLP_KV_REG_KEY_ENTRY_19_9 (32'h10018ae4) +`define KV_REG_KEY_ENTRY_19_9 (32'hae4) +`define CLP_KV_REG_KEY_ENTRY_19_10 (32'h10018ae8) +`define KV_REG_KEY_ENTRY_19_10 (32'hae8) +`define CLP_KV_REG_KEY_ENTRY_19_11 (32'h10018aec) +`define KV_REG_KEY_ENTRY_19_11 (32'haec) +`define CLP_KV_REG_KEY_ENTRY_19_12 (32'h10018af0) +`define KV_REG_KEY_ENTRY_19_12 (32'haf0) +`define CLP_KV_REG_KEY_ENTRY_19_13 (32'h10018af4) +`define KV_REG_KEY_ENTRY_19_13 (32'haf4) +`define CLP_KV_REG_KEY_ENTRY_19_14 (32'h10018af8) +`define KV_REG_KEY_ENTRY_19_14 (32'haf8) +`define CLP_KV_REG_KEY_ENTRY_19_15 (32'h10018afc) +`define KV_REG_KEY_ENTRY_19_15 (32'hafc) +`define CLP_KV_REG_KEY_ENTRY_20_0 (32'h10018b00) +`define KV_REG_KEY_ENTRY_20_0 (32'hb00) +`define CLP_KV_REG_KEY_ENTRY_20_1 (32'h10018b04) +`define KV_REG_KEY_ENTRY_20_1 (32'hb04) +`define CLP_KV_REG_KEY_ENTRY_20_2 (32'h10018b08) +`define KV_REG_KEY_ENTRY_20_2 (32'hb08) +`define CLP_KV_REG_KEY_ENTRY_20_3 (32'h10018b0c) +`define KV_REG_KEY_ENTRY_20_3 (32'hb0c) +`define CLP_KV_REG_KEY_ENTRY_20_4 (32'h10018b10) +`define KV_REG_KEY_ENTRY_20_4 (32'hb10) +`define CLP_KV_REG_KEY_ENTRY_20_5 (32'h10018b14) +`define KV_REG_KEY_ENTRY_20_5 (32'hb14) +`define CLP_KV_REG_KEY_ENTRY_20_6 (32'h10018b18) +`define KV_REG_KEY_ENTRY_20_6 (32'hb18) +`define CLP_KV_REG_KEY_ENTRY_20_7 (32'h10018b1c) +`define KV_REG_KEY_ENTRY_20_7 (32'hb1c) +`define CLP_KV_REG_KEY_ENTRY_20_8 (32'h10018b20) +`define KV_REG_KEY_ENTRY_20_8 (32'hb20) +`define CLP_KV_REG_KEY_ENTRY_20_9 (32'h10018b24) +`define KV_REG_KEY_ENTRY_20_9 (32'hb24) +`define CLP_KV_REG_KEY_ENTRY_20_10 (32'h10018b28) +`define KV_REG_KEY_ENTRY_20_10 (32'hb28) +`define CLP_KV_REG_KEY_ENTRY_20_11 (32'h10018b2c) +`define KV_REG_KEY_ENTRY_20_11 (32'hb2c) +`define CLP_KV_REG_KEY_ENTRY_20_12 (32'h10018b30) +`define KV_REG_KEY_ENTRY_20_12 (32'hb30) +`define CLP_KV_REG_KEY_ENTRY_20_13 (32'h10018b34) +`define KV_REG_KEY_ENTRY_20_13 (32'hb34) +`define CLP_KV_REG_KEY_ENTRY_20_14 (32'h10018b38) +`define KV_REG_KEY_ENTRY_20_14 (32'hb38) +`define CLP_KV_REG_KEY_ENTRY_20_15 (32'h10018b3c) +`define KV_REG_KEY_ENTRY_20_15 (32'hb3c) +`define CLP_KV_REG_KEY_ENTRY_21_0 (32'h10018b40) +`define KV_REG_KEY_ENTRY_21_0 (32'hb40) +`define CLP_KV_REG_KEY_ENTRY_21_1 (32'h10018b44) +`define KV_REG_KEY_ENTRY_21_1 (32'hb44) +`define CLP_KV_REG_KEY_ENTRY_21_2 (32'h10018b48) +`define KV_REG_KEY_ENTRY_21_2 (32'hb48) +`define CLP_KV_REG_KEY_ENTRY_21_3 (32'h10018b4c) +`define KV_REG_KEY_ENTRY_21_3 (32'hb4c) +`define CLP_KV_REG_KEY_ENTRY_21_4 (32'h10018b50) +`define KV_REG_KEY_ENTRY_21_4 (32'hb50) +`define CLP_KV_REG_KEY_ENTRY_21_5 (32'h10018b54) +`define KV_REG_KEY_ENTRY_21_5 (32'hb54) +`define CLP_KV_REG_KEY_ENTRY_21_6 (32'h10018b58) +`define KV_REG_KEY_ENTRY_21_6 (32'hb58) +`define CLP_KV_REG_KEY_ENTRY_21_7 (32'h10018b5c) +`define KV_REG_KEY_ENTRY_21_7 (32'hb5c) +`define CLP_KV_REG_KEY_ENTRY_21_8 (32'h10018b60) +`define KV_REG_KEY_ENTRY_21_8 (32'hb60) +`define CLP_KV_REG_KEY_ENTRY_21_9 (32'h10018b64) +`define KV_REG_KEY_ENTRY_21_9 (32'hb64) +`define CLP_KV_REG_KEY_ENTRY_21_10 (32'h10018b68) +`define KV_REG_KEY_ENTRY_21_10 (32'hb68) +`define CLP_KV_REG_KEY_ENTRY_21_11 (32'h10018b6c) +`define KV_REG_KEY_ENTRY_21_11 (32'hb6c) +`define CLP_KV_REG_KEY_ENTRY_21_12 (32'h10018b70) +`define KV_REG_KEY_ENTRY_21_12 (32'hb70) +`define CLP_KV_REG_KEY_ENTRY_21_13 (32'h10018b74) +`define KV_REG_KEY_ENTRY_21_13 (32'hb74) +`define CLP_KV_REG_KEY_ENTRY_21_14 (32'h10018b78) +`define KV_REG_KEY_ENTRY_21_14 (32'hb78) +`define CLP_KV_REG_KEY_ENTRY_21_15 (32'h10018b7c) +`define KV_REG_KEY_ENTRY_21_15 (32'hb7c) +`define CLP_KV_REG_KEY_ENTRY_22_0 (32'h10018b80) +`define KV_REG_KEY_ENTRY_22_0 (32'hb80) +`define CLP_KV_REG_KEY_ENTRY_22_1 (32'h10018b84) +`define KV_REG_KEY_ENTRY_22_1 (32'hb84) +`define CLP_KV_REG_KEY_ENTRY_22_2 (32'h10018b88) +`define KV_REG_KEY_ENTRY_22_2 (32'hb88) +`define CLP_KV_REG_KEY_ENTRY_22_3 (32'h10018b8c) +`define KV_REG_KEY_ENTRY_22_3 (32'hb8c) +`define CLP_KV_REG_KEY_ENTRY_22_4 (32'h10018b90) +`define KV_REG_KEY_ENTRY_22_4 (32'hb90) +`define CLP_KV_REG_KEY_ENTRY_22_5 (32'h10018b94) +`define KV_REG_KEY_ENTRY_22_5 (32'hb94) +`define CLP_KV_REG_KEY_ENTRY_22_6 (32'h10018b98) +`define KV_REG_KEY_ENTRY_22_6 (32'hb98) +`define CLP_KV_REG_KEY_ENTRY_22_7 (32'h10018b9c) +`define KV_REG_KEY_ENTRY_22_7 (32'hb9c) +`define CLP_KV_REG_KEY_ENTRY_22_8 (32'h10018ba0) +`define KV_REG_KEY_ENTRY_22_8 (32'hba0) +`define CLP_KV_REG_KEY_ENTRY_22_9 (32'h10018ba4) +`define KV_REG_KEY_ENTRY_22_9 (32'hba4) +`define CLP_KV_REG_KEY_ENTRY_22_10 (32'h10018ba8) +`define KV_REG_KEY_ENTRY_22_10 (32'hba8) +`define CLP_KV_REG_KEY_ENTRY_22_11 (32'h10018bac) +`define KV_REG_KEY_ENTRY_22_11 (32'hbac) +`define CLP_KV_REG_KEY_ENTRY_22_12 (32'h10018bb0) +`define KV_REG_KEY_ENTRY_22_12 (32'hbb0) +`define CLP_KV_REG_KEY_ENTRY_22_13 (32'h10018bb4) +`define KV_REG_KEY_ENTRY_22_13 (32'hbb4) +`define CLP_KV_REG_KEY_ENTRY_22_14 (32'h10018bb8) +`define KV_REG_KEY_ENTRY_22_14 (32'hbb8) +`define CLP_KV_REG_KEY_ENTRY_22_15 (32'h10018bbc) +`define KV_REG_KEY_ENTRY_22_15 (32'hbbc) +`define CLP_KV_REG_KEY_ENTRY_23_0 (32'h10018bc0) +`define KV_REG_KEY_ENTRY_23_0 (32'hbc0) +`define CLP_KV_REG_KEY_ENTRY_23_1 (32'h10018bc4) +`define KV_REG_KEY_ENTRY_23_1 (32'hbc4) +`define CLP_KV_REG_KEY_ENTRY_23_2 (32'h10018bc8) +`define KV_REG_KEY_ENTRY_23_2 (32'hbc8) +`define CLP_KV_REG_KEY_ENTRY_23_3 (32'h10018bcc) +`define KV_REG_KEY_ENTRY_23_3 (32'hbcc) +`define CLP_KV_REG_KEY_ENTRY_23_4 (32'h10018bd0) +`define KV_REG_KEY_ENTRY_23_4 (32'hbd0) +`define CLP_KV_REG_KEY_ENTRY_23_5 (32'h10018bd4) +`define KV_REG_KEY_ENTRY_23_5 (32'hbd4) +`define CLP_KV_REG_KEY_ENTRY_23_6 (32'h10018bd8) +`define KV_REG_KEY_ENTRY_23_6 (32'hbd8) +`define CLP_KV_REG_KEY_ENTRY_23_7 (32'h10018bdc) +`define KV_REG_KEY_ENTRY_23_7 (32'hbdc) +`define CLP_KV_REG_KEY_ENTRY_23_8 (32'h10018be0) +`define KV_REG_KEY_ENTRY_23_8 (32'hbe0) +`define CLP_KV_REG_KEY_ENTRY_23_9 (32'h10018be4) +`define KV_REG_KEY_ENTRY_23_9 (32'hbe4) +`define CLP_KV_REG_KEY_ENTRY_23_10 (32'h10018be8) +`define KV_REG_KEY_ENTRY_23_10 (32'hbe8) +`define CLP_KV_REG_KEY_ENTRY_23_11 (32'h10018bec) +`define KV_REG_KEY_ENTRY_23_11 (32'hbec) +`define CLP_KV_REG_KEY_ENTRY_23_12 (32'h10018bf0) +`define KV_REG_KEY_ENTRY_23_12 (32'hbf0) +`define CLP_KV_REG_KEY_ENTRY_23_13 (32'h10018bf4) +`define KV_REG_KEY_ENTRY_23_13 (32'hbf4) +`define CLP_KV_REG_KEY_ENTRY_23_14 (32'h10018bf8) +`define KV_REG_KEY_ENTRY_23_14 (32'hbf8) +`define CLP_KV_REG_KEY_ENTRY_23_15 (32'h10018bfc) +`define KV_REG_KEY_ENTRY_23_15 (32'hbfc) `define CLP_KV_REG_CLEAR_SECRETS (32'h10018c00) `define KV_REG_CLEAR_SECRETS (32'hc00) `define KV_REG_CLEAR_SECRETS_WR_DEBUG_VALUES_LOW (0) @@ -4099,8 +3971,8 @@ `define SHA512_REG_SHA512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK (32'h40) `define SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW (7) `define SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK (32'h80) -`define SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW (8) -`define SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK (32'h100) +`define SHA512_REG_SHA512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW (8) +`define SHA512_REG_SHA512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK (32'h100) `define SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW (9) `define SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK (32'h200) `define SHA512_REG_SHA512_KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW (10) @@ -5866,156 +5738,164 @@ `define SOC_IFC_REG_FUSE_UDS_SEED_10 (32'h228) `define CLP_SOC_IFC_REG_FUSE_UDS_SEED_11 (32'h3003022c) `define SOC_IFC_REG_FUSE_UDS_SEED_11 (32'h22c) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (32'h30030230) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (32'h230) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (32'h30030234) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (32'h234) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (32'h30030238) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (32'h238) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (32'h3003023c) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (32'h23c) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (32'h30030240) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (32'h240) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (32'h30030244) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (32'h244) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (32'h30030248) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (32'h248) -`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (32'h3003024c) -`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (32'h24c) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h30030250) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h250) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h30030254) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h254) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h30030258) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h258) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h3003025c) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h25c) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h30030260) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h260) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h30030264) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h264) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h30030268) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h268) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h3003026c) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h26c) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h30030270) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h270) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h30030274) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h274) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h30030278) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h278) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h3003027c) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h27c) -`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h30030280) -`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h280) +`define CLP_SOC_IFC_REG_FUSE_UDS_SEED_12 (32'h30030230) +`define SOC_IFC_REG_FUSE_UDS_SEED_12 (32'h230) +`define CLP_SOC_IFC_REG_FUSE_UDS_SEED_13 (32'h30030234) +`define SOC_IFC_REG_FUSE_UDS_SEED_13 (32'h234) +`define CLP_SOC_IFC_REG_FUSE_UDS_SEED_14 (32'h30030238) +`define SOC_IFC_REG_FUSE_UDS_SEED_14 (32'h238) +`define CLP_SOC_IFC_REG_FUSE_UDS_SEED_15 (32'h3003023c) +`define SOC_IFC_REG_FUSE_UDS_SEED_15 (32'h23c) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (32'h30030240) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_0 (32'h240) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (32'h30030244) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_1 (32'h244) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (32'h30030248) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_2 (32'h248) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (32'h3003024c) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_3 (32'h24c) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (32'h30030250) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_4 (32'h250) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (32'h30030254) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_5 (32'h254) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (32'h30030258) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_6 (32'h258) +`define CLP_SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (32'h3003025c) +`define SOC_IFC_REG_FUSE_FIELD_ENTROPY_7 (32'h25c) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h30030260) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h260) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h30030264) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h264) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h30030268) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h268) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h3003026c) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h26c) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h30030270) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h270) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h30030274) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h274) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h30030278) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h278) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h3003027c) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h27c) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h30030280) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h280) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h30030284) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h284) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h30030288) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h288) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h3003028c) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h28c) +`define CLP_SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h30030290) +`define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h290) `define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_LOW (0) `define SOC_IFC_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_MASK (32'hf) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (32'h30030284) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (32'h284) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (32'h30030288) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (32'h288) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (32'h3003028c) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (32'h28c) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (32'h30030290) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (32'h290) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (32'h30030294) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (32'h294) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (32'h30030298) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (32'h298) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (32'h3003029c) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (32'h29c) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (32'h300302a0) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (32'h2a0) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (32'h300302a4) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (32'h2a4) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (32'h300302a8) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (32'h2a8) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (32'h300302ac) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (32'h2ac) -`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (32'h300302b0) -`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (32'h2b0) -`define CLP_SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h300302b4) -`define SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h2b4) -`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (32'h300302b8) -`define SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (32'h2b8) -`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (32'h300302bc) -`define SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (32'h2bc) -`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (32'h300302c0) -`define SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (32'h2c0) -`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (32'h300302c4) -`define SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (32'h2c4) -`define CLP_SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h300302c8) -`define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h2c8) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (32'h30030294) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_0 (32'h294) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (32'h30030298) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_1 (32'h298) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (32'h3003029c) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_2 (32'h29c) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (32'h300302a0) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_3 (32'h2a0) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (32'h300302a4) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_4 (32'h2a4) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (32'h300302a8) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_5 (32'h2a8) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (32'h300302ac) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_6 (32'h2ac) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (32'h300302b0) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_7 (32'h2b0) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (32'h300302b4) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_8 (32'h2b4) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (32'h300302b8) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_9 (32'h2b8) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (32'h300302bc) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_10 (32'h2bc) +`define CLP_SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (32'h300302c0) +`define SOC_IFC_REG_FUSE_OWNER_PK_HASH_11 (32'h2c0) +`define CLP_SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h300302c4) +`define SOC_IFC_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h2c4) +`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (32'h300302c8) +`define SOC_IFC_REG_FUSE_RUNTIME_SVN_0 (32'h2c8) +`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (32'h300302cc) +`define SOC_IFC_REG_FUSE_RUNTIME_SVN_1 (32'h2cc) +`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (32'h300302d0) +`define SOC_IFC_REG_FUSE_RUNTIME_SVN_2 (32'h2d0) +`define CLP_SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (32'h300302d4) +`define SOC_IFC_REG_FUSE_RUNTIME_SVN_3 (32'h2d4) +`define CLP_SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h300302d8) +`define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h2d8) `define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_LOW (0) `define SOC_IFC_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_MASK (32'h1) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h300302cc) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h2cc) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h300302d0) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h2d0) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h300302d4) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h2d4) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h300302d8) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h2d8) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h300302dc) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h2dc) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h300302e0) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h2e0) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h300302e4) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h2e4) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h300302e8) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h2e8) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h300302ec) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h2ec) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h300302f0) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h2f0) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h300302f4) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h2f4) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h300302f8) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h2f8) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h300302fc) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h2fc) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h30030300) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h300) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h30030304) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h304) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h30030308) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h308) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h3003030c) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h30c) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h30030310) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h310) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h30030314) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h314) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h30030318) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h318) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h3003031c) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h31c) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h30030320) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h320) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h30030324) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h324) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h30030328) -`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h328) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h3003032c) -`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h32c) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h30030330) -`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h330) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h30030334) -`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h334) -`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h30030338) -`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h338) -`define CLP_SOC_IFC_REG_FUSE_LIFE_CYCLE (32'h3003033c) -`define SOC_IFC_REG_FUSE_LIFE_CYCLE (32'h33c) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h300302dc) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h2dc) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h300302e0) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h2e0) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h300302e4) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h2e4) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h300302e8) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h2e8) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h300302ec) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h2ec) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h300302f0) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h2f0) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h300302f4) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h2f4) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h300302f8) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h2f8) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h300302fc) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h2fc) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h30030300) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h300) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h30030304) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h304) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h30030308) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h308) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h3003030c) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h30c) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h30030310) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h310) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h30030314) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h314) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h30030318) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h318) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h3003031c) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h31c) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h30030320) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h320) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h30030324) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h324) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h30030328) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h328) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h3003032c) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h32c) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h30030330) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h330) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h30030334) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h334) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h30030338) +`define SOC_IFC_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h338) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h3003033c) +`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h33c) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h30030340) +`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h340) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h30030344) +`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h344) +`define CLP_SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h30030348) +`define SOC_IFC_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h348) +`define CLP_SOC_IFC_REG_FUSE_LIFE_CYCLE (32'h3003034c) +`define SOC_IFC_REG_FUSE_LIFE_CYCLE (32'h34c) `define SOC_IFC_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_LOW (0) `define SOC_IFC_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_MASK (32'h3) -`define CLP_SOC_IFC_REG_FUSE_LMS_VERIFY (32'h30030340) -`define SOC_IFC_REG_FUSE_LMS_VERIFY (32'h340) +`define CLP_SOC_IFC_REG_FUSE_LMS_VERIFY (32'h30030350) +`define SOC_IFC_REG_FUSE_LMS_VERIFY (32'h350) `define SOC_IFC_REG_FUSE_LMS_VERIFY_LMS_VERIFY_LOW (0) `define SOC_IFC_REG_FUSE_LMS_VERIFY_LMS_VERIFY_MASK (32'h1) -`define CLP_SOC_IFC_REG_FUSE_LMS_REVOCATION (32'h30030344) -`define SOC_IFC_REG_FUSE_LMS_REVOCATION (32'h344) -`define CLP_SOC_IFC_REG_FUSE_SOC_STEPPING_ID (32'h30030348) -`define SOC_IFC_REG_FUSE_SOC_STEPPING_ID (32'h348) +`define CLP_SOC_IFC_REG_FUSE_LMS_REVOCATION (32'h30030354) +`define SOC_IFC_REG_FUSE_LMS_REVOCATION (32'h354) +`define CLP_SOC_IFC_REG_FUSE_SOC_STEPPING_ID (32'h30030358) +`define SOC_IFC_REG_FUSE_SOC_STEPPING_ID (32'h358) `define SOC_IFC_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_LOW (0) `define SOC_IFC_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_MASK (32'hffff) `define CLP_SOC_IFC_REG_INTERNAL_OBF_KEY_0 (32'h30030600) diff --git a/src/integration/rtl/caliptra_top.sv b/src/integration/rtl/caliptra_top.sv index 36f92a841..b82e89942 100755 --- a/src/integration/rtl/caliptra_top.sv +++ b/src/integration/rtl/caliptra_top.sv @@ -781,7 +781,6 @@ sha512_ctrl #( .debugUnlock_or_scan_mode_switch(debug_lock_or_scan_mode_switch) ); -always_comb kv_read[2] = '0; always_comb kv_write[1] = '0; sha256_ctrl #( @@ -920,6 +919,8 @@ mldsa_top #( .hresp_o (responder_inst[`CALIPTRA_SLAVE_SEL_MLDSA].hresp), .hreadyout_o (responder_inst[`CALIPTRA_SLAVE_SEL_MLDSA].hreadyout), .hrdata_o (responder_inst[`CALIPTRA_SLAVE_SEL_MLDSA].hrdata), + .kv_read (kv_read[2]), + .kv_rd_resp (kv_rd_resp[2]), .error_intr (mldsa_error_intr), .notif_intr (mldsa_notif_intr) ); diff --git a/src/integration/rtl/config_defines.svh b/src/integration/rtl/config_defines.svh index 50790a370..a4030d31b 100755 --- a/src/integration/rtl/config_defines.svh +++ b/src/integration/rtl/config_defines.svh @@ -15,6 +15,8 @@ `ifndef CALIPTRA_CFG_SV `define CALIPTRA_CFG_SV + `define CALIPTRA + // Uncomment to enable Caliptra Internal TRNG //`define CALIPTRA_INTERNAL_TRNG diff --git a/src/integration/stimulus/L0_regression.yml b/src/integration/stimulus/L0_regression.yml index 773400367..5d790ca90 100644 --- a/src/integration/stimulus/L0_regression.yml +++ b/src/integration/stimulus/L0_regression.yml @@ -24,6 +24,7 @@ contents: - ../test_suites/c_intr_handler/c_intr_handler.yml - ../test_suites/smoke_test_ecc/smoke_test_ecc.yml - ../test_suites/smoke_test_hmac/smoke_test_hmac.yml + - ../test_suites/smoke_test_mldsa/smoke_test_mldsa.yml - ../test_suites/smoke_test_kv/smoke_test_kv.yml - ../test_suites/smoke_test_sram_ecc/smoke_test_sram_ecc.yml - ../test_suites/smoke_test_ras/smoke_test_ras.yml @@ -40,6 +41,7 @@ contents: #- ../test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.yml Removed SHA KV functionality - ../test_suites/smoke_test_kv_crypto_flow/smoke_test_kv_crypto_flow.yml - ../test_suites/smoke_test_kv_cg/smoke_test_kv_cg.yml + - ../test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.yml - ../test_suites/pv_hash_and_sign/pv_hash_and_sign.yml - ../test_suites/smoke_test_pcr_signing/smoke_test_pcr_signing.yml - ../test_suites/smoke_test_fw_kv_backtoback_hmac/smoke_test_fw_kv_backtoback_hmac.yml diff --git a/src/integration/stimulus/testsuites/caliptra_top_nightly_directed_regression.yml b/src/integration/stimulus/testsuites/caliptra_top_nightly_directed_regression.yml index 03c995ecd..9ce88aaa1 100644 --- a/src/integration/stimulus/testsuites/caliptra_top_nightly_directed_regression.yml +++ b/src/integration/stimulus/testsuites/caliptra_top_nightly_directed_regression.yml @@ -28,6 +28,7 @@ contents: - ${CALIPTRA_ROOT}/src/integration/test_suites/c_intr_handler/c_intr_handler.yml - ${CALIPTRA_ROOT}/src/integration/test_suites/smoke_test_ecc/smoke_test_ecc.yml - ${CALIPTRA_ROOT}/src/integration/test_suites/smoke_test_hmac/smoke_test_hmac.yml + - ${CALIPTRA_ROOT}/src/integration/test_suites/smoke_test_mldsa_rand/smoke_test_mldsa_rand.yml - ${CALIPTRA_ROOT}/src/integration/test_suites/smoke_test_kv/smoke_test_kv.yml - ${CALIPTRA_ROOT}/src/integration/test_suites/smoke_test_sram_ecc/smoke_test_sram_ecc.yml - ${CALIPTRA_ROOT}/src/integration/test_suites/smoke_test_ras/smoke_test_ras.yml diff --git a/src/integration/tb/caliptra_top_tb_services.sv b/src/integration/tb/caliptra_top_tb_services.sv index c8c190452..77a351adb 100644 --- a/src/integration/tb/caliptra_top_tb_services.sv +++ b/src/integration/tb/caliptra_top_tb_services.sv @@ -148,7 +148,7 @@ module caliptra_top_tb_services logic inject_hmac_key; logic inject_ecc_seed; logic inject_ecc_privkey; - logic inject_sha_block; + logic inject_mldsa_seed; logic inject_random_data; logic check_pcr_signing; @@ -263,7 +263,7 @@ module caliptra_top_tb_services // 8'h99 - Inject zeroize into HMAC // 8'h9a - Inject invalid zero sign_s into ECC // 8'ha0: 8'ha7 - Inject HMAC_KEY to kv_key register - // 8'hc0: 8'hc7 - Inject SHA_BLOCK to kv_key register + // 8'hc0: 8'hc7 - Inject MLDSA_SEED to kv_key register // 8'hd9 - Perform mldsa keygen // 8'hda - Perform mldsa signing // 8'hdb - Perform mldsa verify @@ -413,7 +413,8 @@ module caliptra_top_tb_services logic [0:11][31:0] ecc_seed_tb = 384'h8FA8541C82A392CA74F23ED1DBFD73541C5966391B97EA73D744B0E34B9DF59ED0158063E39C09A5A055371EDF7A5441; logic [0:11][31:0] ecc_privkey_tb = 384'hF274F69D163B0C9F1FC3EBF4292AD1C4EB3CEC1C5A7DDE6F80C14292934C2055E087748D0A169C772483ADEE5EE70E17; logic [0:11][31:0] hmac_key_tb = 384'h0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b; - logic [0:11][31:0] sha_block_tb = 384'hb1eeef324b499f19eba322215fe3ce19c9f000b698d2b2dab7145015046cc86d049ee15ad59dcd1564f30112e06444cb; + logic [11:0][31:0] mldsa_seed_tb = 384'h_55555555555555555555555555555555_9340000a_675fd127_37071d12_3fcee4d5_a243fe28_0768f0d4_46768a85_2d5cf89c; //fixme padded with junk + genvar dword_i, slot_id; generate for (slot_id=0; slot_id < 8; slot_id++) begin : inject_slot_loop @@ -463,18 +464,6 @@ module caliptra_top_tb_services force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_ENTRY[slot_id][dword_i].data.next = hmac_key_tb[dword_i][31 : 0]; end end - //inject valid sha dest and sha_block value to key reg - else if(((WriteData[7:0] & 8'hf8) == 8'hc0) && mailbox_write) begin - inject_sha_block <= 1'b1; - if (((WriteData[7:0] & 8'h07) == slot_id)) begin - force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].dest_valid.we = 1'b1; - force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].dest_valid.next = 5'b100; - force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].last_dword.we = 1'b1; - force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].last_dword.next = 'd11; - force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_ENTRY[slot_id][dword_i].data.we = 1'b1; - force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_ENTRY[slot_id][dword_i].data.next = sha_block_tb[dword_i][31 : 0]; - end - end else if((WriteData[7:0] == 8'hf4) && mailbox_write) begin inject_random_data <= '1; if (slot_id == 0) begin @@ -486,11 +475,23 @@ module caliptra_top_tb_services force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_ENTRY[slot_id][dword_i].data.next = $urandom(); end end + //inject valid mldsa seed dest and mldsa_seed value to key reg + else if(((WriteData[7:0] & 8'hf8) == 8'hc0) && mailbox_write) begin + inject_mldsa_seed <= 1'b1; + if (((WriteData[7:0] & 8'h07) == slot_id)) begin + force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].dest_valid.we = 1'b1; + force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].dest_valid.next = 5'b100; + force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].last_dword.we = 1'b1; + force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].last_dword.next = 'd7; + force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_ENTRY[slot_id][dword_i].data.we = 1'b1; + force caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_ENTRY[slot_id][dword_i].data.next = mldsa_seed_tb[dword_i][31 : 0]; + end + end else begin inject_ecc_seed <= '0; inject_ecc_privkey <= '0; inject_hmac_key <= '0; - inject_sha_block <= '0; + inject_mldsa_seed <= '0; inject_random_data <= '0; release caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].dest_valid.we; release caliptra_top_dut.key_vault1.kv_reg_hwif_in.KEY_CTRL[slot_id].dest_valid.next; diff --git a/src/integration/tb/caliptra_top_tb_soc_bfm.sv b/src/integration/tb/caliptra_top_tb_soc_bfm.sv index 4968e34e7..579c174df 100644 --- a/src/integration/tb/caliptra_top_tb_soc_bfm.sv +++ b/src/integration/tb/caliptra_top_tb_soc_bfm.sv @@ -152,8 +152,8 @@ import caliptra_top_tb_pkg::*; #( end else begin //Key for UDS - cptra_obf_key_uds = 256'h54682728db5035eb04b79645c64a95606abb6ba392b6633d79173c027c5acf77; - cptra_uds_tb = 384'he4046d05385ab789c6a72866e08350f93f583e2a005ca0faecc32b5cfc323d461c76c107307654db5566a5bd693e227c; + cptra_obf_key_uds = 256'h31358e8af34d6ac31c958bbd5c8fb33c334714bffb41700d28b07f11cfe891e7; + cptra_uds_tb = 512'he4046d05385ab789c6a72866e08350f93f583e2a005ca0faecc32b5cfc323d461c76c107307654db5566a5bd693e227c144516246a752c329056d884daf3c89d; //Key for FE cptra_obf_key_fe = 256'h31358e8af34d6ac31c958bbd5c8fb33c334714bffb41700d28b07f11cfe891e7; diff --git a/src/integration/test_suites/libs/hmac/hmac.c b/src/integration/test_suites/libs/hmac/hmac.c index 98e481cb2..01c2698cc 100644 --- a/src/integration/test_suites/libs/hmac/hmac.c +++ b/src/integration/test_suites/libs/hmac/hmac.c @@ -110,7 +110,7 @@ void hmac384_flow(hmac_io key, hmac_io block, hmac_io lfsr_seed, hmac_io tag, BO lsu_write_32(CLP_HMAC_REG_HMAC512_KV_WR_CTRL, HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_EN_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK| - HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK | + HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_ECC_SEED_DEST_VALID_MASK | ((tag.kv_id << HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_ENTRY_LOW) & HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_ENTRY_MASK)); @@ -225,7 +225,7 @@ void hmac512_flow(hmac_io key, hmac_io block, hmac_io lfsr_seed, hmac_io tag, BO lsu_write_32(CLP_HMAC_REG_HMAC512_KV_WR_CTRL, HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_EN_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK| - HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK | + HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_ECC_SEED_DEST_VALID_MASK | ((tag.kv_id << HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_ENTRY_LOW) & HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_ENTRY_MASK)); diff --git a/src/integration/test_suites/libs/keyvault/keyvault.c b/src/integration/test_suites/libs/keyvault/keyvault.c index 5686d8992..94443f0fd 100644 --- a/src/integration/test_suites/libs/keyvault/keyvault.c +++ b/src/integration/test_suites/libs/keyvault/keyvault.c @@ -47,7 +47,7 @@ void kv_write_ctrl(uint32_t reg_addr, uint32_t write_entry, dest_valid_t dest_va ((write_entry << KV_WR_CTRL_WRITE_ENTRY_LOW) & KV_WR_CTRL_WRITE_ENTRY_MASK) | ((dest_valid.hmac_key << KV_WR_CTRL_HMAC_KEY_DEST_VALID_LOW) & KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK) | ((dest_valid.hmac_block << KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW) & KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK) | - ((dest_valid.sha_block << KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW) & KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK) | + ((dest_valid.mldsa_seed << KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW) & KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK) | ((dest_valid.ecc_pkey << KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW) & KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK) | ((dest_valid.ecc_seed << KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW) & KV_WR_CTRL_ECC_SEED_DEST_VALID_MASK); diff --git a/src/integration/test_suites/libs/keyvault/keyvault.h b/src/integration/test_suites/libs/keyvault/keyvault.h index 6c3b06397..db1e66e1f 100644 --- a/src/integration/test_suites/libs/keyvault/keyvault.h +++ b/src/integration/test_suites/libs/keyvault/keyvault.h @@ -39,8 +39,8 @@ #define KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK (SHA512_REG_SHA512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK) #define KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW (SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_LOW) #define KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK (SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK) -#define KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW (SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_LOW) -#define KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK (SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK) +#define KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW (SHA512_REG_SHA512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_LOW) +#define KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK (SHA512_REG_SHA512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK) #define KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW (SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_LOW) #define KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK (SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK) #define KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW (SHA512_REG_SHA512_KV_WR_CTRL_ECC_SEED_DEST_VALID_LOW) @@ -53,7 +53,7 @@ typedef struct { unsigned hmac_key:1; unsigned hmac_block:1; - unsigned sha_block:1; + unsigned mldsa_seed:1; unsigned ecc_pkey:1; unsigned ecc_seed:1; } dest_valid_t; diff --git a/src/integration/test_suites/libs/mldsa/mldsa.c b/src/integration/test_suites/libs/mldsa/mldsa.c index 55e7b207b..fc94a7e41 100644 --- a/src/integration/test_suites/libs/mldsa/mldsa.c +++ b/src/integration/test_suites/libs/mldsa/mldsa.c @@ -43,7 +43,7 @@ void mldsa_zeroize(){ -void mldsa_keygen_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t entropy[16], uint32_t privkey[1224], uint32_t pubkey[648]){ +void mldsa_keygen_flow(mldsa_io seed, uint32_t sign_rnd[8], uint32_t entropy[16], uint32_t privkey[1224], uint32_t pubkey[648]){ uint16_t offset; volatile uint32_t * reg_ptr; uint8_t fail_cmd = 0x1; @@ -55,37 +55,27 @@ void mldsa_keygen_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t entropy[ printf("Waiting for mldsa status ready in keygen\n"); while((lsu_read_32(CLP_MLDSA_REG_MLDSA_STATUS) & MLDSA_REG_MLDSA_STATUS_READY_MASK) == 0); - //TODO: modify below after KV intf is ready - // if(seed.kv_intf){ - // // Program MLDSA_SEED Read with 12 dwords from seed_kv_id - // lsu_write_32(CLP_MLDSA_REG_MLDSA_KV_RD_SEED_CTRL, (MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_EN_MASK | - // ((seed.kv_id << MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_ENTRY_LOW) & MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_ENTRY_MASK))); + if(seed.kv_intf){ + // Program MLDSA_SEED Read with 12 dwords from seed_kv_id + lsu_write_32(CLP_MLDSA_REG_MLDSA_KV_RD_SEED_CTRL, (MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_EN_MASK | + ((seed.kv_id << MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_ENTRY_LOW) & MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_ENTRY_MASK))); - // // Try to overwrite MLDSA SEED from keyvault - // reg_ptr = (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_0; - // while (reg_ptr <= (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_11) { - // *reg_ptr++ = 0; - // } + // Try to overwrite MLDSA SEED from keyvault + reg_ptr = (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_0; + while (reg_ptr <= (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_7) { + *reg_ptr++ = 0; + } - // // Check that MLDSA SEED is loaded - // while((lsu_read_32(CLP_MLDSA_REG_MLDSA_KV_RD_SEED_STATUS) & MLDSA_REG_MLDSA_KV_RD_SEED_STATUS_VALID_MASK) == 0); - // } - // else{ - // printf("Writing seed from tb\n"); - // printf("%c", 0xd9); + // Check that MLDSA SEED is loaded + while((lsu_read_32(CLP_MLDSA_REG_MLDSA_KV_RD_SEED_STATUS) & MLDSA_REG_MLDSA_KV_RD_SEED_STATUS_VALID_MASK) == 0); + } + else{ reg_ptr = (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_0; offset = 0; while (reg_ptr <= (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_7) { - *reg_ptr++ = seed[offset++]; + *reg_ptr++ = seed.data[offset++]; } - // } - - // if (privkey.kv_intf){ - // // set privkey DEST to write - // lsu_write_32(CLP_MLDSA_REG_MLDSA_KV_WR_PKEY_CTRL, (MLDSA_REG_MLDSA_KV_WR_PKEY_CTRL_WRITE_EN_MASK | - // MLDSA_REG_MLDSA_KV_WR_PKEY_CTRL_MLDSA_PKEY_DEST_VALID_MASK | - // ((privkey.kv_id << MLDSA_REG_MLDSA_KV_WR_PKEY_CTRL_WRITE_ENTRY_LOW) & MLDSA_REG_MLDSA_KV_WR_PKEY_CTRL_WRITE_ENTRY_MASK))); - // } + } // Write MLDSA ENTROPY printf("Writing entropy\n"); @@ -102,12 +92,6 @@ void mldsa_keygen_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t entropy[ // // wait for MLDSA KEYGEN process to be done wait_for_mldsa_intr(); - // if (privkey.kv_intf){ - // printf("Wait for KV write\n"); - // // check dest done - // while((lsu_read_32(CLP_MLDSA_REG_MLDSA_KV_WR_PKEY_STATUS) & MLDSA_REG_MLDSA_KV_WR_PKEY_STATUS_VALID_MASK) == 0); - // } - // else{ // Read the data back from MLDSA register printf("Load PRIVKEY data from MLDSA\n"); reg_ptr = (uint32_t *) CLP_MLDSA_REG_MLDSA_PRIVKEY_OUT_BASE_ADDR; @@ -124,7 +108,6 @@ void mldsa_keygen_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t entropy[ reg_ptr++; offset++; } - // } // Read the data back from MLDSA register printf("Load PUBKEY data from MLDSA\n"); @@ -145,7 +128,7 @@ void mldsa_keygen_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t entropy[ } -void mldsa_keygen_signing_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t msg[16], uint32_t privkey[1224], uint32_t pubkey[648], uint32_t sign[1157]) { +void mldsa_keygen_signing_flow(mldsa_io seed, uint32_t sign_rnd[8], uint32_t msg[16], uint32_t privkey[1224], uint32_t pubkey[648], uint32_t sign[1157]) { uint16_t offset; volatile uint32_t * reg_ptr; uint8_t fail_cmd = 0x1; @@ -159,10 +142,27 @@ void mldsa_keygen_signing_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t while((lsu_read_32(CLP_MLDSA_REG_MLDSA_STATUS) & MLDSA_REG_MLDSA_STATUS_READY_MASK) == 0); //Program mldsa seed - reg_ptr = (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_0; - offset = 0; - while (reg_ptr <= (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_7) { - *reg_ptr++ = seed[offset++]; + + if(seed.kv_intf){ + // Program MLDSA_SEED Read with 12 dwords from seed_kv_id + lsu_write_32(CLP_MLDSA_REG_MLDSA_KV_RD_SEED_CTRL, (MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_EN_MASK | + ((seed.kv_id << MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_ENTRY_LOW) & MLDSA_REG_MLDSA_KV_RD_SEED_CTRL_READ_ENTRY_MASK))); + + // Try to overwrite MLDSA SEED from keyvault + reg_ptr = (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_0; + while (reg_ptr <= (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_7) { + *reg_ptr++ = 0; + } + + // Check that MLDSA SEED is loaded + while((lsu_read_32(CLP_MLDSA_REG_MLDSA_KV_RD_SEED_STATUS) & MLDSA_REG_MLDSA_KV_RD_SEED_STATUS_VALID_MASK) == 0); + } + else{ + reg_ptr = (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_0; + offset = 0; + while (reg_ptr <= (uint32_t*) CLP_MLDSA_REG_MLDSA_SEED_7) { + *reg_ptr++ = seed.data[offset++]; + } } // Program MLDSA MSG diff --git a/src/integration/test_suites/libs/mldsa/mldsa.h b/src/integration/test_suites/libs/mldsa/mldsa.h index fdbf053f0..0d331efa7 100644 --- a/src/integration/test_suites/libs/mldsa/mldsa.h +++ b/src/integration/test_suites/libs/mldsa/mldsa.h @@ -24,20 +24,17 @@ typedef uint8_t BOOL; #define FALSE 0u #define TRUE 1u -// typedef struct { -// BOOL kv_intf; -// uint8_t kv_id; -// uint32_t data[12]; -// }ecc_io; -// void ecc_keygen_flow(ecc_io seed, ecc_io nonce, ecc_io iv, ecc_io privkey, ecc_io pubkey_x, ecc_io pubkey_y); -// void ecc_signing_flow(ecc_io privkey, ecc_io msg, ecc_io iv, ecc_io sign_r, ecc_io sign_s); -// void ecc_verifying_flow(ecc_io msg, ecc_io pubkey_x, ecc_io pubkey_y, ecc_io sign_r, ecc_io sign_s); -// void ecc_pcr_signing_flow(ecc_io iv, ecc_io sign_r, ecc_io sign_s); +typedef struct { + BOOL kv_intf; + uint8_t kv_id; + uint32_t data[8]; +} mldsa_io; + void mldsa_zeroize(); void wait_for_mldsa_intr(); -void mldsa_keygen_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t entropy[16], uint32_t privkey[1224], uint32_t pubkey[648]); +void mldsa_keygen_flow(mldsa_io seed, uint32_t sign_rnd[8], uint32_t entropy[16], uint32_t privkey[1224], uint32_t pubkey[648]); void mldsa_signing_flow(uint32_t privkey[1224], uint32_t msg[16], uint32_t entropy[16], uint32_t sign[1157]); void mldsa_verifying_flow(uint32_t msg[16], uint32_t pubkey[648], uint32_t sign[1157], uint32_t verifyres[16]); -void mldsa_keygen_signing_flow(uint32_t seed[8], uint32_t sign_rnd[8], uint32_t msg[16], uint32_t privkey[1224], uint32_t pubkey[648], uint32_t sign[1157]); +void mldsa_keygen_signing_flow(mldsa_io seed, uint32_t sign_rnd[8], uint32_t msg[16], uint32_t privkey[1224], uint32_t pubkey[648], uint32_t sign[1157]); #endif diff --git a/src/integration/test_suites/libs/sha512/sha512.c b/src/integration/test_suites/libs/sha512/sha512.c index 52f4e8bd4..f500bac25 100644 --- a/src/integration/test_suites/libs/sha512/sha512.c +++ b/src/integration/test_suites/libs/sha512/sha512.c @@ -75,75 +75,6 @@ void sha_gen_hash_start() { lsu_write_32(CLP_SHA512_REG_SHA512_GEN_PCR_HASH_CTRL,reg); } -void sha384_kvflow(uint8_t sha_kv_id, uint8_t store_to_kv, uint8_t digest_kv_id, uint32_t expected_digest[12]){ - uint8_t block_inject_cmd; - volatile uint32_t * reg_ptr; - uint8_t offset; - uint8_t fail_cmd = 0x1; - - uint32_t sha_digest [12]; - - //inject sha block to kv key reg (in RTL) - block_inject_cmd = 0xc0 + (sha_kv_id & 0x7); - printf("%c", block_inject_cmd); - - // wait for SHA to be ready - while((lsu_read_32(CLP_SHA512_REG_SHA512_STATUS) & SHA512_REG_SHA512_STATUS_READY_MASK) == 0); - - - // Program block Read with 12 dwords from sha_kv_id - lsu_write_32(CLP_SHA512_REG_SHA512_VAULT_RD_CTRL, SHA512_REG_SHA512_VAULT_RD_CTRL_READ_EN_MASK | - ((sha_kv_id << SHA512_REG_SHA512_VAULT_RD_CTRL_READ_ENTRY_LOW) & SHA512_REG_SHA512_VAULT_RD_CTRL_READ_ENTRY_MASK)); - - // Check that SHA BLOCK is loaded - while((lsu_read_32(CLP_SHA512_REG_SHA512_VAULT_RD_STATUS) & SHA512_REG_SHA512_VAULT_RD_STATUS_VALID_MASK) == 0); - - // if we want to store the results into kv - if (store_to_kv) { - // set digest DEST to write - lsu_write_32(CLP_SHA512_REG_SHA512_KV_WR_CTRL, SHA512_REG_SHA512_KV_WR_CTRL_WRITE_EN_MASK | - SHA512_REG_SHA512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK | - SHA512_REG_SHA512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK| - SHA512_REG_SHA512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK | - SHA512_REG_SHA512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK | - SHA512_REG_SHA512_KV_WR_CTRL_ECC_SEED_DEST_VALID_MASK | - ((digest_kv_id << SHA512_REG_SHA512_KV_WR_CTRL_WRITE_ENTRY_LOW) & SHA512_REG_SHA512_KV_WR_CTRL_WRITE_ENTRY_MASK)); - } - - - // Enable SHA core in SHA384 MODE - lsu_write_32(CLP_SHA512_REG_SHA512_CTRL, SHA512_REG_SHA512_CTRL_INIT_MASK | - (0x2 << SHA512_REG_SHA512_CTRL_MODE_LOW) | - SHA512_REG_SHA512_CTRL_LAST_MASK); - - // wait for SHA to be valid - wait_for_sha512_intr(); - - // if we want to store the results into kv - printf("check digest\n"); - if (store_to_kv) { - // wait for SHA process - check dest done - while((lsu_read_32(CLP_SHA512_REG_SHA512_KV_WR_STATUS) & SHA512_REG_SHA512_KV_WR_STATUS_VALID_MASK) == 0); - } - else{ - reg_ptr = (uint32_t *) CLP_SHA512_REG_SHA512_DIGEST_0; - printf("Load DIGEST data from SHA384\n"); - offset = 0; - while (reg_ptr <= (uint32_t*) CLP_SHA512_REG_SHA512_DIGEST_11) { - sha_digest[offset] = *reg_ptr; - if (sha_digest[offset] != expected_digest[offset]) { - printf("At offset [%d], sha_digest data mismatch!\n", offset); - printf("Actual data: 0x%x\n", sha_digest[offset]); - printf("Expected data: 0x%x\n", expected_digest[offset]); - printf("%c", fail_cmd); - while(1); - } - reg_ptr++; - offset++; - } - } - -} void sha512_zeroize(){ printf("SHA512 zeroize flow.\n"); diff --git a/src/integration/test_suites/libs/sha512/sha512.h b/src/integration/test_suites/libs/sha512/sha512.h index 1f9ffd26c..acdc03f60 100644 --- a/src/integration/test_suites/libs/sha512/sha512.h +++ b/src/integration/test_suites/libs/sha512/sha512.h @@ -39,7 +39,6 @@ void sha_next(enum sha512_mode_e mode); void sha_init_last(enum sha512_mode_e mode); void sha_next_last(enum sha512_mode_e mode); -void sha384_kvflow(uint8_t sha_kv_id, uint8_t store_to_kv, uint8_t digest_kv_id, uint32_t expected_digest[12]); void sha512_zeroize(); void sha512_flow(sha512_io block, uint8_t mode, sha512_io digest); void sha512_restore_flow(sha512_io block, uint8_t mode, sha512_io restore_digest, sha512_io digest); diff --git a/src/integration/test_suites/smoke_test_doe_rand/smoke_test_doe_rand.c b/src/integration/test_suites/smoke_test_doe_rand/smoke_test_doe_rand.c index c69a78a12..e1bb39855 100644 --- a/src/integration/test_suites/smoke_test_doe_rand/smoke_test_doe_rand.c +++ b/src/integration/test_suites/smoke_test_doe_rand/smoke_test_doe_rand.c @@ -79,9 +79,9 @@ void main() { //Clear doe_status_int doe_status_int = 0; - //Start FE and store in KV15 + //Start FE and store in KV23 SEND_STDOUT_CTRL(0xed); - *doe_ctrl = 0x00000062; //30; + *doe_ctrl = 0x0000005e; //Entry 23, FE flow; // //Poll for DOE status while(doe_status_int != (DOE_REG_DOE_STATUS_VALID_MASK | DOE_REG_DOE_STATUS_READY_MASK)) { diff --git a/src/integration/test_suites/smoke_test_doe_scan/smoke_test_doe_scan.c b/src/integration/test_suites/smoke_test_doe_scan/smoke_test_doe_scan.c index 3a925a609..0f3539a5b 100644 --- a/src/integration/test_suites/smoke_test_doe_scan/smoke_test_doe_scan.c +++ b/src/integration/test_suites/smoke_test_doe_scan/smoke_test_doe_scan.c @@ -86,9 +86,9 @@ void main() { //Clear doe_status_int doe_status_int = 0; - //Start FE and store in KV15 + //Start FE and store in KV23 SEND_STDOUT_CTRL(0xed); - *doe_ctrl = 0x00000062; //30; + *doe_ctrl = 0x0000005e; //Entry 23, FE flow; // //Poll for DOE status while(doe_status_int != (DOE_REG_DOE_STATUS_VALID_MASK | DOE_REG_DOE_STATUS_READY_MASK)) { @@ -127,7 +127,7 @@ void main() { else if (rst_count == 3) { SEND_STDOUT_CTRL(0xed); //Generate rand FE vector SEND_STDOUT_CTRL(0xfa); //Debug mode unlocked - *doe_ctrl = 0x00000062; //Start FE flow + *doe_ctrl = 0x0000005e; //Start FE flow // //Poll for DOE status while(doe_status_int != (DOE_REG_DOE_STATUS_VALID_MASK | DOE_REG_DOE_STATUS_READY_MASK)) { @@ -145,7 +145,7 @@ void main() { } else if (rst_count == 4) { SEND_STDOUT_CTRL(0xed); //Generate rand FE vector - *doe_ctrl = 0x00000062; //Start FE flow + *doe_ctrl = 0x0000005e; //Start FE flow // //Poll for DOE status while(doe_status_int != (DOE_REG_DOE_STATUS_VALID_MASK | DOE_REG_DOE_STATUS_READY_MASK)) { diff --git a/src/integration/test_suites/smoke_test_kv_crypto_flow/smoke_test_kv_crypto_flow.c b/src/integration/test_suites/smoke_test_kv_crypto_flow/smoke_test_kv_crypto_flow.c index 19bc70548..61109f99c 100644 --- a/src/integration/test_suites/smoke_test_kv_crypto_flow/smoke_test_kv_crypto_flow.c +++ b/src/integration/test_suites/smoke_test_kv_crypto_flow/smoke_test_kv_crypto_flow.c @@ -88,7 +88,7 @@ void kv_doe(uint8_t doe_fe_dest_id){ //****************************************************************** // HMAC(OBF_KEY , FE) //****************************************************************** -void kv_hmac384(uint8_t key_id, uint8_t block_id, uint8_t tag_id){ +void kv_hmac512(uint8_t key_id, uint8_t block_id, uint8_t tag_id){ hmac_io hmac384_key; hmac_io hmac_block; @@ -96,7 +96,8 @@ void kv_hmac384(uint8_t key_id, uint8_t block_id, uint8_t tag_id){ hmac_io hmac_tag; - uint32_t key_data[] = {0xdff9f002,0x1e1ab0bd,0xa2781e1a,0x709cafdb,0x341953bd,0xbd6836d9,0xc1ea520a,0x6043041d,0xaf7218b1,0x9ce98302,0xa5f8f95a,0x6b51f5c1}; + uint32_t key_data[] = {0xdff9f002,0x1e1ab0bd,0xa2781e1a,0x709cafdb,0x341953bd,0xbd6836d9,0xc1ea520a,0x6043041d,0xaf7218b1,0x9ce98302,0xa5f8f95a,0x6b51f5c1, + 0x219a09d7,0x3819e2ba,0x0d2c4b93,0x2489c586}; uint32_t block[] = {0xcfc155a3,0x967de347,0xf58fa2e8,0xbbeb4183,0xd6d32f74,0x27155e6a,0xb39cddf2,0xe627c572,0x80000000,0x00000000,0x00000000,0x00000000, 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000500}; @@ -128,7 +129,7 @@ void kv_hmac384(uint8_t key_id, uint8_t block_id, uint8_t tag_id){ //uint8_t key_inject_cmd = 0xa0 + (hmac384_key.kv_id & 0x1f); //printf("%c", key_inject_cmd); - hmac384_flow(hmac384_key, hmac_block, hmac_lfsr_seed, hmac_tag, TRUE); + hmac512_flow(hmac384_key, hmac_block, hmac_lfsr_seed, hmac_tag, TRUE); //printf("%c", 0x1); } @@ -146,12 +147,12 @@ void kv_ecc(uint8_t seed_id, uint8_t privkey_id){ uint32_t ecc_msg[] = {0xBEB06525,0x1497FCE1,0xD4C43092,0x8BC09E14,0x7B250CF3,0x25A40258,0x784262F6,0x858B8056,0xD68C6A23,0xD4CC5CBD,0xCEAD7EBF,0x8F6A97E6}; uint32_t ecc_privkey[] = {0x11F76A67,0xB9855B59,0x969D52CE,0xA8A8FC50,0xE5B3593C,0x21521060,0xCBA024FE,0xAD80735A,0xB825F393,0x3B345483,0x5755AB52,0x535F5DDD}; - uint32_t ecc_pubkey_x[] = {0xFD7AF45F,0x67D9C371,0xB75E8AB6,0xDEC6E5B5,0xD7394102,0xB27C4461,0xDEC50209,0xF06DE791,0xF90E0587,0xED93DA62,0x03D37971,0x92DA0C21}; - uint32_t ecc_pubkey_y[] = {0x4EEA9748,0x93331874,0x2AC8A06E,0xE3557B91,0x89E15FCC,0x1DB75754,0xF26CA763,0x711440B7,0xAD9A08F9,0xC1578887,0x5D39B31A,0xD0CD2D83}; - uint32_t ecc_seed[] = {0xAF2799D0,0x1F135A1E,0xF963DFD0,0x59F99604,0xB0E33BE1,0xCA38E70C,0x9B2C1073,0x1F17173A,0xD8F2681C,0xA64AEAC5,0xF5A4B368,0x457460DC}; + uint32_t ecc_pubkey_x[] = {0x996A59E7,0x7C02E050,0xBB81CD53,0x7E92D513,0x57E8BCE6,0xDC19B1E0,0x738795FC,0x024C77D6,0x4CA885D5,0x1A4DB378,0x4D4F8ECC,0x55C07A18}; + uint32_t ecc_pubkey_y[] = {0x3934295D,0x1CC973F9,0xB7EA6769,0xEE052D2E,0x1EF3E1AE,0x5BB663FD,0x2F7B04A9,0xA2DD0050,0xDED3E4FA,0xDE861A63,0x510598DF,0xAAA19FD7}; + uint32_t ecc_seed[] = {0x32CD8A75,0xB5E515BD,0x7B0FE37A,0x6DE14469,0x6AEEDB1F,0x5E03225A,0x71FC690F,0x5B004FF5,0x93794DB7,0xA99CED97,0xC3763851,0x49CFECAF}; uint32_t ecc_nonce[] = {0x1B7EC5E5,0x48E8AAA9,0x2EC77097,0xCA9551C9,0x783CE682,0xCA18FB1E,0xDBD9F1E5,0x0BC382DB,0x8AB39496,0xC8EE423F,0x8CA105CB,0xBA7B6588}; - uint32_t ecc_sign_r[] = {0x2F404A52,0xA35A4BE8,0x5059D38B,0xE429D222,0x1A4D57EB,0xCA4D2680,0x54691CB4,0xEB9845CB,0x62D94F1F,0xBE2C3EDF,0xCCD79C1F,0xD10505B1}; - uint32_t ecc_sign_s[] = {0x09FD9A77,0x0EA13FB5,0x7150DFB7,0x539715B6,0x6C14A6F5,0x58346A4C,0xD303950F,0x7D171A58,0x0C1212BD,0xA7DF30C5,0x6269A5A1,0x3A6A32A7}; + uint32_t ecc_sign_r[] = {0x324de80e,0x4fe11f91,0xc862e15f,0x70d40a41,0xd615bb37,0x9d4ea1b6,0xa72f5e3a,0x344b6f2d,0x87dec365,0x83cdcf41,0x4cfd8ccc,0x804c1089}; + uint32_t ecc_sign_s[] = {0xbeaf76e2,0xdc81fcc5,0xed8e44d1,0x7727b1ff,0x330c1834,0x7b402707,0xaf0af5fd,0x4a8265e8,0x2a177bf3,0x527428ac,0xb9df6c01,0x6b5b4276}; uint32_t ecc_iv[] = {0xBD372F61,0xCBEC31CD,0x5F07A738,0x0B0CC2D1,0x0E53A51B,0x1B9D36AE,0x2B437C65,0xD5ACAC1E,0x4B7ABC20,0x4A25E423,0x033CA6C9,0x6E9C6BC1}; //****************************************************************** @@ -218,19 +219,19 @@ void random_generator(uint8_t *fe_id, uint8_t *uds_id, uint8_t *privkey_id, uint srand(time); do { - *fe_id = rand() & 0x1f; // FE kv id + *fe_id = rand() % 0x17; // FE kv id } while(*fe_id == 0); do { - *uds_id = rand() & 0x1f; + *uds_id = rand() % 0x17; } while((*uds_id == 0) | (*uds_id == *fe_id)); do { - *cdi_id = rand() & 0x1f; + *cdi_id = rand() % 0x17; } while((*cdi_id == 0) | (*cdi_id == *fe_id) | (*cdi_id == *uds_id)); do { - *privkey_id = rand() & 0x1f; + *privkey_id = rand() % 0x17; } while((*privkey_id == 0) | (*privkey_id == *fe_id) | (*privkey_id == *uds_id) | (*privkey_id == *cdi_id)); } @@ -285,11 +286,11 @@ void main(){ kv_doe(doe_fe_dest_id); - kv_hmac384(0, doe_fe_dest_id, uds_key_id); + kv_hmac512(0, doe_fe_dest_id, uds_key_id); kv_ecc(uds_key_id, idevid_privkey_id); - kv_hmac384(uds_key_id, doe_fe_dest_id, cdi_ldevid_id); + kv_hmac512(uds_key_id, doe_fe_dest_id, cdi_ldevid_id); //issue zeroize ecc_zeroize(); diff --git a/src/integration/test_suites/smoke_test_kv_mldsa/caliptra_isr.h b/src/integration/test_suites/smoke_test_kv_mldsa/caliptra_isr.h new file mode 100644 index 000000000..d9725d729 --- /dev/null +++ b/src/integration/test_suites/smoke_test_kv_mldsa/caliptra_isr.h @@ -0,0 +1,132 @@ +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// --------------------------------------------------------------------- +// File: caliptra_isr.h +// Description: +// Provides function declarations for use by external test files, so +// that the ISR functionality may behave like a library. +// TODO: +// This header file includes inline function definitions for event and +// test specific interrupt service behavior, so it should be copied and +// modified for each test. +// --------------------------------------------------------------------- + +#ifndef CALIPTRA_ISR_H + #define CALIPTRA_ISR_H + +#define EN_ISR_PRINTS 1 + +#include "caliptra_defines.h" +#include +#include "printf.h" + +/* --------------- symbols/typedefs --------------- */ +typedef struct { + uint32_t doe_error; + uint32_t doe_notif; + uint32_t ecc_error; + uint32_t ecc_notif; + uint32_t hmac_error; + uint32_t hmac_notif; + uint32_t kv_error; + uint32_t kv_notif; + uint32_t sha512_error; + uint32_t sha512_notif; + uint32_t sha256_error; + uint32_t sha256_notif; + uint32_t qspi_error; + uint32_t qspi_notif; + uint32_t uart_error; + uint32_t uart_notif; + uint32_t i3c_error; + uint32_t i3c_notif; + uint32_t soc_ifc_error; + 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 axi_dma_error; + uint32_t axi_dma_notif; +} caliptra_intr_received_s; //TODO: add mldsa intr +extern volatile caliptra_intr_received_s cptra_intr_rcv; + +////////////////////////////////////////////////////////////////////////////// +// Function Declarations +// + +// Performs all the CSR setup to configure and enable vectored external interrupts +void init_interrupts(void); + +// These inline functions are used to insert event-specific functionality into the +// otherwise generic ISR that gets laid down by the parameterized macro "nonstd_veer_isr" +inline void service_doe_error_intr() {return;} +inline void service_doe_notif_intr() {return; +} + +inline void service_ecc_error_intr() {return;} +inline void service_ecc_notif_intr() {return; +} + +inline void service_hmac_error_intr() {return;} +inline void service_hmac_notif_intr() {return; +} + +inline void service_kv_error_intr() {return;} +inline void service_kv_notif_intr() {return;} +inline void service_sha512_error_intr() {return;} +inline void service_sha512_notif_intr() {return; +} + +inline void service_sha256_error_intr() {return;} +inline void service_sha256_notif_intr() {return; +} + +inline void service_qspi_error_intr() {return;} +inline void service_qspi_notif_intr() {return;} +inline void service_uart_error_intr() {return;} +inline void service_uart_notif_intr() {return;} +inline void service_i3c_error_intr() {return;} +inline void service_i3c_notif_intr() {return;} + +inline void service_soc_ifc_error_intr() {return; +} + +inline void service_soc_ifc_notif_intr () {return; +} + +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() { + uint32_t * reg = (uint32_t *) (CLP_MLDSA_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); + uint32_t sts = *reg; + /* Write 1 to Clear the pending interrupt */ + if (sts & MLDSA_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { + *reg = MLDSA_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; + cptra_intr_rcv.mldsa_notif |= MLDSA_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; + } + if (sts == 0) { + VPRINTF(ERROR,"bad mldsa_notif_intr sts:%x\n", sts); + SEND_STDOUT_CTRL(0x1); + while(1); + } +} +inline void service_axi_dma_error_intr() {return;} +inline void service_axi_dma_notif_intr() {return;} + +#endif //CALIPTRA_ISR_H diff --git a/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.c b/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.c new file mode 100644 index 000000000..869faf026 --- /dev/null +++ b/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.c @@ -0,0 +1,3256 @@ +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include "caliptra_defines.h" +#include "caliptra_isr.h" +#include "riscv_hw_if.h" +#include "riscv-csr.h" +#include "printf.h" +#include "mldsa.h" + +volatile char* stdout = (char *)STDOUT; +volatile uint32_t intr_count = 0; +#ifdef CPT_VERBOSITY + enum printf_verbosity verbosity_g = CPT_VERBOSITY; +#else + enum printf_verbosity verbosity_g = LOW; +#endif + +volatile caliptra_intr_received_s cptra_intr_rcv = { + .doe_error = 0, + .doe_notif = 0, + .ecc_error = 0, + .ecc_notif = 0, + .hmac_error = 0, + .hmac_notif = 0, + .kv_error = 0, + .kv_notif = 0, + .sha512_error = 0, + .sha512_notif = 0, + .sha256_error = 0, + .sha256_notif = 0, + .qspi_error = 0, + .qspi_notif = 0, + .uart_error = 0, + .uart_notif = 0, + .i3c_error = 0, + .i3c_notif = 0, + .soc_ifc_error = 0, + .soc_ifc_notif = 0, + .sha512_acc_error = 0, + .sha512_acc_notif = 0, + .mldsa_error = 0, + .mldsa_notif = 0, + .axi_dma_notif = 0, + .axi_dma_error = 0, +}; + + +void main() { + printf("----------------------------------\n"); + printf(" Running MLDSA Smoke Test !!\n"); + printf("----------------------------------\n"); + + uint32_t mldsa_msg[] = {0xafbdf91c, +0x942b5eb7, +0x3b7cc474, +0xe53c0521, +0x3fa41e7a, +0x2a826c58, +0x812f3065, +0xe7a289a6, +0xbee9169d, +0x145d9c81, +0xfbab6bbf, +0x7cb65e26, +0xd31d734e, +0x755d7aba, +0xb5db81ed, +0x9290fb80}; + + + +uint32_t mldsa_privkey[] = {0x75A8F4C9, +0x56C0D7DA, +0x6C7FE78F, +0xB03E722E, +0xD1FC4F2A, +0x5E244960, +0x0E616F61, +0x995A4A88, +0x6CC78EC2, +0x951CB85C, +0xEA8AD554, +0xF2BD8E5F, +0x41711246, +0x91225DB8, +0x3ACBA371, +0x8A8D7A58, +0xB3350F28, +0x761D9044, +0x8D83F17D, +0x0DD25DB8, +0xE6C97CC0, +0x7F7BED1E, +0xB59DFCAF, +0x2D7FC3C2, +0xBB2F81C8, +0xDF94AF42, +0x27242980, +0xE27B71F5, +0x373E3E1F, +0x51B55491, +0x477F2839, +0x27792DCA, +0x54268CCC, +0x32469996, +0x50CA0084, +0x002651C9, +0x18110BB1, +0x91034986, +0x59220844, +0x2050DC00, +0x5121B504, +0x9030650C, +0x4068D3A4, +0x1101060E, +0x62A83152, +0xC8051C08, +0x88D0282C, +0x49C80D13, +0xA940CA24, +0x4682A220, +0x23A77098, +0x8620D224, +0x418A3872, +0x09A22962, +0x284199A0, +0x111B3209, +0x9A86511A, +0x89400125, +0x9193A60D, +0xE3244D01, +0x306E9916, +0x6604C465, +0xA4C06801, +0xC0116292, +0x4522A511, +0x5A180600, +0x218E5A06, +0x255CA611, +0x63A48DE2, +0x362583C4, +0x4121154A, +0x9CA28901, +0x23885812, +0x918BA024, +0x42184ECC, +0x447064B2, +0x25C28604, +0x2243095A, +0x0049E204, +0x4C99A250, +0x50B44863, +0x148A81C6, +0x2D441401, +0xE2A48D1B, +0x258421B0, +0x11840605, +0x5396518C, +0x18600CA6, +0x44142512, +0x5B460893, +0x2886CB36, +0x805C9001, +0xE2B22998, +0x480604C7, +0x45139524, +0x4B284CA2, +0x148684B2, +0x31A2808D, +0x59B2010B, +0x02451091, +0x50C28609, +0x98324810, +0x97290CA4, +0x2592A665, +0x09864DD3, +0x34248C36, +0x21DB3406, +0x4B96408A, +0x146650C4, +0x0022094E, +0xDC964981, +0xA221D942, +0x450BA865, +0x62088DD2, +0x24060B16, +0x8DE31661, +0x9098300A, +0x0291CB26, +0x6A992881, +0x4AB688E2, +0xC851E2A8, +0x85543442, +0x40A6705B, +0xB8082118, +0x8401842D, +0x14084DA1, +0xA0204908, +0x09C82252, +0x6296088C, +0x92482289, +0x4DE24491, +0x12322A1C, +0x80609200, +0x89DC322A, +0xD1164198, +0x0680DB24, +0x05131609, +0xD4B88C89, +0x98112480, +0x65544830, +0x10244ED0, +0x12512303, +0x529A4666, +0x04445151, +0xB0850B47, +0x26D8940D, +0x543802DA, +0x08004B46, +0x32208785, +0x63B851DC, +0x30096432, +0x51549205, +0x9242101C, +0x1228C940, +0x6E98868D, +0x1B978C61, +0x064A4040, +0x4E99120E, +0x59066181, +0xC68D42C2, +0x04099411, +0x10868D58, +0xA4714AC6, +0x61810051, +0x13A791D8, +0x04261C11, +0x50E4900C, +0x93880991, +0x36256130, +0x2C594660, +0x00460402, +0xA7441C87, +0x6000C60D, +0xD8268E90, +0x342801A5, +0x600BA851, +0x890469E1, +0x00311938, +0x50A0904D, +0x80B43120, +0x8271C310, +0x621BC000, +0xD91030E3, +0x366861A0, +0x00242846, +0x52340119, +0x328001A6, +0x80C2C631, +0xDB90294C, +0x88492048, +0x05639069, +0x10303211, +0x062ACAA8, +0x60829429, +0x1A3792A1, +0x04695B48, +0x5002496A, +0x0AC20DD4, +0x08520106, +0x0EA1B22D, +0x02284251, +0x00308812, +0x86880248, +0x49A62063, +0x824D5AB8, +0x2404A070, +0x64282124, +0x218C5124, +0x461A306D, +0x12432043, +0x288C8806, +0x8020C640, +0xC31606D8, +0xB4515024, +0x52D0100C, +0x02B74C1B, +0x30509318, +0x91040406, +0xC9C08C92, +0x80651149, +0x2E123581, +0x44A88084, +0x2430C886, +0x41DA0245, +0x44B091C0, +0x90319902, +0x60123150, +0x53C288D3, +0xB60062B8, +0x705C9409, +0x1BA66001, +0x09050B41, +0x90514442, +0x2440415C, +0x9005D100, +0x4A04B441, +0xDCB29190, +0x4032C9B2, +0x701BC690, +0xE2C24548, +0xC44890C8, +0x2920296E, +0x21426C81, +0x800D2139, +0x4013B985, +0xD4B45199, +0x8491DC86, +0x0110230A, +0x82802890, +0x9211CB40, +0x4111C009, +0x60486D61, +0x460C8C90, +0x01490048, +0xD9004811, +0x08619824, +0x24500041, +0x03B83108, +0x86488302, +0x0524C160, +0x64C60D41, +0x02259120, +0x6D209791, +0xD2449141, +0x4440CC38, +0x9048424A, +0x1C321102, +0x45265A82, +0x50840270, +0x88B66811, +0x10621B07, +0x22234946, +0x81960C23, +0x383149C2, +0x89DAB865, +0x4A9864D9, +0x08401206, +0x6A101301, +0x5A3042DC, +0xB081C484, +0x40CB8624, +0x14490658, +0x886D1380, +0x1108A064, +0xD996800C, +0x165061A6, +0x4542308A, +0x11936C1A, +0x14824426, +0x0D429841, +0xA2A60800, +0x87484332, +0x4A23066E, +0x1C3061C2, +0x28620207, +0x600B8780, +0x53328E19, +0xC88CE084, +0x2111478A, +0x5244449B, +0x166C5880, +0x21C8048D, +0x20062409, +0xC8104B94, +0x68A10030, +0x14920C09, +0x122E4182, +0x805CA24D, +0xD2340E44, +0x908C4844, +0x91214000, +0x01C96809, +0x036CD328, +0x094B0806, +0xD806098C, +0x20801010, +0x48E12851, +0x438600D4, +0xB0018B14, +0x0C20B671, +0x12B7110C, +0x4020D300, +0x0862088A, +0x62266503, +0x28425922, +0x11488230, +0x21C46C1C, +0x25821A21, +0x0D03A82D, +0xDAA011A0, +0x22702003, +0x48419070, +0xD0160DE0, +0x484D8418, +0x4A9A1844, +0x8CC24920, +0x394C19A5, +0x4102C744, +0x1A2852DB, +0x86712434, +0x04943010, +0x21026181, +0x940C23C8, +0x81819640, +0x23151251, +0x3408A440, +0x8E8CB851, +0xA02282DA, +0x424620C8, +0x69CC8801, +0x20A6881A, +0xC96D4B92, +0x8853B84C, +0x90124A09, +0x094D5006, +0x8AA0C280, +0x62466940, +0x4880DC48, +0x66D43002, +0x0A366A20, +0xC631CB28, +0x52223930, +0x88A2080B, +0x32104014, +0x29A42868, +0x23028DD4, +0x108E02C3, +0x2484262A, +0x04B4450B, +0x494D8020, +0x45001162, +0x0C40840B, +0x39490434, +0x508A3806, +0x0A2645C8, +0x1644E094, +0x30114201, +0x01B76864, +0x82104A38, +0x120AB845, +0xD4C260E0, +0x0262CC30, +0x898B3629, +0xA1C82821, +0x09216434, +0x4261962D, +0xD1040081, +0x10455238, +0x4400232E, +0x14188E18, +0xB4098136, +0x4E604671, +0xA46666E7, +0xC3EDEF33, +0xD3BB22D2, +0x66AF551A, +0x9E8D856C, +0x8B9E6826, +0xA77B04BD, +0x5EE6373C, +0xA783F6BB, +0xCC93274A, +0x40DE303B, +0x27F24F07, +0x7EA155FF, +0x532CF96D, +0x668FF300, +0xED79A8CB, +0x199DE6D5, +0xE809AC4F, +0xD59187BC, +0x048E2C0D, +0x7958A09F, +0xF88C8207, +0x2AD300DF, +0xEB310D7B, +0x43577645, +0x99E8E72D, +0xBF6F48B9, +0x4F861728, +0x3E244EF8, +0x312DB99A, +0x36891E84, +0x8FE631B2, +0x7F095E4B, +0x4A140758, +0xA319CB19, +0x3BA87688, +0x31A849F5, +0x6C0D14FB, +0xDE09CC90, +0x4FFD6EFB, +0x8681DB22, +0x8AF4A2C6, +0x1CAF571A, +0x39CA3E53, +0xF9613AEA, +0x0F7DBAC8, +0x750352F0, +0xDA0806D4, +0x8602D4C8, +0x89F36371, +0x96A0A683, +0xD3A5603A, +0xB458BC36, +0x698989C4, +0x5BBA3C5B, +0xB23D80CF, +0xC58E2320, +0x492F49A9, +0xFE78FF59, +0xA1B2C81C, +0xC5D8F5E0, +0xEF55ECD4, +0x5EEF5F56, +0x337023AF, +0xA797EEA5, +0x2164FBE7, +0x06C8D922, +0xBFA0E641, +0xED31B8E9, +0x7F6DCAD6, +0xE37A6D41, +0xF14B5D98, +0xF94F9C82, +0xBDDC5E3C, +0xA0942E97, +0xEF10CE4E, +0x530BBF9E, +0x3EFE6B7A, +0x0BB89AE4, +0x4F1EEDD0, +0x72C1950F, +0x116327FD, +0x0007E53F, +0x6BF49D98, +0x5EF5598E, +0x43B4DEEB, +0x51D91D0B, +0xF4827B41, +0xE08DEC27, +0x3E148A35, +0xE97EE54A, +0xEAA4CFFC, +0xE575AE51, +0x79CC38D5, +0x6A494A33, +0x102FC319, +0xBBC0C88B, +0x5746C9FF, +0xDA533C7A, +0xFD95B7F4, +0x2C1E3276, +0x8DD7C63C, +0x9B1E7932, +0x9005EA3C, +0x06C16576, +0x8EA6F13F, +0x39010409, +0xD1501FA0, +0x88AF59A0, +0xBE340D54, +0x269F76BD, +0x79143770, +0x495769F6, +0x8505BBE4, +0xDFEBDD7F, +0xCB40032C, +0x668530E0, +0x12446F7B, +0x91669A07, +0x0B41C1C9, +0xE80DC01E, +0x1B3E4A8B, +0x6A4C38CA, +0xBCACB226, +0xE0319DCB, +0x174525E7, +0x50E96E43, +0xE76991B0, +0x43711549, +0x667942BC, +0xC13B9303, +0x22A86D18, +0x214C0822, +0xEDDA5108, +0x56916287, +0xEC59A739, +0xD2122ED1, +0xCD0D0454, +0xA7A12BCC, +0x1F6E261A, +0xA8277038, +0x4C96A78D, +0x2128EF6B, +0xDA7236BC, +0xF6D266CE, +0xC43B64C5, +0x5F7F66CD, +0x85E36246, +0xC8D52226, +0xCF123408, +0x7CF6336B, +0xFC0638D5, +0x3EC9E742, +0x016E5945, +0x46C730EB, +0x4E384E5B, +0x65EC5747, +0x7BE6A51D, +0x08B55391, +0x32BFB5FD, +0xABCB5D75, +0xD844700D, +0x55736504, +0x0CF15B6A, +0x3E44F155, +0xE0399C91, +0xE9EBAA29, +0x8F83CC33, +0x0E211D96, +0xA385A4D8, +0xC2B58B1C, +0x7D062AEB, +0x8FEE64BC, +0xB71DFA2A, +0x95C63764, +0x60B8712D, +0x198A1124, +0x9474FBCC, +0x842EBB83, +0x3302C2F8, +0x7C05AA86, +0x95A24D4F, +0xBB61222E, +0x9A652C0E, +0x6F83124A, +0x9718A78E, +0x3CA5B7E9, +0x95A0FD5B, +0x5779A52D, +0xBCD62A42, +0xA74282B9, +0x50E2012E, +0x34B442B6, +0xC3CDC698, +0x98BFC724, +0x51F2BAD9, +0x203F1688, +0x70ACF5E4, +0xDEC7C73A, +0xAA424876, +0x32797973, +0xC02576C0, +0x559069BC, +0xE9D1DEB7, +0xDE83EC3C, +0xA392EA23, +0x61A01B4C, +0x499819B8, +0x7955B4D2, +0xCADCE486, +0x12435ABC, +0x565045C8, +0x07174AE4, +0xE0CD6F0F, +0x1B4A2B2A, +0x68E0DE6C, +0xC43D3A43, +0x0866B0A9, +0x661D25A4, +0xC61F3930, +0x9DE0A73C, +0xAC07FF3F, +0x8EF9FF37, +0x5ADB5636, +0x68E7B24A, +0x57975396, +0x8776398A, +0x03985540, +0x439D882E, +0x5DA790FB, +0xC48C1602, +0xACBBB26A, +0x19A8FF7E, +0x40142DD5, +0xC04F8A58, +0x030AD3EC, +0x73D93CC8, +0x36FB33EB, +0x367AB837, +0xDCB2853B, +0xC8A920AB, +0x88DA45D3, +0x4EC9FAC7, +0x6E4C641D, +0xC9B024F6, +0x8C4C49D0, +0xF850FB19, +0x8AC08844, +0x2A489626, +0x5E638CF4, +0xDF499729, +0xB8EAB5A3, +0xD118066C, +0xA4041D79, +0x33708534, +0x8072FCDF, +0xED2F52E4, +0xE68A8EA9, +0xF7B517EC, +0xD1FB9FF2, +0xF4CECC47, +0x9DD3F6B0, +0x27AD0667, +0xECA482BE, +0xC3B66366, +0x70001679, +0xC98E2DE0, +0x0330FA4C, +0x52B88C7B, +0x3247D62B, +0x39AFD734, +0x5A3F21C9, +0xB67AD2C0, +0x401DE77C, +0x97F61E57, +0x82871136, +0x1AB5DD13, +0x0EF4E39D, +0xF62D6FAD, +0xC9332456, +0x4BE89DFF, +0x54514589, +0xE5D86920, +0x9F475CA5, +0xAA709643, +0xE34163DC, +0xF2F2543D, +0x7FEFD090, +0xFE5B879C, +0x45BBACEE, +0x50F4DC22, +0xE534D0E5, +0xACE33A38, +0xE52799D6, +0x4A28D647, +0xD01A3B9B, +0x2209D8D4, +0xB404D7E6, +0x685E77D3, +0xBD3AE5D9, +0xF8B92CE0, +0x75242638, +0xA443253C, +0xB8BD3B23, +0xF5722F56, +0x9F413F4C, +0x4101FDDC, +0x2CCB2869, +0x5FFBEA86, +0xB0C6B640, +0x26870C90, +0x9C9F6E51, +0x742204B1, +0xA97799C0, +0xDC6192DB, +0x410BADA1, +0x6AD8A837, +0x66D446C8, +0xB5E78849, +0x1095ADE0, +0x86A1D72B, +0x7A675AF5, +0x680367A9, +0x662B25C1, +0x778A838D, +0x861BA0CC, +0xC332F9BC, +0x77B38855, +0xECBC6850, +0x35820A93, +0x4C65568B, +0x27264253, +0xA0054ED9, +0xC89F6562, +0x8EB52E3D, +0x89AD8348, +0x58191987, +0xFAF8AE0B, +0x26FE6CCC, +0x3189863B, +0x828C2E5D, +0x76896EAC, +0x16431FC7, +0x427A3B8A, +0xB22A172C, +0x4511582D, +0xEA87A24A, +0xDB9746C8, +0xD562293C, +0x86F7BB0E, +0x9352D075, +0x0F6BF6D9, +0x5705E550, +0x66D33798, +0x785E4045, +0xB52D3655, +0x51CA9699, +0x45760693, +0x1535215E, +0x601E00B3, +0x354D5947, +0x204A4132, +0x89F914C9, +0x635DAB78, +0x7F8709A2, +0xE2A18A91, +0xA9DFCBDB, +0x89E976BF, +0xB5A8164C, +0xD74AF910, +0xA653F1E6, +0x963AFE79, +0x4BDD11CC, +0x6A43A8ED, +0x9D944C92, +0x4B05D17A, +0x4A578BC8, +0xCEC95C9F, +0x4D022263, +0x0D781CEA, +0x802FD7E0, +0x374640DE, +0x287D182B, +0x49312E6F, +0xA1E59948, +0xAF753C5E, +0x71AC862C, +0x42761C2B, +0x29B99D26, +0xE6F90176, +0xDFDB689A, +0x46628A37, +0x83C47D0E, +0x55EC089F, +0x5EC8E950, +0x6D10F218, +0xFE48F8B4, +0x19DBCE81, +0x6F18B66B, +0x60A25769, +0xF74E3BB1, +0xCCFE197D, +0x44D9F593, +0xBB2A2469, +0x64A0C3F9, +0xA8432CC9, +0xA4F1E121, +0x27E28ADA, +0x6201A41C, +0x50FAA872, +0x25F9682E, +0xCAADFCA1, +0xA8000EED, +0xEEF33B96, +0x11D2ED7D, +0x2EA2E1A2, +0xDCD34A44, +0x69328123, +0x9DE958AC, +0x55FA4D7B, +0x5CD84F6F, +0xC59FC0B8, +0xB136285A, +0x324B67D1, +0xF494F017, +0x839A026C, +0x44A7CC39, +0x93A979A6, +0xF9C8067C, +0x8E884C34, +0xEC6992EA, +0x0071E5D0, +0x7C107569, +0x5700A9C9, +0xAB84C9A5, +0x3F55D14D, +0x90D6ABCA, +0xA03FECBF, +0xFA0CE0DF, +0xFC2E1D34, +0x69985EBC, +0x98F75A76, +0xFF610A0B, +0x90F82DC4, +0x5058665A, +0xAAABD2F9, +0xAA753522, +0xC26659F5, +0x7FFE8D56, +0x8167E7C5, +0x107B4D04, +0xD823EB8E, +0xDEEE7D05, +0x7C381541, +0x950E13EA, +0xF62B54DE, +0x03FDDAD6, +0x044D6B47, +0x8913E674, +0x735A21B9, +0x47FFB28C, +0xC840D359, +0x73B7A599, +0x9789BA06, +0x512F2C9E, +0xF1A1E093, +0x752F4A94, +0x4AB19397, +0xCC2F8E0E, +0xE77E49C9, +0x05C42091, +0xC07EDAB5, +0x44BE8449, +0x05C2338E, +0x1400F51A, +0x18FE4256, +0x911BA3CC, +0x35CFE147, +0x029F0396, +0xA5D81FBE, +0x38FC18E9, +0xABFCC512, +0xB173E2D1, +0xA81DF25F, +0xE81F20AD, +0x07F782F6, +0x08C906FE, +0x3294B0FB, +0x0EC6D022, +0xE02B3153, +0xDC81161F, +0xFCEC3F5B, +0xF11719DC, +0xFB42492F, +0xCCFA33FD, +0xD66E0727, +0x240C4772, +0x3BD3E904, +0x83D0DA00, +0x2B7E672E, +0x9CD6D0E0, +0xB9140C5B, +0x5DFB6691, +0x33ED958D, +0x67D8776D, +0x6627246D, +0x4691025D, +0x309E5FA0, +0x8554DBC4, +0x87776898, +0x3C024510, +0x280151AF, +0xD429F437, +0xEC329C82, +0x6644BDD5, +0xA2C7E121, +0x5C682E07, +0xABDB7F23, +0x23F83C9E, +0x6562A9F9, +0xED195F97, +0x9BD22A40, +0x625D69AD, +0x544DBA34, +0x52157683, +0x2CB72049, +0x58CC800B, +0xAB4207E6, +0xAEC8B356, +0x8F1EB5F2, +0x549D7C07, +0x9249963C, +0x86F847EE, +0x2688C24B, +0xE4E95ED9, +0xF2B5B49F, +0xA5A415A9, +0x02ABF372, +0x79A16B95, +0x2BA393E5, +0xFA14DC15, +0xBA1D056B, +0xDA84824C, +0x7DAD55A5, +0xF0F810F3, +0x4D046A02, +0x4A842128, +0x31B37F91, +0x2C326FFF, +0xAD7DEC9B, +0xE81B44C0, +0x989E88C3, +0x7C2EFFEC, +0x74BBA627, +0xFEB61B12, +0xD7D0DD8B, +0x372AF5E5, +0x235E9FB0, +0x3FE1D340, +0xCBCE8F89, +0x0CA41CAD, +0xAB4E39F3, +0x00C05929, +0x3E714CD1, +0xE1545EF6, +0x80D0F81E, +0xC330BE8E, +0xEC657372, +0x28329E89, +0xFC877BC4, +0x618FB09E, +0x07FB8603, +0xCAEE7B18, +0x010C362E, +0x197B969C, +0xA949B2FD, +0x9DF1EB0A, +0xE0D2E2E9, +0x0049C1C1, +0xAB0187AE, +0x7900743F, +0x9F62AD7F, +0xF980FADB, +0x9B704719, +0x13F730CD, +0x9939F921, +0xC6277996, +0x360904FD, +0x43B61341, +0x1BDE79EC, +0x0106767B, +0xF36FC478, +0xC63754B5, +0x2D9578E2, +0xD1132110, +0x5B921F4A, +0xC2C89F7F, +0x22CF9DD8, +0x645FC283, +0xE3E1E33F, +0xD8BC1E15, +0x4C3FE314, +0xEEAB254A, +0x32465178, +0x3537BA88, +0xFFD0C6C2, +0x778B39A4, +0xB69D5A9A, +0xB9A1504E, +0x8C229422, +0x17E7445B, +0x33901080, +0x1B6EB3F1, +0xB9A14EF5, +0xFAC78BF2, +0xE5325041, +0xF58C5750, +0xA8913C7A, +0x2D9ABBCC, +0xFD713B81, +0x75C7E995, +0x4DC80E8A, +0x0157DC00, +0x2D602BBE, +0xE1F2CEB2, +0x7202DE0E, +0xB2DA573B, +0x78EC3E18, +0x31847042, +0x98C8FDEC, +0x6D720DE5, +0x33400C23, +0x48CEDCBD, +0xAADC77B8, +0x1322E5F1, +0xF8C5F762, +0x6FAFFF90, +0x54C770BD, +0xE6B40CB6, +0x781E2B59, +0xF88DA77D, +0x51AE942C, +0x8A866D60, +0x602F842F, +0xB565963B, +0x9A6BED84, +0xEE933923, +0x28930330, +0x59EE1342, +0xBE69F6BC, +0x234CB711, +0x2FB06D62, +0xCA58E66F, +0xE71EF4F2, +0x52D4A6B9, +0x6AB3A870, +0x90D99460, +0x78FC8C7B, +0xA42529D5, +0xADE2E058, +0x449E1A51, +0x1D69CC5F, +0x59D554B5, +0xA084CEC9, +0x7A707873, +0x91D8801C, +0x3FC2D1D8, +0x05BB34F6, +0xE7C0D6AD, +0x64656A77, +0x001F8C32, +0x5F35B671, +0xD30026D3, +0x80E88452, +0xB0994E2C, +0xC6C65AFD, +0x5FC3BD84, +0x77793CFD, +0x75251601, +0xA0D83A02, +0x71A1EB93, +0x56BF0D15, +0x0938D6A7, +0x783625EB, +0x40D0981A, +0xE8471C34, +0x99360A37, +0xC6FD1571, +0x3C904D53, +0x01DD799A, +0x4DDE2EA0, +0xAF6F3062, +0xCD407FF4, +0xE6471428, +0x8DF7269D, +0xF0D6E645, +0xCC015ABE, +0xC5B80321, +0x54C305FD, +0x698CAF15, +0x4E4A9FEE, +0x366F81B8, +0xE94B9764, +0x1A80380F, +0x2BFBAE1D, +0x9B3E441C, +0x8FBB5E9D, +0x17C36281, +0xB6E7357B, +0x1475FB07, +0xCFE27444, +0x89B4005D, +0x36D68B05, +0x3AE414A3, +0xABAFDABF, +0x6FBEFBA8, +0x698D202A, +0x3419EB54, +0x93DBDB1D, +0x3AA8E3D1, +0x5B5F00C4, +0xD63DACB7, +0xC12EB59D, +0xCA01B758, +0x75F39F4E, +0xC58D4D06, +0x38CC4BF8, +0x0B095023, +0x7C059C4D, +0x94269FFA, +0x0A6BEC85, +0x0FDE9CE9, +0xA602F3A7, +0xAA920062, +0x88D26D7E, +0x46D5283F, +0x2A1ECAA3, +0x9D96F234, +0x1A764985, +0xEC2E77BB, +0x2ACE8ECF, +0xEA13056C, +0x4FB82CC7, +0xCAF73AEB, +0xED283CB0, +0x9325DEEF, +0x5CD31C16, +0x718FAD00, +0xC30582DA, +0xC8DA374C, +0xE8F3522E, +0xA2751B28, +0x0B510445, +0x6E15B45F, +0x453FC276, +0x25BDE9D4, +0x2FF360C6, +0x8C6C469C, +0x75EE9F2F, +0x33790891, +0xB57444C2, +0x7C04030E, +0x8A9AFAB3, +0x4ACB6765, +0x9C1680F4, +0x2B5542A9, +0x9E7F174C, +0xD0B0449C, +0x18962466, +0x32A547F2, +0x2DAA7675, +0xEF737436, +0xDC13ABAD, +0xF2D318A9, +0x23BE7233, +0xAFC1C12B, +0xE2B68D6B, +0x07F394AC, +0xF9F1C21E, +0x5DED418E, +0x01EC49E4, +0x1332E9CF, +0x181224B1, +0x7CA718C5, +0x92271AF1, +0x8E76C50C, +0xD2231777, +0xC196A3C0, +0x0A9457E5, +0x3799AD6E, +0xA5B2F07E, +0x91CEAB58, +0x750FEB32, +0x5DA820CE, +0xE2882685, +0x35D0A9DA, +0x8762C754, +0xCF5E23E7, +0x239C5CDB, +0x8F9B7E95, +0x4D43C8D2, +0x3986E19C, +0x3F19F7DB, +0xB8208A3B, +0x7FAE5E3A, +0x4B36BD49, +0x9E847243, +0x45246038, +0x447BAA41, +0xFCC6727D, +0xF8CB273A, +0x98E5AA23, +0xB47FC976, +0xDDA9E361, +0xE58E332B, +0x96DAC60B, +0x54D8F6CF, +0x1DB959D0, +0xC32685BC, +0xA75C66D7, +0x46DDD40C, +0xAADCC15B, +0xCA8F1AA8, +0x654088BC, +0xBBB8B2A0, +0x9333D0C8, +0x2D11F813, +0x3DE13404, +0x6EAB0404, +0x73F1A98F, +0xB11E5DBA, +0x50F09FA7}; + + + uint32_t mldsa_seed[] = {0x0a004093, +0x27d15f67, +0x121d0737, +0xd5e4ce3f, +0x28fe43a2, +0xd4f06807, +0x858a7646, +0x9cf85c2d}; + + + uint32_t mldsa_sign_rnd[] = {0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000}; //deterministic signature + + + uint32_t mldsa_sign[] = {0x89E8DA09, +0xEDD3600C, +0x15A06D5B, +0x5CBCA92C, +0xADF08F43, +0x13D0C0E2, +0xB23E24B3, +0x29EEBD1D, +0x81DE6DEA, +0xE3F36797, +0xA494BA21, +0x21E0A274, +0xC3988770, +0x902E2CB3, +0x25B79FD1, +0xC6ED2197, +0xA6386D50, +0x174548C5, +0xEAC449A1, +0x166F864D, +0xCC6A72C6, +0x9CE883B7, +0x83496A8F, +0xB7D7CAC3, +0x11499633, +0x7082E3D4, +0x5913F541, +0x51184FAF, +0x4CC4A45E, +0x71055E82, +0xE1F07279, +0x006278D0, +0x0F427C13, +0x85800609, +0x418D46A6, +0xAC9EFC88, +0xE65C6532, +0xF2951B4C, +0x54A3EBAC, +0x4ABD047E, +0x9DBAD4AC, +0xBF9F1B67, +0xF53CDAE7, +0xC95D59CD, +0xE964C7F1, +0x644B2F2A, +0x2F2F3E1F, +0x8AEAEFE0, +0xFE7F6BF6, +0x20E04ECF, +0xD0C6409F, +0xABFC7105, +0x5B31BFC1, +0x24441C38, +0x8DF7B277, +0xDFF16EAA, +0xAD598580, +0x7DA36100, +0x7E316364, +0x6F44541A, +0x623271B2, +0x4ADB351C, +0xF68BAC7E, +0xBECF63B6, +0xC0ADDCF8, +0x0EE0440B, +0xD7946E95, +0xF188C2DE, +0xC36D3295, +0x24DC1B46, +0x738FB3FF, +0x0DA06FD3, +0x94424842, +0x2394569D, +0x3CFA33E6, +0x5CAB3E8C, +0x61DA6256, +0xDD396995, +0xBDEB151A, +0x5B7CDF42, +0x9914F35F, +0xFA6B7968, +0x07D70426, +0x715AF96B, +0x379DAE93, +0x0D51A071, +0x7817CBDA, +0x0EF43F0E, +0xA2BEDE04, +0xD9FD2C72, +0x870F2B81, +0x2818333C, +0x5EA491C3, +0x44F4D359, +0xEFFC9198, +0x4809A74E, +0x431DFEB0, +0x5EFA1BA6, +0x6924E4DE, +0xBA91E970, +0xA3ACBB2B, +0x34E27209, +0x2E18C4FF, +0x4CCB7302, +0xC0067CE9, +0x23C68C23, +0x3AAE99B7, +0x090B7038, +0xCEFA82AB, +0x19A34B94, +0xD21FC70A, +0x8AEDBF26, +0xC8F2A4A4, +0xB74126E3, +0xA5E48857, +0x9D639ED3, +0x881308E2, +0x5143C2DA, +0x100395CC, +0x9F34CBFB, +0xE6770AE3, +0xD48C52AA, +0x2B9E1E1F, +0xAE2F6518, +0xE1BA8FEE, +0x95A029F7, +0x2385FCBF, +0x1E1FE3E3, +0xAC96EDAF, +0x34510448, +0x0F4CB407, +0x241B52AD, +0x07D896F7, +0x3A12DD51, +0x23402E7F, +0x7D3E1B63, +0x63003B23, +0x88A35170, +0x7836936A, +0x99FC26E5, +0x616583C1, +0x01AB886C, +0x4A4B5191, +0x45509DED, +0xFD6C0BB3, +0x764B0BB3, +0xDF86DBF8, +0x7437232C, +0x63881A74, +0x111058A5, +0xA415CB07, +0x08A20DC1, +0x80391813, +0xD77D9F9F, +0x6E4ECB51, +0x771C101B, +0x2BE44701, +0x676D492E, +0x5318E995, +0xE6A89046, +0x57958A8A, +0xD1B11D6D, +0xEBA66DBD, +0x20D2884E, +0x23818609, +0x571EE590, +0x8698123B, +0x2043D813, +0xF1C61C6C, +0x758CBF58, +0xEEA1D3D3, +0xC7A01FED, +0xE5E782BC, +0xF5DDB9A1, +0xCDA755EC, +0x0606D449, +0x3903E6DF, +0x27AA3279, +0x1BE88127, +0x6FE47A56, +0x2A4FAC53, +0x35CC2BD2, +0x1EBD488D, +0xBED137DF, +0xD288C87D, +0x4B56EED3, +0x0B9A34AB, +0x295061EE, +0xEB0EE5E8, +0x7112B615, +0xE010EA04, +0xDD29A3A0, +0xEE4FFD08, +0x3E4A67DD, +0x320269D7, +0xEFE2AFB7, +0x1E008279, +0xD28ECE96, +0xFC827466, +0x6925A0D3, +0xB42E58E4, +0xEFB621F3, +0xFDF1EF99, +0x87FD3A34, +0x4FC496D0, +0xAFF92EE7, +0x21690155, +0x9685E128, +0xB229A9D1, +0x561179DB, +0xAA0E08C0, +0x86AB8112, +0x09668759, +0x01295419, +0xE93FF5A7, +0x3ABBCA65, +0xBBADB38A, +0xA627FE34, +0xCA63F8A0, +0xEE33DBDF, +0x7D2601FB, +0xD47A7037, +0x86DF040D, +0x84EE16A3, +0xC78304EC, +0x38E4C997, +0x0129FF24, +0x9353BE18, +0x8CCC35F6, +0x8D7BAB00, +0x1A57734A, +0xC93CFBB8, +0x5E48F606, +0x8AFA5F5C, +0x3897B3D2, +0x19470283, +0x856416E1, +0xE256D526, +0x859DF5F4, +0x40C6EAB7, +0xA8615242, +0x9CD9719C, +0x132D6FD9, +0x926B3C69, +0xC55A0153, +0xB938ABCD, +0x31112C82, +0xA75BEF9A, +0x8B74B831, +0x6D61EF73, +0xD357B1F5, +0x41B79B1A, +0x7E13FBDC, +0x019317A5, +0xFB76C8DC, +0x68BAFA3B, +0x8CCA7383, +0x2178D01A, +0x298AFF65, +0xCABAAF18, +0x14750794, +0x2EC8D9A1, +0x5F2559A3, +0x1872BC90, +0x0D4685D2, +0xA6E279ED, +0x7B1220ED, +0x9DB5E329, +0x7CA4CA50, +0x179D93F0, +0x7691B13B, +0x25C68794, +0x2C1E2B50, +0xD78A4BD2, +0x6D191278, +0x9247F1BA, +0xA8283585, +0x2530E9A7, +0xCCAD49C1, +0x706C37A2, +0xE5262A10, +0x56C694AE, +0xB20D37AE, +0x7672051A, +0x6D1896D8, +0xE73C50F5, +0x0F2A8675, +0xCFB6D35A, +0x7D68BE91, +0xE932CC51, +0xD85CA785, +0x60D135AB, +0xFB8EB36F, +0x980AE488, +0x26B932CC, +0x2AC2C8C1, +0xF3C1820A, +0xCEB3BB3E, +0x3084F195, +0x27D3A201, +0xC0168338, +0x9E71ACC7, +0x9AC5843A, +0xB2028B56, +0x897B9057, +0x7BB31BDE, +0x84E6EBC2, +0x6B88B151, +0xCC778A6B, +0x32EE9A2F, +0x6FE05842, +0xD632E709, +0xD409DD2B, +0x2D44FFDB, +0xCA91370A, +0x8E256920, +0xE71F8DF2, +0x5B802766, +0xBEC7D614, +0xF035CA16, +0x045ED88E, +0x3FEC2D8D, +0xFB463F9F, +0xB0CBD719, +0x8F369306, +0xD3520147, +0x77D25526, +0x51416FE3, +0x5ACDA562, +0x2057CEC2, +0x787BAE88, +0x03ED784D, +0x71D661E2, +0xFEC67ED0, +0x963BC98F, +0xD5207C86, +0x40FCB132, +0xC63E89E6, +0x48D01CDD, +0xBE942698, +0xA0B43E10, +0x4D326608, +0xA021B0DD, +0x8F032FD9, +0x15C34E02, +0x33CB6731, +0x62B657D1, +0xFA00B25F, +0xEE1B2F14, +0xA3BB00E4, +0x01A3CEAA, +0xD6F73D75, +0x4CF4E1B6, +0xF890E82B, +0xD5C696A2, +0x35ACF5FC, +0xFF26361B, +0x44151144, +0xDB231EDC, +0x51E46612, +0xAE8E4C6F, +0xA0C65C51, +0x13360E0F, +0x4C0E160A, +0x4960014D, +0x4785FE5A, +0xCCB1A4BF, +0xC20B966C, +0xD291F1E6, +0x7B46CE04, +0xD4E41FC1, +0xAC2E13CA, +0xBB898011, +0x4546825D, +0x2D4E7386, +0xCB7E6766, +0x911D23CE, +0x07A44892, +0x1E7F6C79, +0xE3E7BA56, +0x5D3977D4, +0x6ED87C3A, +0x9FD3AB0C, +0x77ECBE84, +0x46819A49, +0x8A146674, +0xB8670B1F, +0xFAFEBBD8, +0x1AAFA6CD, +0xA9458129, +0xE3AF92D3, +0x3EE0A591, +0x985828B3, +0xD1740C21, +0xFDE5E08D, +0xFCDD5CF0, +0xCFD5919E, +0xDF512FFA, +0xFC4E3EB8, +0x5529DC38, +0x189600F3, +0xFA518710, +0xF0EDA7A0, +0x589FD72C, +0x77C7326F, +0x50C0F219, +0x95DA9862, +0xA7D2B920, +0x5B8701A0, +0xED6E92E8, +0x057913AA, +0x9090433A, +0x08789912, +0x003BB950, +0x863C4CC9, +0x078978BD, +0x390C2B5D, +0xD3D54A3B, +0xB6F03CC3, +0xE2D8F218, +0xD0FD439D, +0xA10BB352, +0x4EA3948D, +0x095FFD3A, +0x8CA08AAE, +0x309C751B, +0xC2C1BB8C, +0x5C706C01, +0xAC1A9302, +0xCCD5AA9C, +0x43FA387A, +0xA7C23EF1, +0xE07E416E, +0x8C8670C8, +0x1FFF314E, +0x554EBA60, +0x41D55DEB, +0x1B43D6A9, +0x180EE59C, +0xD68BE664, +0xAAA1EB13, +0x882D23FA, +0xF98191DF, +0xF594B661, +0xDBFE1CE5, +0x9DE1AAE0, +0x448CE62A, +0x6E2848C0, +0x5224ABBB, +0xFC78C7BE, +0xAB750DD0, +0x12E16F31, +0x23B8BCE1, +0x889E1CFF, +0xA4382909, +0x5774BC31, +0x2C8C7704, +0x797531D0, +0x20BE29E9, +0xB4A46371, +0x47E3C5B9, +0xA3A6D67B, +0x141B4CE0, +0x375BFC3E, +0x1A26B84F, +0x60100330, +0x600B1059, +0x6843A4F1, +0x7A861E46, +0x23C83A75, +0xC89259C1, +0xAFAE640D, +0x829CAAE9, +0xA0EE7D82, +0xE9850353, +0x4C41155C, +0x12033F98, +0x510DE870, +0x86C0DBE6, +0x9AD58DD6, +0x35DAAFCD, +0xBB4C0AE4, +0xC915838A, +0xFEEF4F24, +0x367AD1B7, +0xD0973C30, +0x283ACD3E, +0x80BF236B, +0x56AAACB4, +0xDA8CA9CC, +0x812F62AE, +0xDF7E5EE1, +0xFE6A50D5, +0xAF849B8E, +0xAF90CDCD, +0x9623DE47, +0x4B248EC1, +0xF3A3E323, +0x0EED1484, +0xA38CE390, +0xC9838D1F, +0xF542D7F3, +0x4BA3A940, +0x73121D69, +0x13349F38, +0xA7BA4129, +0xA2620455, +0xD9EA4426, +0xC7B97A15, +0x50F14FB0, +0x0066A5E0, +0x5C7B7E8A, +0x6D5FAF74, +0x11FEB18E, +0xF65E8522, +0x6FBA332E, +0xEA7148AB, +0x4076C2D5, +0x3CD231EF, +0x6EE8FC5A, +0x79C36F8C, +0x8D1BE1AB, +0x4DFACE17, +0x9A544AD4, +0xC8ABF375, +0xD797A82B, +0xC99414ED, +0x072A3B36, +0x1DBADFE0, +0xE4E93D2E, +0x9EC8D0C2, +0x1E4B7AB0, +0x4D332608, +0x552D3047, +0x4ED438E6, +0xA7F0DB05, +0xD4A64960, +0x6DE526AE, +0x30FD5A1E, +0x76B90946, +0x3852D9D4, +0xC1071AD6, +0xD1A1D5E1, +0xE7F5248D, +0x5A291E55, +0xA9C68E38, +0xF5D19138, +0xC874633D, +0x03B02A3C, +0x1BD4B46C, +0xF42F7588, +0x4ECD7D71, +0x04F8894B, +0x22A80E5C, +0x3EBB8853, +0x818440F2, +0x604F810A, +0x17498DC1, +0x1BEA2906, +0x1EDF458A, +0x9EC1C5CA, +0xC2841875, +0x8A11C3C0, +0x587B42F4, +0xED2B4E43, +0xB9A1531F, +0x9FF2C02B, +0x8B2F65F4, +0x9DD5D7EB, +0xEC992F2F, +0x6D78100F, +0xB74FFC6A, +0x58A9CE70, +0x136BF131, +0x27ECE08E, +0x3B732EAE, +0xCEFA0868, +0xA26418B7, +0xE44ADE98, +0x4D67FBC0, +0x96DF8373, +0xD26DB165, +0x280F862A, +0xFCF8F51A, +0xD65722D9, +0x11C8BC01, +0x55BF6994, +0x18470423, +0x453EDACC, +0xCD53C586, +0xA916BE3C, +0x82A41D73, +0x50221680, +0xD6BD5F7D, +0x44F1DF59, +0xD2363902, +0xD427C0D4, +0xB45E0905, +0xAE48877B, +0x0D97E67B, +0x6004F0A9, +0x121914B8, +0x412B820D, +0x909BC25F, +0xDB7008B0, +0xA4853F16, +0x890E7D3E, +0x877056D3, +0x7B356E44, +0xB0FF209E, +0x937D0F6A, +0x1D6C8568, +0xF659DE33, +0x5328CC8C, +0x6C8B20C4, +0x525445E0, +0x5966F06B, +0x92BEBA05, +0xCA68E7A0, +0xEF59F2B4, +0xF02EF2FE, +0xF7F5D074, +0x01CD0DE8, +0x79597D12, +0x430F14E1, +0xBBA4E18E, +0xF5540008, +0x5FCA175B, +0x4C02AADB, +0x6E5FE8E1, +0x84439F68, +0xD7AC734D, +0xC7A97D68, +0x242C2068, +0xB1D34C61, +0x7C98A2D8, +0x667CD34F, +0x88184941, +0x30582C57, +0xA4D97B75, +0xC552D6D2, +0xB29762BA, +0xDABF9E77, +0x5E1D55BE, +0x2FDA872F, +0x5CDE3C8E, +0xBC560B7D, +0xCA032DF1, +0x5D56E300, +0xE5CDC823, +0xE8AEB3C3, +0x5CA51A14, +0xA2F59A4A, +0x566AD127, +0x2BD0A766, +0x59572160, +0x6282F29C, +0x7B06416B, +0x0AB096C4, +0xC591F9A2, +0xD495F3E3, +0x337D108C, +0x7AD2794F, +0x4051B419, +0x19249CDE, +0x0E0761F0, +0xCCCFF6BE, +0x5DD5FCA4, +0x6C37A604, +0xB02E64F9, +0x2D5AC2BC, +0x00BA6F1A, +0xD15C1FE1, +0xFF07FD64, +0x44947F3C, +0x944ED120, +0x0188C322, +0x8254EFA2, +0x76A58D7F, +0x7165F494, +0xA8934101, +0x5CA8D9F0, +0x3F19BC6D, +0xFF099310, +0x009531E1, +0xABE16F21, +0xC0F9C8CE, +0xE5491F8F, +0xEE37669D, +0x6953967C, +0x6889B8E0, +0x2E0C3B8B, +0xF8BDBC75, +0x5C9B0964, +0xF736AD2F, +0x5C2F5377, +0x324AB465, +0x6ECA8A85, +0x41C24F81, +0xBE146C72, +0xF717A9A8, +0x41C7480C, +0x1A7BEDFD, +0x05D98576, +0xE121AE3C, +0x5C9C4AE0, +0x92C688D7, +0x51781700, +0x37ACADB2, +0xF44CA33E, +0x7975B63A, +0x096CC059, +0x361D4CBB, +0x5FED8501, +0xDFFBCC6B, +0x7F1ACEE4, +0x024A7610, +0x9022A71B, +0x09DF6DB8, +0xEC31DDC8, +0x4AF91201, +0x25A3CE04, +0x4E514D28, +0xC653068C, +0xD4E6BBCE, +0x5A059A36, +0x263EFD7E, +0x70B56BC5, +0xD4D14142, +0x545062CC, +0x0FBB391E, +0xB8792F4A, +0xE0FB9B01, +0xCD7C73AB, +0x3CCE203F, +0xDCBF0D76, +0xC7AF2FFA, +0xBC0B4418, +0x4D7360D8, +0x4CA9D29C, +0xB6459603, +0x809B09D7, +0x3D009B89, +0x8015F707, +0xE83D56F5, +0x3C31F4F7, +0xCC1B160E, +0x874C2144, +0x43284491, +0x1341B34B, +0xC16730D7, +0x6F918B02, +0x5308CA11, +0xA05389E2, +0x266E0077, +0x77EA67A7, +0x1A61471C, +0xAD0F7F01, +0x55C12BD0, +0x1E142828, +0x0B070766, +0x4B2DCFFF, +0x2D782F3E, +0x82FE689F, +0xAFE91784, +0xB835C892, +0xBB28D064, +0x2B682465, +0x4E4B3A6B, +0x85D732B7, +0x01C7939A, +0x75CE8E96, +0xD696E39F, +0x52AF214D, +0x1935DA31, +0xFC30E842, +0x90433101, +0xAD901EBF, +0x38FB6D59, +0xE6C992F5, +0x17DBD91B, +0xA6E3BCFB, +0x01F7D04D, +0x7BBCE40A, +0x0A873638, +0x60FF616E, +0x4DCE34AB, +0x497D0219, +0x9C5156BE, +0x5A44D465, +0x7B9143E1, +0xE11EE3DF, +0xD9E5526E, +0x4371AAED, +0x852F036E, +0xBD96F8B5, +0x1BF87894, +0x017CDB0A, +0x4A706B2C, +0x5BF8F639, +0xD5CEC470, +0x6006B0DE, +0x3A1F10C3, +0x9D953950, +0xD22821DC, +0xFCA96BB0, +0x2D421F3B, +0x92CEA881, +0x5C4A7A67, +0x15918223, +0xDAB40193, +0x6FE545EE, +0x94DE85B6, +0x56B22553, +0x2736DEC0, +0x04E55269, +0x6ECC8923, +0xE17A9A80, +0xB136C2B8, +0xA47890EE, +0x06FCB11D, +0xBAE067C9, +0x3CADF37F, +0x3CB5BEDD, +0x0A0BCAEA, +0x0FCDF686, +0x8B6E8365, +0x6D8C2DDA, +0xAC8C5756, +0x30ED4F34, +0x56566951, +0xEE6DE25B, +0x487B6422, +0xEC2BA8EF, +0xB2738D6B, +0xF537B669, +0xDC132C88, +0x27FC3590, +0xCDD36C4B, +0x3ED0F1FE, +0xFF09C081, +0x91B1E553, +0x422560A5, +0x02C21470, +0x050BEB58, +0x26165403, +0xB94D5F19, +0xB01B1772, +0x3B756074, +0x03796B1E, +0x194E879D, +0x255BE6A3, +0x4104D8AE, +0xBCD85AA2, +0x3E7A644E, +0xE704C7C1, +0x436701A4, +0x9364D04A, +0x88A6366B, +0x3206946E, +0x914DB711, +0xDEB99A76, +0x4CC59A67, +0x9F1D4DFA, +0x55692535, +0x3C15DD0A, +0xCF91D666, +0x25944DF4, +0x8F5071B3, +0xBA586803, +0xB61C2E5A, +0x01EA5668, +0x3A88937A, +0x4C08A8CF, +0x57142A3C, +0x4A699CC0, +0x7F489532, +0x761BE4CF, +0x2E7488DB, +0x1FC66CB8, +0x4BA52A4C, +0xDCD4BD61, +0x87D94737, +0x1DB2DCB1, +0x1828F4ED, +0x76CC053D, +0xA3FC3E9C, +0xD50FB719, +0x70CE9428, +0x81AC884F, +0x92BF9F23, +0xA18161FC, +0xD34E2F08, +0x8752E93A, +0x1AFFC8D5, +0x12B80828, +0x7A0AF169, +0x1F7B1A7C, +0xD5C14117, +0x2B2433FC, +0xE9B5EA44, +0xD73A5E5C, +0x2FA9C01F, +0x1FB3853C, +0xA6949D41, +0x71C8A073, +0xC0B89854, +0x75D41DD3, +0x32A5FC47, +0x6D9F1BBA, +0x2FA67D56, +0x04C3ED57, +0x246F53B0, +0xA778DE46, +0xAD8E8305, +0x3A68B97B, +0xDF78581E, +0x2397C2FE, +0xB6E9CF24, +0x1651C4E3, +0x09E17D56, +0xF69F3053, +0x0FA3A033, +0xE9391DDC, +0x2285AF27, +0xC438147B, +0x6241E34F, +0x4597D324, +0x11626E71, +0x2909AB59, +0x5234730B, +0x37A31FEC, +0x01FE0C21, +0xF5940EEE, +0x603BA081, +0xB7C01236, +0x393FD3B1, +0xB1B4C169, +0x0B0A1372, +0xBD1996F6, +0x6EC65A23, +0xF3397943, +0x8F70C9AD, +0x5BC51713, +0xFCC77CF4, +0xDE130464, +0x4860A70F, +0x7A44EEA1, +0x71721BB6, +0x81A9F5DE, +0x3B178C5F, +0x1B0EE934, +0xE28D6E0A, +0x4013C97D, +0xE45ECF41, +0xFE23D2FC, +0xE83E457A, +0x5ED12FC5, +0xDA034CC4, +0x615D0693, +0x4D37F582, +0x57CDC999, +0x9F3AA3DA, +0x4AA45F8F, +0x61D5BD81, +0x8788FEF8, +0xD04C26BC, +0xBFF07B86, +0x5C000D7A, +0x56B8105F, +0x721CF12E, +0x2183FF0F, +0xC0857D5E, +0xEEEF0AB1, +0x41A3089F, +0xBA9E9E48, +0x86B2C7FF, +0xDFC4D95A, +0x44FB3541, +0x527F7165, +0xF14E0B09, +0xDC9BF512, +0x54E06D15, +0x7ED41E4D, +0x9CAADDE0, +0xD02F0A5A, +0x659939AF, +0x3140EC87, +0xD79872BB, +0x91ADBADF, +0x321C005E, +0x40B7AA96, +0xD9CF8C2E, +0x78546F04, +0xF590F648, +0xC1E93FF8, +0x092BC71C, +0xE26D6ACA, +0x4BC12937, +0x81B36AB7, +0xDBF5A65B, +0x133FDDA4, +0x71D3C784, +0xE31A7753, +0x49FAE7C0, +0xF4286D14, +0xAC942DDA, +0xE0AE894B, +0x940187F3, +0x4D9C95FC, +0x014EA592, +0x0FE4D3C7, +0x97D0E92D, +0x3187992A, +0x14935441, +0x39D87497, +0xFC3B08F7, +0xD86B7D60, +0xD66C4E6F, +0xAC5C8881, +0x6A2EEF0B, +0x6724D6E4, +0x6BE1743D, +0xF6AD564B, +0xCFD763F4, +0x62711851, +0x95CF3847, +0x161DD0F8, +0x06507F6E, +0x2673FDF2, +0xA3ED3DCD, +0x3FF60C4D, +0xD2320229, +0xEC396886, +0xD6653A39, +0x166C4C53, +0xA2D7E494, +0x855F3026, +0xC9536E95, +0x452C2DA7, +0x7C5932A8, +0x991CE2B7, +0x49DF5EA3, +0x9A72FD36, +0x19013550, +0xE68D0378, +0xA666F03D, +0x36959C7A, +0x811328A3, +0xA266F415, +0xAD052961, +0x3DA43882, +0xBD0BC1D8, +0xEFCB566A, +0xFCBE32E0, +0xF0182653, +0xA15A3201, +0xDBC23BAA, +0x4947D033, +0xEA45E01F, +0xB77BAAF7, +0x10F0A041, +0x7261A9DC, +0x1076FD8E, +0x5CC6D03F, +0xFDBA8229, +0xB978E892, +0x28409FC1, +0x03BC9D87, +0xFF0351FD, +0x31C573B5, +0x663C9870, +0x132EA055, +0x5F233FF9, +0x5F5C6FED, +0xD9462A42, +0x45EF0F25, +0x78E294BF, +0x608EEC39, +0xBB275C19, +0x2988C732, +0x776EFA6A, +0x240B63EE, +0xAB94D308, +0xD25BB249, +0x3B199F8E, +0x62868AF1, +0x493BF851, +0x3EC7F3C0, +0x1F9A8ACE, +0x1F6D3187, +0x695DE327, +0x7A0B4395, +0x7961D601, +0xB5DEC846, +0x47ADEA7F, +0xB37C1A00, +0x9A8ECD29, +0xC745D2CE, +0xA2FF0839, +0xB544D5E9, +0xFB20541A, +0x7E54F9CD, +0x6735083E, +0xB029373C, +0xE44A911A, +0x818156EE, +0xB8C83F5C, +0x722E217E, +0x06E664A3, +0x6DE2D766, +0x7A4C5E40, +0x2AB48760, +0x8075B851, +0x840C712E, +0xB6E281F2, +0xDF2F74C7, +0x83FFA293, +0x01899BC7, +0xF8ABA0E9, +0x9E1BF882, +0x5D5AAAE0, +0x2180A79E, +0x43B96D40, +0x738ED2FA, +0x28125016, +0x8151F9CF, +0x73EF2B56, +0xA2B3B33D, +0x0B7B62B4, +0x39F603F2, +0x54F6C4C9, +0x6E1F96CB, +0x10224F18, +0xEAEF81FB, +0x08D87035, +0x2375B9F9, +0x4E6A9E06, +0x0C282B47, +0x5D617F96, +0xA4E95456, +0x76192538, +0x516279CD, +0xD8DCFE05, +0x58B1C2F1, +0x144D5E61, +0x6D9DA9BE, +0xEE97A0A1, +0xA4000000, +0x00000000, +0x00000000, +0x00000000, +0x00000000, +0x00000000, +0x00000004, +0x0712151F, +0x242D3100}; //last byte 00 + + + uint32_t mldsa_entropy[] = {0x3401CEFA, + 0xE20A7376, + 0x49073AC1, + 0xA351E329, + 0x26DB9ED0, + 0xDB6B1CFF, + 0xAB0493DA, + 0xAFB93DDD, + 0xD83EDEA2, + 0x8A803D0D, + 0x003B2633, + 0xB9D0F1BF, + 0x3401CEFA, + 0xE20A7376, + 0x49073AC1, + 0xA351E329}; + + uint32_t mldsa_pubkey[] = {0x75A8F4C9, +0x56C0D7DA, +0x6C7FE78F, +0xB03E722E, +0xD1FC4F2A, +0x5E244960, +0x0E616F61, +0x995A4A88, +0xBABD9257, +0x1C680253, +0x9C86367B, +0xAC5D6C33, +0xEE7AD2F4, +0x7331681D, +0xAA2ECD32, +0x72A07C98, +0x88EF4FB3, +0xD7D7B553, +0x4D62D48D, +0xB4E7AAB9, +0xA3DCB673, +0x2CF5959D, +0x5ACD4B25, +0x8FD9AAD0, +0x57598DB1, +0xA8503DD8, +0xF788F9B5, +0x51423A93, +0xDEC204C8, +0xA67890B5, +0x33BDAD35, +0x44E65DD2, +0xDA8876E6, +0x803E5D77, +0xC6FA1F1C, +0x232AC032, +0x8C69650C, +0x63E23FD7, +0x24496B95, +0x236B585F, +0x76FD7C94, +0x9B0204DD, +0xF23E55C8, +0x83C88B34, +0xA55B2D3B, +0x377DE412, +0x2F9CBE78, +0x143EFC7A, +0xB9D23B98, +0x67F5F939, +0xDF336A02, +0x5653B525, +0xD7F23586, +0xF82C3AAD, +0x578883ED, +0xDAB3868A, +0x08115BD0, +0xC313AD31, +0xFF44F4F6, +0xB855025E, +0x5FF68B72, +0xC9D353CE, +0x54194914, +0xB266EF4D, +0x3F1F8740, +0x142A53D1, +0xC27BF5EF, +0x2D7E8840, +0x2C565079, +0x247080AE, +0x0D07D6D7, +0x568FB887, +0xFE18BCFD, +0x8261ED2E, +0xF494C18A, +0x8E6B8A20, +0x9781A4CD, +0x2CD32CF6, +0x1EA4474E, +0x74AA20A2, +0x2DA5FD0B, +0x4955DB1E, +0x2B9A6C3C, +0x38072C90, +0x42D2744A, +0x5810F3C3, +0xE9645B84, +0xDBFA7891, +0xF5BC4E41, +0xFDDD2DF1, +0xBACD84AE, +0x80BEE050, +0x2CACAC54, +0x7FD6521A, +0xEFCB4B95, +0xB58BCC19, +0x4C6B5A4E, +0x5214018B, +0x6F2BA80F, +0x21122004, +0xED559A86, +0x776826F3, +0xD777C25A, +0x283EADA7, +0xBD2004B8, +0x8E19D7B1, +0x5FEA24A1, +0x53C08F09, +0x36E896EA, +0x2ED175C0, +0x7A2CD400, +0x81D14708, +0x7F8E7E8B, +0x56BD438F, +0x7DAC54BA, +0x3A2D7255, +0x6BACAB5C, +0x6A6C8D63, +0x2ACF6E41, +0x1E1E9299, +0xF2A2FD4C, +0x6519AC22, +0x62ABE387, +0x4871039D, +0x177BFFE6, +0xD167821F, +0x05E46393, +0xB1FCD5A2, +0xCE192183, +0xFF741B18, +0x5280A379, +0x840C75B9, +0xEC706C16, +0x17DB9224, +0x958572BE, +0xF0158B00, +0x0F6C5BCE, +0x5066C4E3, +0x11509EFB, +0x92437C86, +0x5EF4F6C2, +0xE8493A26, +0xED8B2FD9, +0x9ADFC161, +0xA9059DFF, +0x794ED52A, +0xF6C83B78, +0x94FB2C79, +0x265468C2, +0x30CDDF36, +0xBFE6EBAF, +0x11463F0E, +0xF4CCC789, +0xEF23EECF, +0x3933638A, +0xC5ED3BFD, +0xC0122B79, +0x1EFD23D7, +0xC239BF96, +0x9B886EC3, +0x626CF86B, +0x9D012C28, +0x09EA6BA6, +0x3A4F8E77, +0xCBADB40F, +0x1A8B7C2B, +0x7AC21C00, +0xD3AC87D9, +0x8E61CE66, +0x91A7F5B2, +0x351D80D8, +0xED30B5A9, +0x006153A4, +0x878E5175, +0x69F192F9, +0x4F84BB9A, +0x4F35A45B, +0xB41EE126, +0xD93C19DB, +0x43A981C5, +0x7377DC9B, +0xCE867A76, +0xF2C49D0D, +0x9E8801A1, +0x726C8EEB, +0x70F7EBDF, +0xAC83E46A, +0x9CC27185, +0x02E590A9, +0xD70E82A9, +0xCCF56D33, +0x526C8E25, +0x75172C72, +0xE4259AA6, +0x39999175, +0x827B9380, +0x3C5B43E5, +0x0C8833A8, +0x0CC52A11, +0xB2C959B5, +0x572DEA35, +0x924E1233, +0x7BED0E92, +0xA4EFDA31, +0xE1E161B2, +0xB57B4828, +0xE9D95685, +0xE7DB7AC7, +0x95186A8B, +0x966F90CA, +0xF876F405, +0xF1EE9D64, +0x59FBB274, +0x0783870F, +0xE6A5C3FE, +0x8036ED64, +0x7BF544B8, +0x8958C4F2, +0x63409F56, +0xA61588D7, +0xD8BBB407, +0x3E7FD7C3, +0xC9E25006, +0xC97BC180, +0x43505441, +0x4CEFEF80, +0xD77DD7DC, +0x81099F4B, +0xF565D4E8, +0x91BD8636, +0x8669FAEC, +0xD31F1F1A, +0x246C9698, +0x38432715, +0x309AA45E, +0x8ED86151, +0x7C13AC94, +0x602933A2, +0xCD3BFA06, +0x735E62C4, +0xBEB652CB, +0x12257948, +0x8BA8530B, +0xB5878787, +0x495CAD69, +0x6D7C5E1D, +0xE65A66E4, +0xFBEEAFAA, +0x259768EA, +0x2608ED25, +0xB5586EE1, +0xC06CEACD, +0x5510E416, +0x7F7AA4DB, +0xAC15C68A, +0x2A710660, +0x96EB8F0F, +0xE6AE7345, +0xC2434A87, +0xD28BEC35, +0xE506BE01, +0xAF27EDF6, +0x0752DE9C, +0x9014B22D, +0xE55778AC, +0x5010C780, +0xE79FCC35, +0x7AA29326, +0xEC748BCC, +0x593E62E6, +0xDBC51FFB, +0x3F282033, +0xE8935D8E, +0xF7EFFF37, +0xED6D1CDF, +0x5A204558, +0x773A1B8C, +0x7ECB8794, +0x9013BDFF, +0xD6E8E05C, +0x817E86DF, +0xB7B62986, +0x19870FE7, +0x3E2B6099, +0x2209207D, +0x94B856FD, +0x56F4C39A, +0xD937DEF5, +0x7AEEA0C8, +0x32F54BF4, +0x08755F39, +0x88A39EF8, +0x71335BDC, +0x2169F675, +0xC95EA265, +0x8266E29E, +0x39FE97C0, +0xC2093E8A, +0x2EAA9DB7, +0x5A6A4FEE, +0x8F6889BE, +0x3A606C79, +0x956C24F3, +0xB560CCE1, +0xC3716145, +0x3868D9BB, +0xAB0A87D8, +0x5375126B, +0x6DC3E0D1, +0xF67B32A0, +0x006A8D3C, +0x705DF2C6, +0xB03BA0FA, +0x2B9634C3, +0xB0869552, +0xA0DAC3B2, +0x1ECC8BA1, +0x7B341C22, +0x10D0A23B, +0x5FD68BB1, +0x335AC96C, +0x3EF3701E, +0x0A2ACD38, +0x90A4AEBC, +0x908BC063, +0xBBF2EF3D, +0x50CF0F8D, +0xA48F7DDE, +0xB86F9D77, +0x3E544C70, +0x44704107, +0x6E99C93D, +0xB9D39780, +0xDF774DA3, +0x5A0163DA, +0x3EA50F17, +0xA69A2144, +0x10736015, +0xA4ABF71F, +0x43083324, +0x951FAD48, +0x5EBAF55D, +0xE945F8C6, +0xEFC3E8BE, +0x26917E5A, +0x29605040, +0x5A97FECB, +0xFD2625FC, +0x676AD1A9, +0x145BB8A9, +0xC1F1B3A4, +0x6519F77D, +0xA83C44D2, +0x861CAD6A, +0x56AB01BF, +0x84F7709F, +0x0F5270EC, +0x550F6691, +0xC47E6B18, +0xF4B5B884, +0x118FD4AF, +0x03D30460, +0x119322EA, +0xEF583A15, +0xF00A561A, +0xFC498539, +0x3AD53B68, +0x1D41D469, +0x790A24BD, +0xC6056EB9, +0x2DCE833A, +0xB33581E0, +0x8267CEFB, +0xBC206761, +0x92A7608F, +0xB7E34228, +0x01D93518, +0x43B47626, +0x3C0D1D54, +0x42613D6E, +0xB9924662, +0xB20BC213, +0xCA335A52, +0xA5F3CBCB, +0x8FCA9D91, +0x64170C89, +0x28DD5D2E, +0xAF9290D8, +0x2EA8FF72, +0x99E772DE, +0x20567C79, +0xD6EBAE9B, +0xF5834CAD, +0x8D55ACCA, +0x5E9B22E9, +0xCD0942DD, +0x262F06D2, +0xB21C2488, +0x38D8B76C, +0xAC91E98F, +0xA4D5369F, +0xE26A609C, +0x2E6547C2, +0x9137D45E, +0x4F4B0872, +0x4DF78651, +0x1FBD75EB, +0x72DC72DB, +0x2FF0B8D9, +0x0461EEAD, +0x262FEB19, +0x08F0605C, +0xF60B5F48, +0x733E3EE3, +0x1B12EDA1, +0xC220EECF, +0xCA7160EA, +0xE73DA742, +0xAAA34081, +0x49EE2559, +0x85ED681D, +0x733AB497, +0x71BBD77E, +0x344976AC, +0x45556A83, +0xCF5EA3A5, +0x57D6F2D8, +0x54AF1396, +0xFE62BF2A, +0x582F3A25, +0x2B9CBB00, +0xAFF5E7A5, +0xDAA0B44D, +0x3355374C, +0x70BC6117, +0xDBCF67CD, +0xE2C02527, +0x5A49105B, +0xF0D464B5, +0x54761C8E, +0x0340FCCF, +0xB2993728, +0x381F0A01, +0x5DCC10D7, +0xA2697067, +0x1FF41C6C, +0x12CFF6E7, +0x1E16A376, +0x3964042A, +0xB8EE7A1D, +0x9DD7DC8C, +0x73229061, +0xDA4CF614, +0xD2F53366, +0x28FF9DC9, +0x2A1A5FD3, +0x3240EF00, +0x575D5008, +0xA2F1A632, +0xB7BB843A, +0xB18113B1, +0xF0975B6E, +0xCA7ABB6C, +0x18C2D17C, +0x9542B8FF, +0x6E99C186, +0xFCDAF6F0, +0xAB62DD37, +0x646277AD, +0x482D7F06, +0x6C3C7678, +0xD5A9ACC3, +0xC162C8AD, +0x3EA326EB, +0xCDD51824, +0x0A6040B7, +0x17DBE698, +0xF6E0E49F, +0x35741289, +0xA61F143B, +0xD0C2F335, +0x84733EA0, +0x5C0F6032, +0x1ACE1874, +0xF0C2FF27, +0x30F729B9, +0xB20FCF64, +0x994719B9, +0x5C0126AF, +0x36E379AF, +0xB8940EA2, +0x8F69A436, +0x02A10091, +0x81547AA7, +0xF1C6B59B, +0xDFB5F010, +0xFBA702E1, +0x93D67AF6, +0xA2D0277F, +0x474E5042, +0x80EB8C56, +0x5AFE7696, +0xD8FED00C, +0xDD560536, +0xEA3959D2, +0xD7D1DBD7, +0x02CD325C, +0xCDE51CDF, +0x0C1AF06B, +0x62089CEB, +0x523AB942, +0xA50A36E6, +0x7C786B83, +0xF93C29B5, +0x15CB56AF, +0x23C5412C, +0x1B2FF1BE, +0x9E01B53B, +0x6325C54F, +0x3E7FA5FB, +0x3F2D167B, +0xFE6F7AAE, +0x10CD4994, +0x86C74F26, +0xE76E8FC1, +0x8E7FE42B, +0x09757222, +0xDDDBAA0D, +0x97F88AA1, +0xF9FC0CF1, +0xC9F781B2, +0x8ABD0A7E, +0xB9334646, +0x829FDDFC, +0x9F505ECD, +0x9BC8EDDA, +0xC160366B, +0xBC04AA2E, +0x62A7A209, +0x594A87F9, +0xE121DFE9, +0x61DA3ADC, +0x7764DD63, +0x844B4FCE, +0x43478D15, +0x1FCDA95F, +0xF1770B3D, +0x87A6727F, +0xC274D7ED, +0x11A1F0E2, +0x86992E87, +0xDAB4763C, +0xDC33027F, +0xB60D42A3, +0x06501721, +0x4496E54C, +0x3D0EF595, +0x3254C024, +0x08D3CE80, +0x7CDD58FF, +0xDCE15AF9, +0x4762C489, +0x0F47F621, +0x5FBC2838, +0x2F72C934, +0x6B4D74DD, +0x7C768A06, +0x7FF6AA96, +0xE495DFA9, +0xD13470B6, +0xADC362BD, +0x8C442D77, +0x94143894, +0x4521F67E, +0x85673C5F, +0xF3735129, +0x09B8371D, +0xCDE344CC, +0x8A602C33, +0x27903300, +0x3C4B7BB5, +0x1354B2E6, +0x6C415E7C, +0xF3CD0130, +0x04CC968B, +0xE01A21D9, +0x104F92E9, +0x307D9D95, +0x81C2C125, +0x581739CF, +0x740DDE7D, +0x530E22A3, +0xE0811755, +0x9843A0ED, +0xF0B6D576, +0xB4B528C8, +0xE21D00FE, +0x8814F357, +0xD63D0F4B, +0x091F4A9B, +0x4B3DE3DE, +0x2F3DDBA9, +0x528F7C6E, +0x95433AEA, +0x0DDC9077, +0x472572BC, +0x7F015542, +0xCBCCAC3D, +0xB5EA7269, +0xCD97E060, +0xE3BFA854, +0xDB263906, +0x946E6E5A, +0x973F355D, +0xD585DA0D, +0x39603F52, +0x91880424, +0x0F4C8A26, +0x40DE27CF, +0x9CC53003, +0x201B6DC5, +0x8A2ED125, +0xA52F4644, +0x4938A93F, +0xECDFDBE5, +0x04898FD1, +0x27E70F9F, +0x1AE29EEF, +0x61E6AC0D, +0x3B7C6A84, +0x561BFF14, +0x4EB78DFE, +0x9783F717, +0xBE8381BF, +0x94582504, +0x24B61F09, +0x5C1001BE, +0x264376F4, +0xBA325CEF, +0xF9BB4752, +0xCD3D8806, +0x870B5CFB, +0xFD252637, +0x364818EC, +0x11BFF699, +0xCC10F310, +0x2FDD62A5, +0xB527ED7A}; + +uint32_t mldsa_verifyres [] = {0x89E8DA09, +0xEDD3600C, +0x15A06D5B, +0x5CBCA92C, +0xADF08F43, +0x13D0C0E2, +0xB23E24B3, +0x29EEBD1D, +0x81DE6DEA, +0xE3F36797, +0xA494BA21, +0x21E0A274, +0xC3988770, +0x902E2CB3, +0x25B79FD1, +0xC6ED2197}; + + //Call interrupt init + init_interrupts(); + mldsa_io seed; + uint32_t sign_rnd[8], entropy[16], privkey[1224], pubkey[648], msg[16], sign[1157], verifyres[16]; + + seed.kv_intf = TRUE; + seed.kv_id = 6; + for (int i = 0; i < 8; i++) + seed.data[7-i] = ((mldsa_seed[i]<<24) & 0xff000000) | + ((mldsa_seed[i]<< 8) & 0x00ff0000) | + ((mldsa_seed[i]>> 8) & 0x0000ff00) | + ((mldsa_seed[i]>>24) & 0x000000ff); //mldsa_seed[i]; + + + for (int i = 0; i < 8; i++) + sign_rnd[7-i] = mldsa_sign_rnd[i]; //TODO: add byte swap - not doing now to save sim time + + for (int i = 0; i < 16; i++) { + entropy[15-i] = ((mldsa_entropy[i]<<24) & 0xff000000) | + ((mldsa_entropy[i]<< 8) & 0x00ff0000) | + ((mldsa_entropy[i]>> 8) & 0x0000ff00) | + ((mldsa_entropy[i]>>24) & 0x000000ff); + } + + for (int i = 0; i < 16; i++) { + msg[15-i] = ((mldsa_msg[i]<<24) & 0xff000000) | + ((mldsa_msg[i]<< 8) & 0x00ff0000) | + ((mldsa_msg[i]>> 8) & 0x0000ff00) | + ((mldsa_msg[i]>>24) & 0x000000ff); + } + + for (int i = 0; i < 1224; i++){ + privkey[1223-i] = ((mldsa_privkey[i]<<24) & 0xff000000) | + ((mldsa_privkey[i]<< 8) & 0x00ff0000) | + ((mldsa_privkey[i]>> 8) & 0x0000ff00) | + ((mldsa_privkey[i]>>24) & 0x000000ff); + } + + for (int i = 0; i < 648; i++) + pubkey[647-i] = ((mldsa_pubkey[i]<<24) & 0xff000000) | + ((mldsa_pubkey[i]<< 8) & 0x00ff0000) | + ((mldsa_pubkey[i]>> 8) & 0x0000ff00) | + ((mldsa_pubkey[i]>>24) & 0x000000ff); + + + for (int i = 0; i < 1157; i++) { + sign[1156-i] = ((mldsa_sign[i]<<24) & 0xff000000) | + ((mldsa_sign[i]<< 8) & 0x00ff0000) | + ((mldsa_sign[i]>> 8) & 0x0000ff00) | + ((mldsa_sign[i]>>24) & 0x000000ff); + } + + for (int i = 0; i < 16; i++) { + verifyres[15-i] = ((mldsa_verifyres[i]<<24) & 0xff000000) | + ((mldsa_verifyres[i]<< 8) & 0x00ff0000) | + ((mldsa_verifyres[i]>> 8) & 0x0000ff00) | + ((mldsa_verifyres[i]>>24) & 0x000000ff); + } + + // mldsa_keygen_flow(seed, sign_rnd, entropy, privkey, pubkey); + // mldsa_zeroize(); + // cptra_intr_rcv.mldsa_notif = 0; + + // mldsa_signing_flow(privkey, msg, entropy, sign); + // mldsa_zeroize(); + // cptra_intr_rcv.mldsa_notif = 0; + + //inject mldsa seed to kv key reg (in RTL) + uint8_t key_inject_cmd = 0xc0 + (seed.kv_id & 0x7); + printf("%c", key_inject_cmd); + + mldsa_keygen_signing_flow(seed, sign_rnd, msg, privkey, pubkey, sign); + mldsa_zeroize(); + cptra_intr_rcv.mldsa_notif = 0; + + // mldsa_verifying_flow(msg, pubkey, sign, verifyres); + // mldsa_zeroize(); + // cptra_intr_rcv.mldsa_notif = 0; + + printf("%c",0xff); //End the test + +} + + diff --git a/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.ld b/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.ld new file mode 100644 index 000000000..83a09ceac --- /dev/null +++ b/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.ld @@ -0,0 +1,69 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +OUTPUT_ARCH( "riscv" ) +ENTRY(_start) + +SECTIONS { + . = 0x0; + .text : { *(.text*) } + + .eh_frame : { *(.eh_frame) } + /* DCCM as VMA */ + /* Data is bundled with ROM image in iMem */ + /* Align data to 4-bytes to allow LSU access to work + * when copying to DCCM */ + /* Only upper half of DCCM is used for ROM image */ + _data_lma_start = ALIGN(4); + _data_vma_start = 0x50010000; + .data _data_vma_start : AT(_data_lma_start) { *(.*data) *(.*data.*) *(.rodata*) *(.srodata*) ; . = ALIGN(4);} =0x0000, + _data_lma_end = _data_lma_start + SIZEOF(.data); + _data_vma_end = _data_vma_start + SIZEOF(.data); + + _bss_lma_start = _data_lma_end; + _bss_vma_start = _data_vma_end; + .bss _bss_vma_start : AT(_bss_lma_start) { *(.sbss) *(.bss) ; . = ALIGN(4);} =0x0000, + _bss_lma_end = _bss_lma_start + SIZEOF(.bss); + _bss_vma_end = _bss_vma_start + SIZEOF(.bss); + + _end = _bss_lma_end; + ASSERT( _end < 0x0000C000, "ERROR: ROM size exceeds 48KiB") + + /* DCCM as VMA and LMA */ + . = _bss_vma_end; + _dccm_lma_start = _bss_vma_end; /* ----\___ SAME */ + _dccm_vma_start = _bss_vma_end; /* ----/ */ + .dccm _dccm_vma_start : AT(_dccm_lma_start) { *(.dccm*) . = ALIGN(4); } =0x0000, + iccm_code0_start = .; + + /* ICCM as VMA */ + /* All of these sections start at the base address of ICCM, and cannot coexist */ + /* The code in these sections will be loaded to DCCM alongside .data and later + * copied into ICCM for execution. + * NOTE: none of these sections will be used by the val image/FMC/RT flows */ + .data_iccm0 0x40000000 : AT(iccm_code0_start) {*(.data_iccm0) ; . = ALIGN(4); } =0x0000, /* iccm_code0_start, after .data, as LMA */ + iccm_code0_end = iccm_code0_start + SIZEOF(.data_iccm0); + iccm_code1_start = ALIGN(iccm_code0_end,4); + .data_iccm1 0x40000000 : AT(iccm_code1_start) {*(.data_iccm1) ; . = ALIGN(4); } =0x0000, /* iccm_code1_start, after .data, as LMA */ + iccm_code1_end = iccm_code1_start + SIZEOF(.data_iccm1); + iccm_code2_start = ALIGN(iccm_code1_end,4); + .data_iccm2 0x40000000 : AT(iccm_code2_start) {*(.data_iccm2) ; . = ALIGN(4); } =0x0000, /* iccm_code2_start, after .data, as LMA */ + iccm_code2_end = iccm_code2_start + SIZEOF(.data_iccm2); + + /* Stack is at the end of DCCM after .data_iccm2 */ + . = ALIGN(iccm_code2_end,16); + STACK = ALIGN(16) + 0x8000; + ASSERT( (STACK < 0x50020000), "ERROR: Stack overflows the DCCM -- note: lower half of DCCM is allocated in the validation image for remote firmware images") +} diff --git a/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.yml b/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.yml new file mode 100644 index 000000000..a13a5d504 --- /dev/null +++ b/src/integration/test_suites/smoke_test_kv_mldsa/smoke_test_kv_mldsa.yml @@ -0,0 +1,3 @@ +--- +seed: 1 +testname: smoke_test_kv_mldsa \ No newline at end of file diff --git a/src/integration/test_suites/smoke_test_kv_sha512_flow/caliptra_isr.h b/src/integration/test_suites/smoke_test_kv_sha512_flow/caliptra_isr.h deleted file mode 100644 index e05ff1ce2..000000000 --- a/src/integration/test_suites/smoke_test_kv_sha512_flow/caliptra_isr.h +++ /dev/null @@ -1,244 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// --------------------------------------------------------------------- -// File: caliptra_isr.h -// Description: -// Provides function declarations for use by external test files, so -// that the ISR functionality may behave like a library. -// TODO: -// This header file includes inline function definitions for event and -// test specific interrupt service behavior, so it should be copied and -// modified for each test. -// --------------------------------------------------------------------- - -#ifndef CALIPTRA_ISR_H - #define CALIPTRA_ISR_H - -#define EN_ISR_PRINTS 1 - -#include "caliptra_defines.h" -#include -#include "printf.h" - -/* --------------- symbols/typedefs --------------- */ -typedef struct { - uint32_t doe_error; - uint32_t doe_notif; - uint32_t ecc_error; - uint32_t ecc_notif; - uint32_t hmac_error; - uint32_t hmac_notif; - uint32_t kv_error; - uint32_t kv_notif; - uint32_t sha512_error; - uint32_t sha512_notif; - uint32_t sha256_error; - uint32_t sha256_notif; - uint32_t soc_ifc_error; - 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 axi_dma_error; - uint32_t axi_dma_notif; -} caliptra_intr_received_s; -extern volatile caliptra_intr_received_s cptra_intr_rcv; - -////////////////////////////////////////////////////////////////////////////// -// Function Declarations -// - -// Performs all the CSR setup to configure and enable vectored external interrupts -void init_interrupts(void); - -// These inline functions are used to insert event-specific functionality into the -// otherwise generic ISR that gets laid down by the parameterized macro "nonstd_veer_isr" -inline void service_doe_error_intr() {return;} -inline void service_doe_notif_intr() { - uint32_t * reg = (uint32_t *) (CLP_DOE_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & DOE_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { - *reg = DOE_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - cptra_intr_rcv.doe_notif |= DOE_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad doe_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_ecc_error_intr() {return;} -inline void service_ecc_notif_intr() { - uint32_t * reg = (uint32_t *) (CLP_ECC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & ECC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { - *reg = ECC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - cptra_intr_rcv.ecc_notif |= ECC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad ecc_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_hmac_error_intr() {return;} -inline void service_hmac_notif_intr() { - uint32_t * reg = (uint32_t *) (CLP_HMAC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & HMAC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { - *reg = HMAC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - cptra_intr_rcv.hmac_notif |= HMAC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad hmac_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_kv_error_intr() {return;} -inline void service_kv_notif_intr() {return;} -inline void service_sha512_error_intr() {return;} -inline void service_sha512_notif_intr() { - uint32_t * reg = (uint32_t *) (CLP_SHA512_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & SHA512_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { - *reg = SHA512_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - cptra_intr_rcv.sha512_notif |= SHA512_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad sha512_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_sha256_error_intr() {return;} -inline void service_sha256_notif_intr() { - uint32_t * reg = (uint32_t *) (CLP_SHA256_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & SHA256_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { - *reg = SHA256_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - cptra_intr_rcv.sha256_notif |= SHA256_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad sha256_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - - -inline void service_soc_ifc_error_intr() { - uint32_t * reg = (uint32_t *) (CLP_SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_INTERNAL_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_INTERNAL_STS_MASK; - cptra_intr_rcv.soc_ifc_error |= SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_INTERNAL_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_INV_DEV_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_INV_DEV_STS_MASK; - cptra_intr_rcv.soc_ifc_error |= SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_INV_DEV_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_CMD_FAIL_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_CMD_FAIL_STS_MASK; - cptra_intr_rcv.soc_ifc_error |= SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_CMD_FAIL_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_BAD_FUSE_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_BAD_FUSE_STS_MASK; - cptra_intr_rcv.soc_ifc_error |= SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_BAD_FUSE_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_ICCM_BLOCKED_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_ICCM_BLOCKED_STS_MASK; - cptra_intr_rcv.soc_ifc_error |= SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_ICCM_BLOCKED_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_MBOX_ECC_UNC_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_MBOX_ECC_UNC_STS_MASK; - cptra_intr_rcv.soc_ifc_error |= SOC_IFC_REG_INTR_BLOCK_RF_ERROR_INTERNAL_INTR_R_ERROR_MBOX_ECC_UNC_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad soc_ifc_error_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_soc_ifc_notif_intr () { - uint32_t * reg = (uint32_t *) (CLP_SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_AVAIL_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_AVAIL_STS_MASK; - cptra_intr_rcv.soc_ifc_notif |= SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_AVAIL_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_MBOX_ECC_COR_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_MBOX_ECC_COR_STS_MASK; - cptra_intr_rcv.soc_ifc_notif |= SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_MBOX_ECC_COR_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_DEBUG_LOCKED_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_DEBUG_LOCKED_STS_MASK; - cptra_intr_rcv.soc_ifc_notif |= SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_DEBUG_LOCKED_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_SCAN_MODE_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_SCAN_MODE_STS_MASK; - cptra_intr_rcv.soc_ifc_notif |= SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_SCAN_MODE_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_SOC_REQ_LOCK_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_SOC_REQ_LOCK_STS_MASK; - cptra_intr_rcv.soc_ifc_notif |= SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_SOC_REQ_LOCK_STS_MASK; - } - if (sts & SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_GEN_IN_TOGGLE_STS_MASK) { - *reg = SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_GEN_IN_TOGGLE_STS_MASK; - cptra_intr_rcv.soc_ifc_notif |= SOC_IFC_REG_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_GEN_IN_TOGGLE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad soc_ifc_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_sha512_acc_error_intr() {return;} -inline void service_sha512_acc_notif_intr() { - uint32_t * reg = (uint32_t *) (CLP_SHA512_ACC_CSR_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R); - uint32_t sts = *reg; - /* Write 1 to Clear the pending interrupt */ - if (sts & SHA512_ACC_CSR_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK) { - *reg = SHA512_ACC_CSR_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - cptra_intr_rcv.sha512_acc_notif |= SHA512_ACC_CSR_INTR_BLOCK_RF_NOTIF_INTERNAL_INTR_R_NOTIF_CMD_DONE_STS_MASK; - } - if (sts == 0) { - VPRINTF(ERROR,"bad sha512_acc_notif_intr sts:%x\n", sts); - SEND_STDOUT_CTRL(0x1); - while(1); - } -} - -inline void service_mldsa_error_intr() {return;} -inline void service_mldsa_notif_intr() {return;} -inline void service_axi_dma_error_intr() {printf("ERROR");} -inline void service_axi_dma_notif_intr() {printf("ERROR");} - - -#endif //CALIPTRA_ISR_H diff --git a/src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.c b/src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.c deleted file mode 100644 index defad2dc9..000000000 --- a/src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.c +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#include "caliptra_defines.h" -#include "caliptra_isr.h" -#include "riscv_hw_if.h" -#include "riscv-csr.h" -#include -#include -#include -#include "printf.h" -#include "sha512.h" - -volatile uint32_t* stdout = (uint32_t *)STDOUT; -volatile uint32_t intr_count = 0; -volatile uint32_t rst_count = 0; -#ifdef CPT_VERBOSITY - enum printf_verbosity verbosity_g = CPT_VERBOSITY; -#else - enum printf_verbosity verbosity_g = LOW; -#endif - -volatile caliptra_intr_received_s cptra_intr_rcv = {0}; - - -/* SHA384 test vector: - block = b1eeef324b499f19eba322215fe3ce19c9f000b698d2b2dab7145015046cc86d049ee15ad59dcd1564f30112e06444cb - digest = 38742d18bfa6e918b888d68d1034e61f65dec0759172c2dbf08cf1e132b217eaf4ec29e15db7f4b07e08a70cc5662012 -*/ - -void main() { - printf("----------------------------------\n"); - printf(" KV Smoke Test With SHA384 flow !!\n"); - printf("----------------------------------\n"); - - //Call interrupt init - init_interrupts(); - - uint32_t hmac384_expected_digest[] = {0x38742d18, - 0xbfa6e918, - 0xb888d68d, - 0x1034e61f, - 0x65dec075, - 0x9172c2db, - 0xf08cf1e1, - 0x32b217ea, - 0xf4ec29e1, - 0x5db7f4b0, - 0x7e08a70c, - 0xc5662012}; - - uint8_t shablock_kv_id = 0x0; - uint8_t store_to_kv = 0x1; - uint8_t digest_kv_id = 0x0; - sha384_kvflow(shablock_kv_id, store_to_kv, digest_kv_id, hmac384_expected_digest); - - sha512_zeroize(); - - printf("%c",0xff); //End the test - -} diff --git a/src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.yml b/src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.yml deleted file mode 100644 index 1902b75a5..000000000 --- a/src/integration/test_suites/smoke_test_kv_sha512_flow/smoke_test_kv_sha512_flow.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ---- -seed: 1 -testname: smoke_test_kv_sha512_flow \ No newline at end of file diff --git a/src/integration/test_suites/smoke_test_mldsa/smoke_test_mldsa.c b/src/integration/test_suites/smoke_test_mldsa/smoke_test_mldsa.c index 5a19f8273..1f42d0975 100644 --- a/src/integration/test_suites/smoke_test_mldsa/smoke_test_mldsa.c +++ b/src/integration/test_suites/smoke_test_mldsa/smoke_test_mldsa.c @@ -3142,14 +3142,15 @@ uint32_t mldsa_verifyres [] = {0x89E8DA09, 0x902E2CB3, 0x25B79FD1, 0xC6ED2197}; + //Call interrupt init init_interrupts(); + mldsa_io seed; + uint32_t sign_rnd[8], entropy[16], privkey[1224], pubkey[648], msg[16], sign[1157], verifyres[16]; - uint32_t seed[8], sign_rnd[8], entropy[16], privkey[1224], pubkey[648], msg[16], sign[1157], verifyres[16]; - - + seed.kv_intf = FALSE; for (int i = 0; i < 8; i++) - seed[7-i] = ((mldsa_seed[i]<<24) & 0xff000000) | + seed.data[7-i] = ((mldsa_seed[i]<<24) & 0xff000000) | ((mldsa_seed[i]<< 8) & 0x00ff0000) | ((mldsa_seed[i]>> 8) & 0x0000ff00) | ((mldsa_seed[i]>>24) & 0x000000ff); //mldsa_seed[i]; diff --git a/src/integration/test_suites/smoke_test_zeroize_crypto/smoke_test_zeroize_crypto.c b/src/integration/test_suites/smoke_test_zeroize_crypto/smoke_test_zeroize_crypto.c index 4395cb28c..d5fa3cbe8 100644 --- a/src/integration/test_suites/smoke_test_zeroize_crypto/smoke_test_zeroize_crypto.c +++ b/src/integration/test_suites/smoke_test_zeroize_crypto/smoke_test_zeroize_crypto.c @@ -158,7 +158,7 @@ void main() { lsu_write_32(CLP_HMAC_REG_HMAC512_KV_WR_CTRL, HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_EN_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_KEY_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_HMAC_BLOCK_DEST_VALID_MASK| - HMAC_REG_HMAC512_KV_WR_CTRL_SHA_BLOCK_DEST_VALID_MASK | + HMAC_REG_HMAC512_KV_WR_CTRL_MLDSA_SEED_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_ECC_PKEY_DEST_VALID_MASK | HMAC_REG_HMAC512_KV_WR_CTRL_ECC_SEED_DEST_VALID_MASK | ((tag_kv_id << HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_ENTRY_LOW) & HMAC_REG_HMAC512_KV_WR_CTRL_WRITE_ENTRY_MASK)); diff --git a/src/keyvault/rtl/kv_def.rdl b/src/keyvault/rtl/kv_def.rdl index 4e31bb807..7a9cd9490 100644 --- a/src/keyvault/rtl/kv_def.rdl +++ b/src/keyvault/rtl/kv_def.rdl @@ -63,7 +63,7 @@ field {desc = "Key Vault entry to store the result";} write_entry[KV_ENTRY_ADDRESS_W] = 0; field {desc = "HMAC KEY is a valid destination";} hmac_key_dest_valid = 0; field {desc = "HMAC BLOCK is a valid destination";} hmac_block_dest_valid = 0; - field {desc = "Reserved field. No SHA key vault interface";} sha_block_dest_valid = 0; + field {desc = "MLDSA_SEED is a valid destination";} mldsa_seed_dest_valid = 0; field {desc = "ECC PKEY is a valid destination";} ecc_pkey_dest_valid = 0; field {desc = "ECC SEED is a valid destination";} ecc_seed_dest_valid = 0; field {desc = "Reserved field";} rsvd[21] = 0; diff --git a/src/keyvault/rtl/kv_defines_pkg.sv b/src/keyvault/rtl/kv_defines_pkg.sv index a48e2eeff..71f6b4642 100644 --- a/src/keyvault/rtl/kv_defines_pkg.sv +++ b/src/keyvault/rtl/kv_defines_pkg.sv @@ -17,8 +17,8 @@ package kv_defines_pkg; -parameter KV_NUM_DWORDS = 12; //number of dwords per key -parameter KV_NUM_KEYS = 32; +parameter KV_NUM_DWORDS = 16; //number of dwords per key +parameter KV_NUM_KEYS = 24; parameter KV_ADDR_W = 13; parameter KV_DATA_W = 32; parameter KV_ENTRY_ADDR_W = $clog2(KV_NUM_KEYS); @@ -27,6 +27,7 @@ parameter KV_NUM_READ=5; parameter KV_NUM_WRITE=4; parameter KV_ENTRY_FOR_SIGNING = 7; +parameter PCR_HASH_NUM_DWORDS = 12; typedef struct packed { logic [KV_ADDR_W-1:0] addr; @@ -82,7 +83,7 @@ typedef enum logic [7:0] { } kv_error_code_e; typedef struct packed { - logic [KV_NUM_DWORDS-1:0][31:0] pcr_hash; + logic [PCR_HASH_NUM_DWORDS-1:0][31:0] pcr_hash; logic [KV_NUM_DWORDS-1:0][31:0] pcr_signing_privkey; } pcr_signing_t; diff --git a/src/keyvault/rtl/kv_fsm.sv b/src/keyvault/rtl/kv_fsm.sv index 675c0b343..ee98c9896 100644 --- a/src/keyvault/rtl/kv_fsm.sv +++ b/src/keyvault/rtl/kv_fsm.sv @@ -31,8 +31,9 @@ module kv_fsm input logic last, input logic pcr_hash_extend, + input logic [OFFSET_W:0] num_dwords, - output logic [OFFSET_W-1:0] read_offset, + output logic [KV_ENTRY_SIZE_W-1:0] read_offset, output logic write_en, output logic [OFFSET_W-1:0] write_offset, @@ -78,7 +79,7 @@ logic [KV_NUM_DWORDS_W:0] offset, offset_nxt; //data width is in bits, divide by 32 to get dwords assign num_dwords_total = pcr_hash_extend ? 'd12 : - ((PAD == 1) ? KV_MAX_DWORDS : DATA_WIDTH/32); + ((PAD == 1) ? KV_MAX_DWORDS : $bits(num_dwords_total)'(num_dwords)); always_comb ready = (kv_fsm_ps == KV_IDLE); @@ -186,7 +187,7 @@ generate end endgenerate -always_comb read_offset = (kv_fsm_ps == KV_RW) ? offset[OFFSET_W-1:0] : '0; +always_comb read_offset = (kv_fsm_ps == KV_RW) ? offset[KV_ENTRY_SIZE_W-1:0] : '0; always_comb write_offset = offset[OFFSET_W-1:0]; endmodule diff --git a/src/keyvault/rtl/kv_macros.svh b/src/keyvault/rtl/kv_macros.svh index b065a6fb5..c5c2a7ec9 100644 --- a/src/keyvault/rtl/kv_macros.svh +++ b/src/keyvault/rtl/kv_macros.svh @@ -17,21 +17,21 @@ -`define CALIPTRA_KV_WRITE_CTRL_REG2STRUCT(struct_name, ctrl_reg_name)\ +`define CALIPTRA_KV_WRITE_CTRL_REG2STRUCT(struct_name, ctrl_reg_name, hwif_name = hwif_out)\ assign struct_name.rsvd = '0;\ -assign struct_name.write_dest_vld[0] = hwif_out.``ctrl_reg_name.hmac_key_dest_valid.value;\ -assign struct_name.write_dest_vld[1] = hwif_out.``ctrl_reg_name.hmac_block_dest_valid.value;\ -assign struct_name.write_dest_vld[2] = hwif_out.``ctrl_reg_name.sha_block_dest_valid.value;\ -assign struct_name.write_dest_vld[3] = hwif_out.``ctrl_reg_name.ecc_pkey_dest_valid.value;\ -assign struct_name.write_dest_vld[4] = hwif_out.``ctrl_reg_name.ecc_seed_dest_valid.value;\ -assign struct_name.write_entry = hwif_out.``ctrl_reg_name.write_entry.value;\ -assign struct_name.write_en = hwif_out.``ctrl_reg_name.write_en.value; +assign struct_name.write_dest_vld[0] = ``hwif_name.``ctrl_reg_name.hmac_key_dest_valid.value;\ +assign struct_name.write_dest_vld[1] = ``hwif_name.``ctrl_reg_name.hmac_block_dest_valid.value;\ +assign struct_name.write_dest_vld[2] = ``hwif_name.``ctrl_reg_name.mldsa_seed_dest_valid.value;\ +assign struct_name.write_dest_vld[3] = ``hwif_name.``ctrl_reg_name.ecc_pkey_dest_valid.value;\ +assign struct_name.write_dest_vld[4] = ``hwif_name.``ctrl_reg_name.ecc_seed_dest_valid.value;\ +assign struct_name.write_entry = ``hwif_name.``ctrl_reg_name.write_entry.value;\ +assign struct_name.write_en = ``hwif_name.``ctrl_reg_name.write_en.value; -`define CALIPTRA_KV_READ_CTRL_REG2STRUCT(struct_name, ctrl_reg_name)\ +`define CALIPTRA_KV_READ_CTRL_REG2STRUCT(struct_name, ctrl_reg_name, hwif_name = hwif_out)\ assign struct_name.rsvd = '0;\ -assign struct_name.pcr_hash_extend = hwif_out.``ctrl_reg_name.pcr_hash_extend.value;\ -assign struct_name.read_entry = hwif_out.``ctrl_reg_name.read_entry.value;\ -assign struct_name.read_en = hwif_out.``ctrl_reg_name.read_en.value; +assign struct_name.pcr_hash_extend = ``hwif_name.``ctrl_reg_name.pcr_hash_extend.value;\ +assign struct_name.read_entry = ``hwif_name.``ctrl_reg_name.read_entry.value;\ +assign struct_name.read_en = ``hwif_name.``ctrl_reg_name.read_en.value; `endif diff --git a/src/keyvault/rtl/kv_read_client.sv b/src/keyvault/rtl/kv_read_client.sv index a556604b1..8e2d52457 100644 --- a/src/keyvault/rtl/kv_read_client.sv +++ b/src/keyvault/rtl/kv_read_client.sv @@ -17,7 +17,7 @@ module kv_read_client import kv_defines_pkg::*; #( - parameter DATA_WIDTH = 384 + parameter DATA_WIDTH = 512 ,parameter HMAC = 0 ,parameter PAD = 0 @@ -45,10 +45,13 @@ module kv_read_client output logic read_done ); -logic [DATA_OFFSET_W-1:0] read_offset; +logic [KV_ENTRY_SIZE_W-1:0] read_offset; +logic [DATA_OFFSET_W:0] num_dwords; logic write_pad; logic [31:0] pad_data; +assign num_dwords = DATA_WIDTH/32; + //read fsm kv_fsm #( .DATA_WIDTH(DATA_WIDTH), @@ -63,6 +66,7 @@ kv_read_fsm .start(read_ctrl_reg.read_en), .last (kv_resp.last), .pcr_hash_extend(read_ctrl_reg.pcr_hash_extend), + .num_dwords(num_dwords), .read_offset(read_offset), .write_en(write_en), .write_offset(write_offset), @@ -74,7 +78,7 @@ kv_read_fsm ); always_comb kv_read.read_entry = read_ctrl_reg.read_entry; -always_comb kv_read.read_offset = read_offset[3:0]; +always_comb kv_read.read_offset = read_offset; always_comb write_data = write_pad ? pad_data : kv_resp.read_data; diff --git a/src/keyvault/rtl/kv_reg.rdl b/src/keyvault/rtl/kv_reg.rdl index ee721eb61..52caf6af2 100644 --- a/src/keyvault/rtl/kv_reg.rdl +++ b/src/keyvault/rtl/kv_reg.rdl @@ -38,7 +38,7 @@ addrmap kv_reg { field {desc="Destination valid bits stored as an array for ease of use in RTL. [br]dest_valid[0] = hmac_key_dest_valid [br]dest_valid[1] = hmac_block_dest_valid - [br]dest_valid[2] = sha_block_dest_valid + [br]dest_valid[2] = mldsa_seed_dest_valid [br]dest_valid[3] = ecc_pkey_dest_valid [br]dest_valid[4] = ecc_seed_dest_valid [br]dest_valid[5] = rsvd @@ -49,10 +49,9 @@ addrmap kv_reg { sw=r; hw=rw; we=true; hwclr; resetsignal = hard_reset_b;} last_dword[4]=0; }; - // Implies we have KV_NUM_KEYS entries of each 64B of width - kvCtrl KEY_CTRL[32] @0x00000000;//Shoud reflect KV_NUM_KEYS from kv_defines_pkg.sv + kvCtrl KEY_CTRL[24] @0x00000000;//Shoud reflect KV_NUM_KEYS from kv_defines_pkg.sv //stick these at the end since sw won't actually address them ever - keyReg KEY_ENTRY[32][12] @0x00000600;//Shoud reflect KV_NUM_KEYS from kv_defines_pkg.sv + keyReg KEY_ENTRY[24][16] @0x00000600;//Shoud reflect KV_NUM_KEYS from kv_defines_pkg.sv reg { field {desc="Fill the keyvault with debug values"; sw=rw; hw=r; singlepulse;} wr_debug_values=0; diff --git a/src/keyvault/rtl/kv_reg.sv b/src/keyvault/rtl/kv_reg.sv index 5e00aca5d..de5e57e00 100644 --- a/src/keyvault/rtl/kv_reg.sv +++ b/src/keyvault/rtl/kv_reg.sv @@ -66,8 +66,8 @@ module kv_reg ( // Address Decode //-------------------------------------------------------------------------- typedef struct packed{ - logic [32-1:0]KEY_CTRL; - logic [32-1:0][12-1:0]KEY_ENTRY; + logic [24-1:0]KEY_CTRL; + logic [24-1:0][16-1:0]KEY_ENTRY; logic CLEAR_SECRETS; } decoded_reg_strb_t; decoded_reg_strb_t decoded_reg_strb; @@ -77,12 +77,12 @@ module kv_reg ( logic [31:0] decoded_wr_biten; always_comb begin - for(int i0=0; i0<32; i0++) begin + for(int i0=0; i0<24; i0++) begin decoded_reg_strb.KEY_CTRL[i0] = cpuif_req_masked & (cpuif_addr == 12'h0 + i0*12'h4); end - for(int i0=0; i0<32; i0++) begin - for(int i1=0; i1<12; i1++) begin - decoded_reg_strb.KEY_ENTRY[i0][i1] = cpuif_req_masked & (cpuif_addr == 12'h600 + i0*12'h30 + i1*12'h4); + for(int i0=0; i0<24; i0++) begin + for(int i1=0; i1<16; i1++) begin + decoded_reg_strb.KEY_ENTRY[i0][i1] = cpuif_req_masked & (cpuif_addr == 12'h600 + i0*12'h40 + i1*12'h4); end end decoded_reg_strb.CLEAR_SECRETS = cpuif_req_masked & (cpuif_addr == 12'hc00); @@ -127,13 +127,13 @@ module kv_reg ( logic [3:0] next; logic load_next; } last_dword; - } [32-1:0]KEY_CTRL; + } [24-1:0]KEY_CTRL; struct packed{ struct packed{ logic [31:0] next; logic load_next; } data; - } [32-1:0][12-1:0]KEY_ENTRY; + } [24-1:0][16-1:0]KEY_ENTRY; struct packed{ struct packed{ logic next; @@ -170,12 +170,12 @@ module kv_reg ( struct packed{ logic [3:0] value; } last_dword; - } [32-1:0]KEY_CTRL; + } [24-1:0]KEY_CTRL; struct packed{ struct packed{ logic [31:0] value; } data; - } [32-1:0][12-1:0]KEY_ENTRY; + } [24-1:0][16-1:0]KEY_ENTRY; struct packed{ struct packed{ logic value; @@ -187,7 +187,7 @@ module kv_reg ( } field_storage_t; field_storage_t field_storage; - for(genvar i0=0; i0<32; i0++) begin + for(genvar i0=0; i0<24; i0++) begin // Field: kv_reg.KEY_CTRL[].lock_wr always_comb begin automatic logic [0:0] next_c; @@ -348,8 +348,8 @@ module kv_reg ( end assign hwif_out.KEY_CTRL[i0].last_dword.value = field_storage.KEY_CTRL[i0].last_dword.value; end - for(genvar i0=0; i0<32; i0++) begin - for(genvar i1=0; i1<12; i1++) begin + for(genvar i0=0; i0<24; i0++) begin + for(genvar i1=0; i1<16; i1++) begin // Field: kv_reg.KEY_ENTRY[][].data always_comb begin automatic logic [31:0] next_c; @@ -441,8 +441,8 @@ module kv_reg ( logic [31:0] readback_data; // Assign readback values to a flattened array - logic [33-1:0][31:0] readback_array; - for(genvar i0=0; i0<32; i0++) begin + logic [25-1:0][31:0] readback_array; + for(genvar i0=0; i0<24; i0++) begin assign readback_array[i0*1 + 0][0:0] = (decoded_reg_strb.KEY_CTRL[i0] && !decoded_req_is_wr) ? field_storage.KEY_CTRL[i0].lock_wr.value : '0; assign readback_array[i0*1 + 0][1:1] = (decoded_reg_strb.KEY_CTRL[i0] && !decoded_req_is_wr) ? field_storage.KEY_CTRL[i0].lock_use.value : '0; assign readback_array[i0*1 + 0][2:2] = (decoded_reg_strb.KEY_CTRL[i0] && !decoded_req_is_wr) ? field_storage.KEY_CTRL[i0].clear.value : '0; @@ -452,9 +452,9 @@ module kv_reg ( assign readback_array[i0*1 + 0][20:17] = (decoded_reg_strb.KEY_CTRL[i0] && !decoded_req_is_wr) ? field_storage.KEY_CTRL[i0].last_dword.value : '0; assign readback_array[i0*1 + 0][31:21] = '0; end - assign readback_array[32][0:0] = (decoded_reg_strb.CLEAR_SECRETS && !decoded_req_is_wr) ? field_storage.CLEAR_SECRETS.wr_debug_values.value : '0; - assign readback_array[32][1:1] = (decoded_reg_strb.CLEAR_SECRETS && !decoded_req_is_wr) ? field_storage.CLEAR_SECRETS.sel_debug_value.value : '0; - assign readback_array[32][31:2] = '0; + assign readback_array[24][0:0] = (decoded_reg_strb.CLEAR_SECRETS && !decoded_req_is_wr) ? field_storage.CLEAR_SECRETS.wr_debug_values.value : '0; + assign readback_array[24][1:1] = (decoded_reg_strb.CLEAR_SECRETS && !decoded_req_is_wr) ? field_storage.CLEAR_SECRETS.sel_debug_value.value : '0; + assign readback_array[24][31:2] = '0; // Reduce the array always_comb begin @@ -462,7 +462,7 @@ module kv_reg ( readback_done = decoded_req & ~decoded_req_is_wr; readback_err = '0; readback_data_var = '0; - for(int i=0; i<33; i++) readback_data_var |= readback_array[i]; + for(int i=0; i<25; i++) readback_data_var |= readback_array[i]; readback_data = readback_data_var; end diff --git a/src/keyvault/rtl/kv_reg_pkg.sv b/src/keyvault/rtl/kv_reg_pkg.sv index 279f76d66..41b122bbb 100644 --- a/src/keyvault/rtl/kv_reg_pkg.sv +++ b/src/keyvault/rtl/kv_reg_pkg.sv @@ -53,8 +53,8 @@ package kv_reg_pkg; logic reset_b; logic core_only_rst_b; logic hard_reset_b; - kv_reg__kvCtrl__in_t [32-1:0]KEY_CTRL; - kv_reg__keyReg__in_t [32-1:0][12-1:0]KEY_ENTRY; + kv_reg__kvCtrl__in_t [24-1:0]KEY_CTRL; + kv_reg__keyReg__in_t [24-1:0][16-1:0]KEY_ENTRY; } kv_reg__in_t; typedef struct packed{ @@ -117,8 +117,8 @@ package kv_reg_pkg; } kv_reg__CLEAR_SECRETS__out_t; typedef struct packed{ - kv_reg__kvCtrl__out_t [32-1:0]KEY_CTRL; - kv_reg__keyReg__out_t [32-1:0][12-1:0]KEY_ENTRY; + kv_reg__kvCtrl__out_t [24-1:0]KEY_CTRL; + kv_reg__keyReg__out_t [24-1:0][16-1:0]KEY_ENTRY; kv_reg__CLEAR_SECRETS__out_t CLEAR_SECRETS; } kv_reg__out_t; diff --git a/src/keyvault/rtl/kv_reg_uvm.sv b/src/keyvault/rtl/kv_reg_uvm.sv index 39166e179..3cf911450 100644 --- a/src/keyvault/rtl/kv_reg_uvm.sv +++ b/src/keyvault/rtl/kv_reg_uvm.sv @@ -131,8 +131,8 @@ package kv_reg_uvm; // Addrmap - kv_reg class kv_reg extends uvm_reg_block; - rand kv_reg__kvCtrl KEY_CTRL[32]; - rand kv_reg__keyReg KEY_ENTRY[32][12]; + rand kv_reg__kvCtrl KEY_CTRL[24]; + rand kv_reg__keyReg KEY_ENTRY[24][16]; rand kv_reg__CLEAR_SECRETS CLEAR_SECRETS; function new(string name = "kv_reg"); @@ -153,7 +153,7 @@ package kv_reg_uvm; this.KEY_ENTRY[i0][i1].configure(this); this.KEY_ENTRY[i0][i1].build(); - this.default_map.add_reg(this.KEY_ENTRY[i0][i1], 'h600 + i0*'h30 + i1*'h4); + this.default_map.add_reg(this.KEY_ENTRY[i0][i1], 'h600 + i0*'h40 + i1*'h4); end this.CLEAR_SECRETS = new("CLEAR_SECRETS"); this.CLEAR_SECRETS.configure(this); diff --git a/src/keyvault/rtl/kv_write_client.sv b/src/keyvault/rtl/kv_write_client.sv index f8a2ca670..63a196156 100644 --- a/src/keyvault/rtl/kv_write_client.sv +++ b/src/keyvault/rtl/kv_write_client.sv @@ -17,8 +17,7 @@ module kv_write_client import kv_defines_pkg::*; #( - parameter DATA_WIDTH = 384 - + parameter DATA_WIDTH = 512 ,localparam DATA_OFFSET_W = $clog2(DATA_WIDTH/32) ,localparam DATA_NUM_DWORDS = (DATA_WIDTH/32) @@ -28,6 +27,8 @@ module kv_write_client input logic rst_b, input logic zeroize, + input logic [DATA_OFFSET_W:0] num_dwords, + //client control register input kv_write_ctrl_reg_t write_ctrl_reg, @@ -65,6 +66,7 @@ kv_dest_write_fsm .start(dest_data_avail & write_ctrl_reg.write_en), .last('0), .pcr_hash_extend(1'b0), + .num_dwords(num_dwords), .read_offset(dest_read_offset), .write_en(dest_write_en), .write_offset(dest_write_offset), diff --git a/src/libs/rtl/caliptra_macros.svh b/src/libs/rtl/caliptra_macros.svh index 37adde970..bf2ca4403 100644 --- a/src/libs/rtl/caliptra_macros.svh +++ b/src/libs/rtl/caliptra_macros.svh @@ -17,7 +17,7 @@ //Debug values for obfuscated secrets when we unlock debug mode through security state `define CLP_DEBUG_MODE_OBF_KEY {256{1'b1}} - `define CLP_DEBUG_MODE_UDS_SEED {384{1'b1}} + `define CLP_DEBUG_MODE_UDS_SEED {512{1'b1}} `define CLP_DEBUG_MODE_FIELD_ENTROPY {256{1'b1}} //Dword values to write into all KV entries during debug mode parameter CLP_DEBUG_MODE_KV_0 = 32'hAAAA_AAAA; @@ -25,6 +25,6 @@ `define CLP_OBF_KEY_DWORDS 8 `define CLP_OBF_FE_DWORDS 8 - `define CLP_OBF_UDS_DWORDS 12 + `define CLP_OBF_UDS_DWORDS 16 `endif diff --git a/src/sha512/rtl/sha512.sv b/src/sha512/rtl/sha512.sv index 2f6af2b7a..6c883e98d 100644 --- a/src/sha512/rtl/sha512.sv +++ b/src/sha512/rtl/sha512.sv @@ -68,7 +68,7 @@ module sha512 output pv_write_t pv_write, input pv_rd_resp_t pv_rd_resp, input pv_wr_resp_t pv_wr_resp, - output logic [KV_NUM_DWORDS-1:0][DATA_WIDTH-1:0] pcr_signing_hash, + output logic [PV_NUM_DWORDS-1:0][DATA_WIDTH-1:0] pcr_signing_hash, // Interrupts output wire error_intr, @@ -96,10 +96,11 @@ module sha512 reg [DATA_WIDTH-1 : 0][BLOCK_NUM_DWORDS-1 : 0] block_reg ; reg [DIG_NUM_DWORDS-1 : 0][DATA_WIDTH-1 : 0] digest_reg; - reg [KV_NUM_DWORDS -1 : 0][DATA_WIDTH-1 : 0] kv_reg; + reg [PV_NUM_DWORDS -1 : 0][DATA_WIDTH-1 : 0] kv_reg; - reg [KV_NUM_DWORDS -1 : 0][DATA_WIDTH-1 : 0] pcr_sign_reg; - logic [KV_NUM_DWORDS-1 : 0][DATA_WIDTH-1 : 0] pcr_sign; + + reg [PV_NUM_DWORDS -1 : 0][DATA_WIDTH-1 : 0] pcr_sign_reg; + logic [PV_NUM_DWORDS-1 : 0][DATA_WIDTH-1 : 0] pcr_sign; logic pcr_sign_we; reg digest_valid_reg; logic digest_we; @@ -174,8 +175,8 @@ module sha512 assign err = read_error | write_error; always_comb begin // ecc_reg_writing - for (int dword=0; dword < KV_NUM_DWORDS; dword++)begin - pcr_signing_hash[dword] = pcr_sign_reg[(KV_NUM_DWORDS-1)-dword]; + for (int dword=0; dword < PV_NUM_DWORDS; dword++)begin + pcr_signing_hash[dword] = pcr_sign_reg[(PV_NUM_DWORDS-1)-dword]; end end @@ -242,7 +243,7 @@ module sha512 else digest_we <= '0; if (core_digest_valid & ~digest_valid_reg & (dest_keyvault | kv_read_data_present)) - kv_reg <= core_digest[DIG_NUM_DWORDS-1:DIG_NUM_DWORDS-KV_NUM_DWORDS]; + kv_reg <= core_digest[DIG_NUM_DWORDS-1:DIG_NUM_DWORDS-PV_NUM_DWORDS]; if (pcr_sign_we) pcr_sign_reg <= pcr_sign; @@ -257,7 +258,7 @@ module sha512 always_comb begin pcr_sign_we = (dest_data_avail & gen_hash_ip); - pcr_sign = core_digest[DIG_NUM_DWORDS-1:DIG_NUM_DWORDS-KV_NUM_DWORDS]; + pcr_sign = core_digest[DIG_NUM_DWORDS-1:DIG_NUM_DWORDS-PV_NUM_DWORDS]; end //register hw interface @@ -289,8 +290,8 @@ module sha512 hwif_in.SHA512_DIGEST[dword].DIGEST.hwclr = zeroize_reg; end //output comes in big endian - for (int dword =0; dword < KV_NUM_DWORDS; dword++) begin - hwif_in.SHA512_GEN_PCR_HASH_DIGEST[dword].DIGEST.next = pcr_sign_reg[(KV_NUM_DWORDS-1)-dword]; + for (int dword =0; dword < PV_NUM_DWORDS; dword++) begin + hwif_in.SHA512_GEN_PCR_HASH_DIGEST[dword].DIGEST.next = pcr_sign_reg[(PV_NUM_DWORDS-1)-dword]; hwif_in.SHA512_GEN_PCR_HASH_DIGEST[dword].DIGEST.hwclr = zeroize_reg; end @@ -418,7 +419,6 @@ sha512_block_kv_read .read_done(kv_src_done) ); - always_comb begin pv_write.write_data = pcr_hash_extend_ip ? vault_write.write_data : '0; pv_write.write_en = pcr_hash_extend_ip ? vault_write.write_en : '0; @@ -445,7 +445,7 @@ always_comb begin end kv_write_client #( - .DATA_WIDTH(384) + .DATA_WIDTH(PV_NUM_DWORDS*PV_DATA_W) ) sha512_result_kv_write ( @@ -455,6 +455,7 @@ sha512_result_kv_write //client control register .write_ctrl_reg(kv_write_ctrl_reg_q), + .num_dwords(PV_NUM_DWORDS[4:0]), //interface with kv .kv_write(vault_write), diff --git a/src/sha512/rtl/sha512_ctrl.sv b/src/sha512/rtl/sha512_ctrl.sv index e21d3ba13..c6462e0af 100644 --- a/src/sha512/rtl/sha512_ctrl.sv +++ b/src/sha512/rtl/sha512_ctrl.sv @@ -54,7 +54,7 @@ module sha512_ctrl output pv_write_t pv_write, input pv_rd_resp_t pv_rd_resp, input pv_wr_resp_t pv_wr_resp, - output logic [KV_NUM_DWORDS-1:0][31:0] pcr_signing_hash, + output logic [PV_NUM_DWORDS-1:0][31:0] pcr_signing_hash, // Interrupt output logic error_intr, diff --git a/src/sha512/rtl/sha512_reg.sv b/src/sha512/rtl/sha512_reg.sv index 3d7b4622a..4c33285f8 100644 --- a/src/sha512/rtl/sha512_reg.sv +++ b/src/sha512/rtl/sha512_reg.sv @@ -248,7 +248,7 @@ module sha512_reg ( struct packed{ logic next; logic load_next; - } sha_block_dest_valid; + } mldsa_seed_dest_valid; struct packed{ logic next; logic load_next; @@ -536,7 +536,7 @@ module sha512_reg ( } hmac_block_dest_valid; struct packed{ logic value; - } sha_block_dest_valid; + } mldsa_seed_dest_valid; struct packed{ logic value; } ecc_pkey_dest_valid; @@ -1098,27 +1098,27 @@ module sha512_reg ( end end assign hwif_out.SHA512_KV_WR_CTRL.hmac_block_dest_valid.value = field_storage.SHA512_KV_WR_CTRL.hmac_block_dest_valid.value; - // Field: sha512_reg.SHA512_KV_WR_CTRL.sha_block_dest_valid + // Field: sha512_reg.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid always_comb begin automatic logic [0:0] next_c; automatic logic load_next_c; - next_c = field_storage.SHA512_KV_WR_CTRL.sha_block_dest_valid.value; + next_c = field_storage.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value; load_next_c = '0; if(decoded_reg_strb.SHA512_KV_WR_CTRL && decoded_req_is_wr) begin // SW write - next_c = (field_storage.SHA512_KV_WR_CTRL.sha_block_dest_valid.value & ~decoded_wr_biten[8:8]) | (decoded_wr_data[8:8] & decoded_wr_biten[8:8]); + next_c = (field_storage.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value & ~decoded_wr_biten[8:8]) | (decoded_wr_data[8:8] & decoded_wr_biten[8:8]); load_next_c = '1; end - field_combo.SHA512_KV_WR_CTRL.sha_block_dest_valid.next = next_c; - field_combo.SHA512_KV_WR_CTRL.sha_block_dest_valid.load_next = load_next_c; + field_combo.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.next = next_c; + field_combo.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.load_next = load_next_c; end always_ff @(posedge clk or negedge hwif_in.reset_b) begin if(~hwif_in.reset_b) begin - field_storage.SHA512_KV_WR_CTRL.sha_block_dest_valid.value <= 1'h0; - end else if(field_combo.SHA512_KV_WR_CTRL.sha_block_dest_valid.load_next) begin - field_storage.SHA512_KV_WR_CTRL.sha_block_dest_valid.value <= field_combo.SHA512_KV_WR_CTRL.sha_block_dest_valid.next; + field_storage.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value <= 1'h0; + end else if(field_combo.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.load_next) begin + field_storage.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value <= field_combo.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.next; end end - assign hwif_out.SHA512_KV_WR_CTRL.sha_block_dest_valid.value = field_storage.SHA512_KV_WR_CTRL.sha_block_dest_valid.value; + assign hwif_out.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value = field_storage.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value; // Field: sha512_reg.SHA512_KV_WR_CTRL.ecc_pkey_dest_valid always_comb begin automatic logic [0:0] next_c; @@ -2103,7 +2103,7 @@ module sha512_reg ( assign readback_array[23][5:1] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.write_entry.value : '0; assign readback_array[23][6:6] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.hmac_key_dest_valid.value : '0; assign readback_array[23][7:7] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.hmac_block_dest_valid.value : '0; - assign readback_array[23][8:8] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.sha_block_dest_valid.value : '0; + assign readback_array[23][8:8] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.mldsa_seed_dest_valid.value : '0; assign readback_array[23][9:9] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.ecc_pkey_dest_valid.value : '0; assign readback_array[23][10:10] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.ecc_seed_dest_valid.value : '0; assign readback_array[23][31:11] = (decoded_reg_strb.SHA512_KV_WR_CTRL && !decoded_req_is_wr) ? field_storage.SHA512_KV_WR_CTRL.rsvd.value : '0; diff --git a/src/sha512/rtl/sha512_reg_pkg.sv b/src/sha512/rtl/sha512_reg_pkg.sv index af94a2b61..87d9e3830 100644 --- a/src/sha512/rtl/sha512_reg_pkg.sv +++ b/src/sha512/rtl/sha512_reg_pkg.sv @@ -266,7 +266,7 @@ package sha512_reg_pkg; typedef struct packed{ logic value; - } kv_write_ctrl_reg__sha_block_dest_valid__out_t; + } kv_write_ctrl_reg__mldsa_seed_dest_valid__out_t; typedef struct packed{ logic value; @@ -285,7 +285,7 @@ package sha512_reg_pkg; kv_write_ctrl_reg__write_entry__out_t write_entry; kv_write_ctrl_reg__hmac_key_dest_valid__out_t hmac_key_dest_valid; kv_write_ctrl_reg__hmac_block_dest_valid__out_t hmac_block_dest_valid; - kv_write_ctrl_reg__sha_block_dest_valid__out_t sha_block_dest_valid; + kv_write_ctrl_reg__mldsa_seed_dest_valid__out_t mldsa_seed_dest_valid; kv_write_ctrl_reg__ecc_pkey_dest_valid__out_t ecc_pkey_dest_valid; kv_write_ctrl_reg__ecc_seed_dest_valid__out_t ecc_seed_dest_valid; kv_write_ctrl_reg__rsvd__out_t rsvd; diff --git a/src/sha512/rtl/sha512_reg_uvm.sv b/src/sha512/rtl/sha512_reg_uvm.sv index e7317ea27..6aee142a8 100644 --- a/src/sha512/rtl/sha512_reg_uvm.sv +++ b/src/sha512/rtl/sha512_reg_uvm.sv @@ -309,7 +309,7 @@ package sha512_reg_uvm; kv_write_ctrl_reg_bit_cg write_entry_bit_cg[5]; kv_write_ctrl_reg_bit_cg hmac_key_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg hmac_block_dest_valid_bit_cg[1]; - kv_write_ctrl_reg_bit_cg sha_block_dest_valid_bit_cg[1]; + kv_write_ctrl_reg_bit_cg mldsa_seed_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg ecc_pkey_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg ecc_seed_dest_valid_bit_cg[1]; kv_write_ctrl_reg_bit_cg rsvd_bit_cg[21]; @@ -318,7 +318,7 @@ package sha512_reg_uvm; rand uvm_reg_field write_entry; rand uvm_reg_field hmac_key_dest_valid; rand uvm_reg_field hmac_block_dest_valid; - rand uvm_reg_field sha_block_dest_valid; + rand uvm_reg_field mldsa_seed_dest_valid; rand uvm_reg_field ecc_pkey_dest_valid; rand uvm_reg_field ecc_seed_dest_valid; rand uvm_reg_field rsvd; @@ -341,8 +341,8 @@ package sha512_reg_uvm; this.hmac_key_dest_valid.configure(this, 1, 6, "RW", 0, 'h0, 1, 1, 0); this.hmac_block_dest_valid = new("hmac_block_dest_valid"); this.hmac_block_dest_valid.configure(this, 1, 7, "RW", 0, 'h0, 1, 1, 0); - this.sha_block_dest_valid = new("sha_block_dest_valid"); - this.sha_block_dest_valid.configure(this, 1, 8, "RW", 0, 'h0, 1, 1, 0); + this.mldsa_seed_dest_valid = new("mldsa_seed_dest_valid"); + this.mldsa_seed_dest_valid.configure(this, 1, 8, "RW", 0, 'h0, 1, 1, 0); this.ecc_pkey_dest_valid = new("ecc_pkey_dest_valid"); this.ecc_pkey_dest_valid.configure(this, 1, 9, "RW", 0, 'h0, 1, 1, 0); this.ecc_seed_dest_valid = new("ecc_seed_dest_valid"); @@ -354,7 +354,7 @@ package sha512_reg_uvm; foreach(write_entry_bit_cg[bt]) write_entry_bit_cg[bt] = new(); foreach(hmac_key_dest_valid_bit_cg[bt]) hmac_key_dest_valid_bit_cg[bt] = new(); foreach(hmac_block_dest_valid_bit_cg[bt]) hmac_block_dest_valid_bit_cg[bt] = new(); - foreach(sha_block_dest_valid_bit_cg[bt]) sha_block_dest_valid_bit_cg[bt] = new(); + foreach(mldsa_seed_dest_valid_bit_cg[bt]) mldsa_seed_dest_valid_bit_cg[bt] = new(); foreach(ecc_pkey_dest_valid_bit_cg[bt]) ecc_pkey_dest_valid_bit_cg[bt] = new(); foreach(ecc_seed_dest_valid_bit_cg[bt]) ecc_seed_dest_valid_bit_cg[bt] = new(); foreach(rsvd_bit_cg[bt]) rsvd_bit_cg[bt] = new(); diff --git a/src/soc_ifc/rtl/caliptra_top_reg.h b/src/soc_ifc/rtl/caliptra_top_reg.h index fd04f3081..7ba3d4d55 100644 --- a/src/soc_ifc/rtl/caliptra_top_reg.h +++ b/src/soc_ifc/rtl/caliptra_top_reg.h @@ -392,156 +392,164 @@ #define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_10 (0x228) #define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_11 (0x3003022c) #define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_11 (0x22c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (0x30030230) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (0x230) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (0x30030234) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (0x234) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (0x30030238) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (0x238) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (0x3003023c) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (0x23c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (0x30030240) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (0x240) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (0x30030244) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (0x244) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (0x30030248) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (0x248) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (0x3003024c) -#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (0x24c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x30030250) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x250) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x30030254) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x254) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x30030258) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x258) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x3003025c) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x25c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x30030260) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x260) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x30030264) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x264) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x30030268) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x268) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x3003026c) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x26c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x30030270) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x270) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x30030274) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x274) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x30030278) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x278) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x3003027c) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x27c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x30030280) -#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x280) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_12 (0x30030230) +#define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_12 (0x230) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_13 (0x30030234) +#define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_13 (0x234) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_14 (0x30030238) +#define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_14 (0x238) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_15 (0x3003023c) +#define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_15 (0x23c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (0x30030240) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (0x240) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (0x30030244) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (0x244) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (0x30030248) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (0x248) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (0x3003024c) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (0x24c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (0x30030250) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (0x250) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (0x30030254) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (0x254) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (0x30030258) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (0x258) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (0x3003025c) +#define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (0x25c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x30030260) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (0x260) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x30030264) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (0x264) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x30030268) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (0x268) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x3003026c) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (0x26c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x30030270) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (0x270) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x30030274) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (0x274) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x30030278) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (0x278) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x3003027c) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (0x27c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x30030280) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (0x280) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x30030284) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (0x284) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x30030288) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (0x288) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x3003028c) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (0x28c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x30030290) +#define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (0x290) #define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_LOW (0) #define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_MASK (0xf) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (0x30030284) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (0x284) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (0x30030288) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (0x288) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (0x3003028c) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (0x28c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (0x30030290) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (0x290) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (0x30030294) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (0x294) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (0x30030298) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (0x298) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (0x3003029c) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (0x29c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (0x300302a0) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (0x2a0) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (0x300302a4) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (0x2a4) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (0x300302a8) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (0x2a8) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (0x300302ac) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (0x2ac) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (0x300302b0) -#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (0x2b0) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x300302b4) -#define GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x2b4) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (0x300302b8) -#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (0x2b8) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (0x300302bc) -#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (0x2bc) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (0x300302c0) -#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (0x2c0) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (0x300302c4) -#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (0x2c4) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x300302c8) -#define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x2c8) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (0x30030294) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (0x294) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (0x30030298) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (0x298) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (0x3003029c) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (0x29c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (0x300302a0) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (0x2a0) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (0x300302a4) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (0x2a4) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (0x300302a8) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (0x2a8) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (0x300302ac) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (0x2ac) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (0x300302b0) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (0x2b0) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (0x300302b4) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (0x2b4) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (0x300302b8) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (0x2b8) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (0x300302bc) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (0x2bc) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (0x300302c0) +#define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (0x2c0) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x300302c4) +#define GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (0x2c4) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (0x300302c8) +#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (0x2c8) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (0x300302cc) +#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (0x2cc) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (0x300302d0) +#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (0x2d0) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (0x300302d4) +#define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (0x2d4) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x300302d8) +#define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (0x2d8) #define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_LOW (0) #define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_MASK (0x1) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (0x300302cc) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (0x2cc) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (0x300302d0) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (0x2d0) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (0x300302d4) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (0x2d4) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (0x300302d8) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (0x2d8) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (0x300302dc) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (0x2dc) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (0x300302e0) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (0x2e0) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (0x300302e4) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (0x2e4) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (0x300302e8) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (0x2e8) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (0x300302ec) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (0x2ec) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (0x300302f0) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (0x2f0) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (0x300302f4) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (0x2f4) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (0x300302f8) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (0x2f8) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (0x300302fc) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (0x2fc) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (0x30030300) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (0x300) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (0x30030304) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (0x304) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (0x30030308) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (0x308) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (0x3003030c) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (0x30c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (0x30030310) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (0x310) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (0x30030314) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (0x314) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (0x30030318) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (0x318) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (0x3003031c) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (0x31c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (0x30030320) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (0x320) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (0x30030324) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (0x324) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (0x30030328) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (0x328) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x3003032c) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x32c) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x30030330) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x330) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x30030334) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x334) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x30030338) -#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x338) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (0x3003033c) -#define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (0x33c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (0x300302dc) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (0x2dc) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (0x300302e0) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (0x2e0) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (0x300302e4) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (0x2e4) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (0x300302e8) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (0x2e8) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (0x300302ec) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (0x2ec) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (0x300302f0) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (0x2f0) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (0x300302f4) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (0x2f4) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (0x300302f8) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (0x2f8) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (0x300302fc) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (0x2fc) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (0x30030300) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (0x300) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (0x30030304) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (0x304) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (0x30030308) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (0x308) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (0x3003030c) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (0x30c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (0x30030310) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (0x310) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (0x30030314) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (0x314) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (0x30030318) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (0x318) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (0x3003031c) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (0x31c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (0x30030320) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (0x320) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (0x30030324) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (0x324) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (0x30030328) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (0x328) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (0x3003032c) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (0x32c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (0x30030330) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (0x330) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (0x30030334) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (0x334) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (0x30030338) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (0x338) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x3003033c) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (0x33c) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x30030340) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (0x340) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x30030344) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (0x344) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x30030348) +#define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (0x348) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (0x3003034c) +#define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (0x34c) #define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_LOW (0) #define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_MASK (0x3) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (0x30030340) -#define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (0x340) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (0x30030350) +#define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (0x350) #define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY_LMS_VERIFY_LOW (0) #define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY_LMS_VERIFY_MASK (0x1) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (0x30030344) -#define GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (0x344) -#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (0x30030348) -#define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (0x348) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (0x30030354) +#define GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (0x354) +#define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (0x30030358) +#define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (0x358) #define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_LOW (0) #define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_MASK (0xffff) diff --git a/src/soc_ifc/rtl/caliptra_top_reg_defines.svh b/src/soc_ifc/rtl/caliptra_top_reg_defines.svh index e6445d61a..c29538396 100644 --- a/src/soc_ifc/rtl/caliptra_top_reg_defines.svh +++ b/src/soc_ifc/rtl/caliptra_top_reg_defines.svh @@ -392,156 +392,164 @@ `define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_10 (32'h228) `define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_11 (32'h3003022c) `define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_11 (32'h22c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (32'h30030230) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (32'h230) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (32'h30030234) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (32'h234) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (32'h30030238) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (32'h238) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (32'h3003023c) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (32'h23c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (32'h30030240) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (32'h240) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (32'h30030244) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (32'h244) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (32'h30030248) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (32'h248) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (32'h3003024c) -`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (32'h24c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h30030250) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h250) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h30030254) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h254) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h30030258) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h258) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h3003025c) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h25c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h30030260) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h260) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h30030264) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h264) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h30030268) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h268) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h3003026c) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h26c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h30030270) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h270) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h30030274) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h274) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h30030278) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h278) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h3003027c) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h27c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h30030280) -`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h280) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_12 (32'h30030230) +`define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_12 (32'h230) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_13 (32'h30030234) +`define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_13 (32'h234) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_14 (32'h30030238) +`define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_14 (32'h238) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_15 (32'h3003023c) +`define GENERIC_AND_FUSE_REG_FUSE_UDS_SEED_15 (32'h23c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (32'h30030240) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_0 (32'h240) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (32'h30030244) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_1 (32'h244) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (32'h30030248) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_2 (32'h248) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (32'h3003024c) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_3 (32'h24c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (32'h30030250) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_4 (32'h250) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (32'h30030254) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_5 (32'h254) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (32'h30030258) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_6 (32'h258) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (32'h3003025c) +`define GENERIC_AND_FUSE_REG_FUSE_FIELD_ENTROPY_7 (32'h25c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h30030260) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_0 (32'h260) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h30030264) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_1 (32'h264) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h30030268) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_2 (32'h268) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h3003026c) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_3 (32'h26c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h30030270) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_4 (32'h270) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h30030274) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_5 (32'h274) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h30030278) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_6 (32'h278) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h3003027c) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_7 (32'h27c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h30030280) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_8 (32'h280) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h30030284) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_9 (32'h284) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h30030288) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_10 (32'h288) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h3003028c) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_11 (32'h28c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h30030290) +`define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK (32'h290) `define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_LOW (0) `define GENERIC_AND_FUSE_REG_FUSE_KEY_MANIFEST_PK_HASH_MASK_MASK_MASK (32'hf) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (32'h30030284) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (32'h284) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (32'h30030288) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (32'h288) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (32'h3003028c) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (32'h28c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (32'h30030290) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (32'h290) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (32'h30030294) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (32'h294) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (32'h30030298) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (32'h298) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (32'h3003029c) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (32'h29c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (32'h300302a0) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (32'h2a0) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (32'h300302a4) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (32'h2a4) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (32'h300302a8) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (32'h2a8) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (32'h300302ac) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (32'h2ac) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (32'h300302b0) -`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (32'h2b0) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h300302b4) -`define GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h2b4) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (32'h300302b8) -`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (32'h2b8) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (32'h300302bc) -`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (32'h2bc) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (32'h300302c0) -`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (32'h2c0) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (32'h300302c4) -`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (32'h2c4) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h300302c8) -`define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h2c8) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (32'h30030294) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_0 (32'h294) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (32'h30030298) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_1 (32'h298) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (32'h3003029c) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_2 (32'h29c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (32'h300302a0) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_3 (32'h2a0) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (32'h300302a4) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_4 (32'h2a4) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (32'h300302a8) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_5 (32'h2a8) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (32'h300302ac) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_6 (32'h2ac) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (32'h300302b0) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_7 (32'h2b0) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (32'h300302b4) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_8 (32'h2b4) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (32'h300302b8) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_9 (32'h2b8) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (32'h300302bc) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_10 (32'h2bc) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (32'h300302c0) +`define GENERIC_AND_FUSE_REG_FUSE_OWNER_PK_HASH_11 (32'h2c0) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h300302c4) +`define GENERIC_AND_FUSE_REG_FUSE_FMC_KEY_MANIFEST_SVN (32'h2c4) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (32'h300302c8) +`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_0 (32'h2c8) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (32'h300302cc) +`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_1 (32'h2cc) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (32'h300302d0) +`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_2 (32'h2d0) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (32'h300302d4) +`define GENERIC_AND_FUSE_REG_FUSE_RUNTIME_SVN_3 (32'h2d4) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h300302d8) +`define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE (32'h2d8) `define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_LOW (0) `define GENERIC_AND_FUSE_REG_FUSE_ANTI_ROLLBACK_DISABLE_DIS_MASK (32'h1) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h300302cc) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h2cc) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h300302d0) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h2d0) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h300302d4) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h2d4) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h300302d8) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h2d8) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h300302dc) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h2dc) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h300302e0) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h2e0) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h300302e4) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h2e4) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h300302e8) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h2e8) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h300302ec) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h2ec) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h300302f0) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h2f0) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h300302f4) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h2f4) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h300302f8) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h2f8) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h300302fc) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h2fc) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h30030300) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h300) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h30030304) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h304) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h30030308) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h308) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h3003030c) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h30c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h30030310) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h310) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h30030314) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h314) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h30030318) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h318) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h3003031c) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h31c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h30030320) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h320) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h30030324) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h324) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h30030328) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h328) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h3003032c) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h32c) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h30030330) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h330) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h30030334) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h334) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h30030338) -`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h338) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (32'h3003033c) -`define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (32'h33c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h300302dc) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_0 (32'h2dc) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h300302e0) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_1 (32'h2e0) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h300302e4) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_2 (32'h2e4) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h300302e8) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_3 (32'h2e8) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h300302ec) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_4 (32'h2ec) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h300302f0) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_5 (32'h2f0) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h300302f4) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_6 (32'h2f4) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h300302f8) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_7 (32'h2f8) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h300302fc) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_8 (32'h2fc) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h30030300) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_9 (32'h300) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h30030304) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_10 (32'h304) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h30030308) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_11 (32'h308) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h3003030c) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_12 (32'h30c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h30030310) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_13 (32'h310) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h30030314) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_14 (32'h314) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h30030318) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_15 (32'h318) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h3003031c) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_16 (32'h31c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h30030320) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_17 (32'h320) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h30030324) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_18 (32'h324) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h30030328) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_19 (32'h328) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h3003032c) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_20 (32'h32c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h30030330) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_21 (32'h330) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h30030334) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_22 (32'h334) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h30030338) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_CERT_ATTR_23 (32'h338) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h3003033c) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_0 (32'h33c) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h30030340) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_1 (32'h340) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h30030344) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_2 (32'h344) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h30030348) +`define GENERIC_AND_FUSE_REG_FUSE_IDEVID_MANUF_HSM_ID_3 (32'h348) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (32'h3003034c) +`define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE (32'h34c) `define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_LOW (0) `define GENERIC_AND_FUSE_REG_FUSE_LIFE_CYCLE_LIFE_CYCLE_MASK (32'h3) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (32'h30030340) -`define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (32'h340) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (32'h30030350) +`define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY (32'h350) `define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY_LMS_VERIFY_LOW (0) `define GENERIC_AND_FUSE_REG_FUSE_LMS_VERIFY_LMS_VERIFY_MASK (32'h1) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (32'h30030344) -`define GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (32'h344) -`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (32'h30030348) -`define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (32'h348) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (32'h30030354) +`define GENERIC_AND_FUSE_REG_FUSE_LMS_REVOCATION (32'h354) +`define CALIPTRA_TOP_REG_GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (32'h30030358) +`define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID (32'h358) `define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_LOW (0) `define GENERIC_AND_FUSE_REG_FUSE_SOC_STEPPING_ID_SOC_STEPPING_ID_MASK (32'hffff) diff --git a/src/soc_ifc/rtl/soc_ifc_fuse_reg.rdl b/src/soc_ifc/rtl/soc_ifc_fuse_reg.rdl index 3ab2cf632..93fa6c27f 100644 --- a/src/soc_ifc/rtl/soc_ifc_fuse_reg.rdl +++ b/src/soc_ifc/rtl/soc_ifc_fuse_reg.rdl @@ -26,7 +26,7 @@ reg { [br]Caliptra Access: - [br]SOC Access: WL-S"; secret seed[32]=0; -} fuse_uds_seed[12] @0x200; +} fuse_uds_seed[16] @0x200; reg { name = "Field Entropy"; desc = "Obfuscated Field Entropy. diff --git a/src/soc_ifc/rtl/soc_ifc_reg.sv b/src/soc_ifc/rtl/soc_ifc_reg.sv index 353d469a6..d179af23c 100644 --- a/src/soc_ifc/rtl/soc_ifc_reg.sv +++ b/src/soc_ifc/rtl/soc_ifc_reg.sv @@ -107,7 +107,7 @@ module soc_ifc_reg ( logic CPTRA_iTRNG_ENTROPY_CONFIG_0; logic CPTRA_iTRNG_ENTROPY_CONFIG_1; logic [2-1:0]CPTRA_RSVD_REG; - logic [12-1:0]fuse_uds_seed; + logic [16-1:0]fuse_uds_seed; logic [8-1:0]fuse_field_entropy; logic [12-1:0]fuse_key_manifest_pk_hash; logic fuse_key_manifest_pk_hash_mask; @@ -244,34 +244,34 @@ module soc_ifc_reg ( for(int i0=0; i0<2; i0++) begin decoded_reg_strb.CPTRA_RSVD_REG[i0] = cpuif_req_masked & (cpuif_addr == 12'h120 + i0*12'h4); end - for(int i0=0; i0<12; i0++) begin + for(int i0=0; i0<16; i0++) begin decoded_reg_strb.fuse_uds_seed[i0] = cpuif_req_masked & (cpuif_addr == 12'h200 + i0*12'h4); end for(int i0=0; i0<8; i0++) begin - decoded_reg_strb.fuse_field_entropy[i0] = cpuif_req_masked & (cpuif_addr == 12'h230 + i0*12'h4); + decoded_reg_strb.fuse_field_entropy[i0] = cpuif_req_masked & (cpuif_addr == 12'h240 + i0*12'h4); end for(int i0=0; i0<12; i0++) begin - decoded_reg_strb.fuse_key_manifest_pk_hash[i0] = cpuif_req_masked & (cpuif_addr == 12'h250 + i0*12'h4); + decoded_reg_strb.fuse_key_manifest_pk_hash[i0] = cpuif_req_masked & (cpuif_addr == 12'h260 + i0*12'h4); end - decoded_reg_strb.fuse_key_manifest_pk_hash_mask = cpuif_req_masked & (cpuif_addr == 12'h280); + decoded_reg_strb.fuse_key_manifest_pk_hash_mask = cpuif_req_masked & (cpuif_addr == 12'h290); for(int i0=0; i0<12; i0++) begin - decoded_reg_strb.fuse_owner_pk_hash[i0] = cpuif_req_masked & (cpuif_addr == 12'h284 + i0*12'h4); + decoded_reg_strb.fuse_owner_pk_hash[i0] = cpuif_req_masked & (cpuif_addr == 12'h294 + i0*12'h4); end - decoded_reg_strb.fuse_fmc_key_manifest_svn = cpuif_req_masked & (cpuif_addr == 12'h2b4); + decoded_reg_strb.fuse_fmc_key_manifest_svn = cpuif_req_masked & (cpuif_addr == 12'h2c4); for(int i0=0; i0<4; i0++) begin - decoded_reg_strb.fuse_runtime_svn[i0] = cpuif_req_masked & (cpuif_addr == 12'h2b8 + i0*12'h4); + decoded_reg_strb.fuse_runtime_svn[i0] = cpuif_req_masked & (cpuif_addr == 12'h2c8 + i0*12'h4); end - decoded_reg_strb.fuse_anti_rollback_disable = cpuif_req_masked & (cpuif_addr == 12'h2c8); + decoded_reg_strb.fuse_anti_rollback_disable = cpuif_req_masked & (cpuif_addr == 12'h2d8); for(int i0=0; i0<24; i0++) begin - decoded_reg_strb.fuse_idevid_cert_attr[i0] = cpuif_req_masked & (cpuif_addr == 12'h2cc + i0*12'h4); + decoded_reg_strb.fuse_idevid_cert_attr[i0] = cpuif_req_masked & (cpuif_addr == 12'h2dc + i0*12'h4); end for(int i0=0; i0<4; i0++) begin - decoded_reg_strb.fuse_idevid_manuf_hsm_id[i0] = cpuif_req_masked & (cpuif_addr == 12'h32c + i0*12'h4); + decoded_reg_strb.fuse_idevid_manuf_hsm_id[i0] = cpuif_req_masked & (cpuif_addr == 12'h33c + i0*12'h4); end - decoded_reg_strb.fuse_life_cycle = cpuif_req_masked & (cpuif_addr == 12'h33c); - decoded_reg_strb.fuse_lms_verify = cpuif_req_masked & (cpuif_addr == 12'h340); - decoded_reg_strb.fuse_lms_revocation = cpuif_req_masked & (cpuif_addr == 12'h344); - decoded_reg_strb.fuse_soc_stepping_id = cpuif_req_masked & (cpuif_addr == 12'h348); + decoded_reg_strb.fuse_life_cycle = cpuif_req_masked & (cpuif_addr == 12'h34c); + decoded_reg_strb.fuse_lms_verify = cpuif_req_masked & (cpuif_addr == 12'h350); + decoded_reg_strb.fuse_lms_revocation = cpuif_req_masked & (cpuif_addr == 12'h354); + decoded_reg_strb.fuse_soc_stepping_id = cpuif_req_masked & (cpuif_addr == 12'h358); for(int i0=0; i0<8; i0++) begin decoded_reg_strb.internal_obf_key[i0] = cpuif_req_masked & (cpuif_addr == 12'h600 + i0*12'h4); end @@ -625,7 +625,7 @@ module soc_ifc_reg ( logic [31:0] next; logic load_next; } seed; - } [12-1:0]fuse_uds_seed; + } [16-1:0]fuse_uds_seed; struct packed{ struct packed{ logic [31:0] next; @@ -1470,7 +1470,7 @@ module soc_ifc_reg ( struct packed{ logic [31:0] value; } seed; - } [12-1:0]fuse_uds_seed; + } [16-1:0]fuse_uds_seed; struct packed{ struct packed{ logic [31:0] value; @@ -3076,7 +3076,7 @@ module soc_ifc_reg ( end end end - for(genvar i0=0; i0<12; i0++) begin + for(genvar i0=0; i0<16; i0++) begin // Field: soc_ifc_reg.fuse_uds_seed[].seed always_comb begin automatic logic [31:0] next_c; diff --git a/src/soc_ifc/rtl/soc_ifc_reg_pkg.sv b/src/soc_ifc/rtl/soc_ifc_reg_pkg.sv index 2172b382c..30f4eb8d3 100644 --- a/src/soc_ifc/rtl/soc_ifc_reg_pkg.sv +++ b/src/soc_ifc/rtl/soc_ifc_reg_pkg.sv @@ -454,7 +454,7 @@ package soc_ifc_reg_pkg; soc_ifc_reg__CPTRA_WDT_STATUS__in_t CPTRA_WDT_STATUS; soc_ifc_reg__CPTRA_FUSE_VALID_AXI_ID__in_t CPTRA_FUSE_VALID_AXI_ID; soc_ifc_reg__CPTRA_FUSE_AXI_ID_LOCK__in_t CPTRA_FUSE_AXI_ID_LOCK; - soc_ifc_reg__fuse_uds_seed__in_t [12-1:0]fuse_uds_seed; + soc_ifc_reg__fuse_uds_seed__in_t [16-1:0]fuse_uds_seed; soc_ifc_reg__fuse_field_entropy__in_t [8-1:0]fuse_field_entropy; soc_ifc_reg__fuse_key_manifest_pk_hash__in_t [12-1:0]fuse_key_manifest_pk_hash; soc_ifc_reg__fuse_key_manifest_pk_hash_mask__in_t fuse_key_manifest_pk_hash_mask; @@ -1003,7 +1003,7 @@ package soc_ifc_reg_pkg; soc_ifc_reg__CPTRA_WDT_STATUS__out_t CPTRA_WDT_STATUS; soc_ifc_reg__CPTRA_FUSE_VALID_AXI_ID__out_t CPTRA_FUSE_VALID_AXI_ID; soc_ifc_reg__CPTRA_FUSE_AXI_ID_LOCK__out_t CPTRA_FUSE_AXI_ID_LOCK; - soc_ifc_reg__fuse_uds_seed__out_t [12-1:0]fuse_uds_seed; + soc_ifc_reg__fuse_uds_seed__out_t [16-1:0]fuse_uds_seed; soc_ifc_reg__fuse_field_entropy__out_t [8-1:0]fuse_field_entropy; soc_ifc_reg__fuse_key_manifest_pk_hash__out_t [12-1:0]fuse_key_manifest_pk_hash; soc_ifc_reg__fuse_key_manifest_pk_hash_mask__out_t fuse_key_manifest_pk_hash_mask; diff --git a/src/soc_ifc/rtl/soc_ifc_reg_uvm.sv b/src/soc_ifc/rtl/soc_ifc_reg_uvm.sv index da67c9fe0..aab915dd3 100644 --- a/src/soc_ifc/rtl/soc_ifc_reg_uvm.sv +++ b/src/soc_ifc/rtl/soc_ifc_reg_uvm.sv @@ -3761,7 +3761,7 @@ package soc_ifc_reg_uvm; rand soc_ifc_reg__CPTRA_iTRNG_ENTROPY_CONFIG_0 CPTRA_iTRNG_ENTROPY_CONFIG_0; rand soc_ifc_reg__CPTRA_iTRNG_ENTROPY_CONFIG_1 CPTRA_iTRNG_ENTROPY_CONFIG_1; rand soc_ifc_reg__CPTRA_RSVD_REG CPTRA_RSVD_REG[2]; - rand soc_ifc_reg__fuse_uds_seed fuse_uds_seed[12]; + rand soc_ifc_reg__fuse_uds_seed fuse_uds_seed[16]; rand soc_ifc_reg__fuse_field_entropy fuse_field_entropy[8]; rand soc_ifc_reg__fuse_key_manifest_pk_hash fuse_key_manifest_pk_hash[12]; rand soc_ifc_reg__fuse_key_manifest_pk_hash_mask fuse_key_manifest_pk_hash_mask; @@ -4035,78 +4035,78 @@ package soc_ifc_reg_uvm; this.fuse_field_entropy[i0].configure(this); this.fuse_field_entropy[i0].build(); - this.default_map.add_reg(this.fuse_field_entropy[i0], 'h230 + i0*'h4); + this.default_map.add_reg(this.fuse_field_entropy[i0], 'h240 + i0*'h4); end foreach(this.fuse_key_manifest_pk_hash[i0]) begin this.fuse_key_manifest_pk_hash[i0] = new($sformatf("fuse_key_manifest_pk_hash[%0d]", i0)); this.fuse_key_manifest_pk_hash[i0].configure(this); this.fuse_key_manifest_pk_hash[i0].build(); - this.default_map.add_reg(this.fuse_key_manifest_pk_hash[i0], 'h250 + i0*'h4); + this.default_map.add_reg(this.fuse_key_manifest_pk_hash[i0], 'h260 + i0*'h4); end this.fuse_key_manifest_pk_hash_mask = new("fuse_key_manifest_pk_hash_mask"); this.fuse_key_manifest_pk_hash_mask.configure(this); this.fuse_key_manifest_pk_hash_mask.build(); - this.default_map.add_reg(this.fuse_key_manifest_pk_hash_mask, 'h280); + this.default_map.add_reg(this.fuse_key_manifest_pk_hash_mask, 'h290); foreach(this.fuse_owner_pk_hash[i0]) begin this.fuse_owner_pk_hash[i0] = new($sformatf("fuse_owner_pk_hash[%0d]", i0)); this.fuse_owner_pk_hash[i0].configure(this); this.fuse_owner_pk_hash[i0].build(); - this.default_map.add_reg(this.fuse_owner_pk_hash[i0], 'h284 + i0*'h4); + this.default_map.add_reg(this.fuse_owner_pk_hash[i0], 'h294 + i0*'h4); end this.fuse_fmc_key_manifest_svn = new("fuse_fmc_key_manifest_svn"); this.fuse_fmc_key_manifest_svn.configure(this); this.fuse_fmc_key_manifest_svn.build(); - this.default_map.add_reg(this.fuse_fmc_key_manifest_svn, 'h2b4); + this.default_map.add_reg(this.fuse_fmc_key_manifest_svn, 'h2c4); foreach(this.fuse_runtime_svn[i0]) begin this.fuse_runtime_svn[i0] = new($sformatf("fuse_runtime_svn[%0d]", i0)); this.fuse_runtime_svn[i0].configure(this); this.fuse_runtime_svn[i0].build(); - this.default_map.add_reg(this.fuse_runtime_svn[i0], 'h2b8 + i0*'h4); + this.default_map.add_reg(this.fuse_runtime_svn[i0], 'h2c8 + i0*'h4); end this.fuse_anti_rollback_disable = new("fuse_anti_rollback_disable"); this.fuse_anti_rollback_disable.configure(this); this.fuse_anti_rollback_disable.build(); - this.default_map.add_reg(this.fuse_anti_rollback_disable, 'h2c8); + this.default_map.add_reg(this.fuse_anti_rollback_disable, 'h2d8); foreach(this.fuse_idevid_cert_attr[i0]) begin this.fuse_idevid_cert_attr[i0] = new($sformatf("fuse_idevid_cert_attr[%0d]", i0)); this.fuse_idevid_cert_attr[i0].configure(this); this.fuse_idevid_cert_attr[i0].build(); - this.default_map.add_reg(this.fuse_idevid_cert_attr[i0], 'h2cc + i0*'h4); + this.default_map.add_reg(this.fuse_idevid_cert_attr[i0], 'h2dc + i0*'h4); end foreach(this.fuse_idevid_manuf_hsm_id[i0]) begin this.fuse_idevid_manuf_hsm_id[i0] = new($sformatf("fuse_idevid_manuf_hsm_id[%0d]", i0)); this.fuse_idevid_manuf_hsm_id[i0].configure(this); this.fuse_idevid_manuf_hsm_id[i0].build(); - this.default_map.add_reg(this.fuse_idevid_manuf_hsm_id[i0], 'h32c + i0*'h4); + this.default_map.add_reg(this.fuse_idevid_manuf_hsm_id[i0], 'h33c + i0*'h4); end this.fuse_life_cycle = new("fuse_life_cycle"); this.fuse_life_cycle.configure(this); this.fuse_life_cycle.build(); - this.default_map.add_reg(this.fuse_life_cycle, 'h33c); + this.default_map.add_reg(this.fuse_life_cycle, 'h34c); this.fuse_lms_verify = new("fuse_lms_verify"); this.fuse_lms_verify.configure(this); this.fuse_lms_verify.build(); - this.default_map.add_reg(this.fuse_lms_verify, 'h340); + this.default_map.add_reg(this.fuse_lms_verify, 'h350); this.fuse_lms_revocation = new("fuse_lms_revocation"); this.fuse_lms_revocation.configure(this); this.fuse_lms_revocation.build(); - this.default_map.add_reg(this.fuse_lms_revocation, 'h344); + this.default_map.add_reg(this.fuse_lms_revocation, 'h354); this.fuse_soc_stepping_id = new("fuse_soc_stepping_id"); this.fuse_soc_stepping_id.configure(this); this.fuse_soc_stepping_id.build(); - this.default_map.add_reg(this.fuse_soc_stepping_id, 'h348); + this.default_map.add_reg(this.fuse_soc_stepping_id, 'h358); foreach(this.internal_obf_key[i0]) begin this.internal_obf_key[i0] = new($sformatf("internal_obf_key[%0d]", i0)); this.internal_obf_key[i0].configure(this); diff --git a/src/soc_ifc/rtl/soc_ifc_top.sv b/src/soc_ifc/rtl/soc_ifc_top.sv index d2d46922a..33811e707 100644 --- a/src/soc_ifc/rtl/soc_ifc_top.sv +++ b/src/soc_ifc/rtl/soc_ifc_top.sv @@ -615,13 +615,15 @@ end // Make the relevant fuses sticky on fuse_wr_done always_comb begin + for (int i=0; i < `CLP_OBF_UDS_DWORDS; i++) begin + soc_ifc_reg_hwif_in.fuse_uds_seed[i].seed.swwel = soc_ifc_reg_hwif_out.CPTRA_FUSE_WR_DONE.done.value; + end for (int i=0; i<12; i++) begin soc_ifc_reg_hwif_in.fuse_key_manifest_pk_hash[i].hash.swwel = soc_ifc_reg_hwif_out.CPTRA_FUSE_WR_DONE.done.value; soc_ifc_reg_hwif_in.fuse_owner_pk_hash[i].hash.swwel = soc_ifc_reg_hwif_out.CPTRA_FUSE_WR_DONE.done.value; - soc_ifc_reg_hwif_in.fuse_uds_seed[i].seed.swwel = soc_ifc_reg_hwif_out.CPTRA_FUSE_WR_DONE.done.value; end - for (int i=0; i<8; i++) begin + for (int i=0; i < `CLP_OBF_FE_DWORDS; i++) begin soc_ifc_reg_hwif_in.fuse_field_entropy[i].seed.swwel = soc_ifc_reg_hwif_out.CPTRA_FUSE_WR_DONE.done.value; end diff --git a/src/soc_ifc/tb/soc_ifc_tb.sv b/src/soc_ifc/tb/soc_ifc_tb.sv index c00158c61..083658656 100644 --- a/src/soc_ifc/tb/soc_ifc_tb.sv +++ b/src/soc_ifc/tb/soc_ifc_tb.sv @@ -496,12 +496,12 @@ module soc_ifc_tb //---------------------------------------------------------------- task load_fuses; begin - for (int i = 0; i < 12; i++)begin + for (int i = 0; i < `CLP_OBF_UDS_DWORDS; i++)begin write_single_word_apb(MBOX_UDS_ADDR + i*4, cptra_uds_tb[i]); end $display ("SoC: Writing obfuscated Field Entropy to fuse bank\n"); - for (int i = 0; i < 32; i++)begin + for (int i = 0; i < `CLP_OBF_FE_DWORDS; i++)begin write_single_word_apb(MBOX_FE_ADDR + i*4, cptra_fe_tb[i]); end @@ -574,13 +574,13 @@ module soc_ifc_tb pauser_i_tb = 0; //Key for UDS - cptra_uds_tb = 384'he4046d05385ab789c6a72866e08350f93f583e2a005ca0faecc32b5cfc323d461c76c107307654db5566a5bd693e227c; + cptra_uds_tb = {256'hb32e2b171b63827034ebb0d1909f7ef1d51c5f82c1bb9bc26bc4ac4dccdee835, + 256'h7dca6154c2510ae1c87b1b422b02b621bb06cac280023894fcff3406af08ee9b, + 256'he1dd72419beccddff77c722d992cdcc87e9c7486f56ab406ea608d8c6aeb060c, + 256'h64cf2785ad1a159147567e39e303370da445247526d95942bf4d7e88057178b0}; //Key for FE - cptra_fe_tb = {256'hb32e2b171b63827034ebb0d1909f7ef1d51c5f82c1bb9bc26bc4ac4dccdee835, - 256'h7dca6154c2510ae1c87b1b422b02b621bb06cac280023894fcff3406af08ee9b, - 256'he1dd72419beccddff77c722d992cdcc87e9c7486f56ab406ea608d8c6aeb060c, - 256'h64cf2785ad1a159147567e39e303370da445247526d95942bf4d7e88057178b0}; + cptra_fe_tb = 256'he4046d05385ab789c6a72866e08350f93f583e2a005ca0faecc32b5cfc323d46; end endtask // init_sim diff --git a/submodules/adams-bridge b/submodules/adams-bridge index ed221e26a..1e2767fa4 160000 --- a/submodules/adams-bridge +++ b/submodules/adams-bridge @@ -1 +1 @@ -Subproject commit ed221e26aecff7e62563626930a62cc477cae677 +Subproject commit 1e2767fa4dfff6e745722c5b203fe8c3520ed4bc diff --git a/tools/scripts/reg_gen.sh b/tools/scripts/reg_gen.sh index 74b9a71fd..c68d3867e 100755 --- a/tools/scripts/reg_gen.sh +++ b/tools/scripts/reg_gen.sh @@ -14,14 +14,14 @@ # limitations under the License. # -python3 tools/scripts/reg_gen.py src/keyvault/rtl/kv_reg.rdl -python3 tools/scripts/reg_gen.py src/pcrvault/rtl/pv_reg.rdl -python3 tools/scripts/reg_gen.py src/datavault/rtl/dv_reg.rdl -python3 tools/scripts/reg_gen.py src/ecc/rtl/ecc_reg.rdl -python3 tools/scripts/reg_gen.py src/sha512/rtl/sha512_reg.rdl -python3 tools/scripts/reg_gen.py src/sha256/rtl/sha256_reg.rdl -python3 tools/scripts/reg_gen.py src/soc_ifc/rtl/mbox_csr.rdl -python3 tools/scripts/reg_gen.py src/soc_ifc/rtl/sha512_acc_csr.rdl -python3 tools/scripts/reg_gen.py src/soc_ifc/rtl/soc_ifc_reg.rdl -python3 tools/scripts/reg_gen.py src/hmac/rtl/hmac_reg.rdl -python3 tools/scripts/reg_gen.py src/doe/rtl/doe_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/keyvault/rtl/kv_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/pcrvault/rtl/pv_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/datavault/rtl/dv_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/ecc/rtl/ecc_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/sha512/rtl/sha512_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/sha256/rtl/sha256_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/soc_ifc/rtl/mbox_csr.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/soc_ifc/rtl/sha512_acc_csr.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/soc_ifc/rtl/soc_ifc_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/hmac/rtl/hmac_reg.rdl +python3 tools/scripts/reg_gen.py $CALIPTRA_ROOT/src/doe/rtl/doe_reg.rdl