[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