[Cryptech-Commits] [core/util/keywrap] 06/37: Adding more functionality needed for the mkm integration.
git at cryptech.is
git at cryptech.is
Wed Apr 29 16:51:42 UTC 2020
This is an automated email from the git hooks/post-receive script.
paul at psgd.org pushed a commit to branch master
in repository core/util/keywrap.
commit 0c7becd454c9daf400eaff51978e7a27ed88f6c6
Author: Joachim Strömbergson <joachim at secworks.se>
AuthorDate: Tue Sep 18 14:44:39 2018 +0200
Adding more functionality needed for the mkm integration.
---
src/rtl/keywrap_core.v | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/src/rtl/keywrap_core.v b/src/rtl/keywrap_core.v
index c517757..9ae1e75 100644
--- a/src/rtl/keywrap_core.v
+++ b/src/rtl/keywrap_core.v
@@ -96,6 +96,21 @@ module keywrap_core #(parameter MEM_BITS = 11)
localparam CTRL_WRITE_START = 5'h18;
localparam CTRL_WRITE_END = 5'h19;
+ // API for mkm used by the core.
+ localparam MKM_ADDR_CTRL = 8'h08;
+ localparam MKM_CTRL_READ_BIT = 0;
+ localparam MKM_CTRL_WRITE_BIT = 1;
+ localparam MKM_ADDR_STATUS = 8'h09;
+ localparam MKM_STATUS_READY_BIT = 0;
+ localparam MKM_STATUS_VALID_BIT = 1;
+ localparam MKM_ADDR_SCLK_DIV = 8'h0a;
+ localparam MKM_ADDR_EMEM_ADDR = 8'h10;
+ localparam MKM_ADDR_EMEM_DATA = 8'h20;
+
+ // Addresses for storage in the mkm
+ localparam MKM_STATUS_WORD = 8'h00;
+ localparam MKM_KEY_BASE_WORD = 8'h04;
+
//----------------------------------------------------------------
// Registers and memories including control signals.
@@ -129,6 +144,17 @@ module keywrap_core #(parameter MEM_BITS = 11)
reg iteration_ctr_set;
reg iteration_ctr_rst;
+ reg [31 : 0] core_key [0 : 7];
+ reg core_key_we;
+
+ reg [2 : 0] mkm_word_ctr_reg;
+ reg [2 : 0] mkm_word_ctr_new;
+ reg mkm_word_ctr_we;
+
+ reg [7 : 0] mkm_addr_reg;
+ reg [7 : 0] mkm_addr_new;
+ reg mkm_addr_we;
+
reg [4 : 0] keywrap_core_ctrl_reg;
reg [4 : 0] keywrap_core_ctrl_new;
reg keywrap_core_ctrl_we;
@@ -226,13 +252,20 @@ module keywrap_core #(parameter MEM_BITS = 11)
//----------------------------------------------------------------
always @ (posedge clk or negedge reset_n)
begin: reg_update
+ integer i;
+
if (!reset_n)
begin
+ for (i = 0 ; i < 8 ; i = i + 1)
+ core_key[i] <= 32'h0;
+
a_reg <= 64'h0;
ready_reg <= 1'h1;
valid_reg <= 1'h1;
block_ctr_reg <= {(MEM_BITS - 1){1'h0}};
iteration_ctr_reg <= 3'h0;
+ mkm_word_ctr_reg <= 3'h0;
+ mkm_addr_reg <= 8'h0;
keywrap_core_ctrl_reg <= CTRL_IDLE;
end
More information about the Commits
mailing list