aboutsummaryrefslogtreecommitdiff
path: root/sw/cryptech.h
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2015-07-17 10:31:26 -0400
committerPaul Selkirk <paul@psgd.org>2015-07-17 10:31:26 -0400
commitc44c8a77b56778c951fb09f94a577057573dbfa7 (patch)
tree5b9eea8bbdc21772e27844eb7b30549646da6e78 /sw/cryptech.h
parent33cc55adaf9ff31473802414f9c0d6e4a553cddf (diff)
experimental modexps6 (which requires changing the read timing on all other cores)
Diffstat (limited to 'sw/cryptech.h')
-rw-r--r--sw/cryptech.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/sw/cryptech.h b/sw/cryptech.h
index 5b01bc9..aeafc1b 100644
--- a/sw/cryptech.h
+++ b/sw/cryptech.h
@@ -421,6 +421,37 @@ in order to map it into a 16-bit address space.
#define MODEXP_NAME1 "xp "
#define MODEXP_VERSION "0.51"
+// Experimental ModexpS6 core.
+// XXX AT THE SAME CORE PREFIX - YOU CAN'T HAVE BOTH AT THE SAME TIME
+#define MODEXPS6_ADDR_BASE SEGMENT_OFFSET_MATH + (0x00 * CORE_SIZE)
+#define MODEXPS6_ADDR_NAME0 MODEXPS6_ADDR_BASE + ADDR_NAME0
+#define MODEXPS6_ADDR_NAME1 MODEXPS6_ADDR_BASE + ADDR_NAME1
+#define MODEXPS6_ADDR_VERSION MODEXPS6_ADDR_BASE + ADDR_VERSION
+#define MODEXPS6_ADDR_CTRL MODEXPS6_ADDR_BASE + ADDR_CTRL
+#define MODEXPS6_CTRL_INIT_BIT 1
+#define MODEXPS6_CTRL_NEXT_BIT 2
+#define MODEXPS6_ADDR_STATUS MODEXPS6_ADDR_BASE + ADDR_STATUS
+
+/* 4096-bit operands are stored as 128 words of 32 bits */
+#define MODEXPS6_OPERAND_SIZE 4096/32
+
+#define MODEXPS6_ADDR_REGISTERS MODEXPS6_ADDR_BASE + 0*MODEXPS6_OPERAND_SIZE
+#define MODEXPS6_ADDR_OPERANDS MODEXPS6_ADDR_BASE + 4*MODEXPS6_OPERAND_SIZE
+
+#define MODEXPS6_ADDR_MODE MODEXPS6_ADDR_REGISTERS + 0x10
+#define MODEXPS6_ADDR_MODULUS_WIDTH MODEXPS6_ADDR_REGISTERS + 0x11
+#define MODEXPS6_ADDR_EXPONENT_WIDTH MODEXPS6_ADDR_REGISTERS + 0x12
+
+/* addresses of block memories for operands */
+#define MODEXPS6_ADDR_MODULUS MODEXPS6_ADDR_OPERANDS + 0*MODEXPS6_OPERAND_SIZE
+#define MODEXPS6_ADDR_MESSAGE MODEXPS6_ADDR_OPERANDS + 1*MODEXPS6_OPERAND_SIZE
+#define MODEXPS6_ADDR_EXPONENT MODEXPS6_ADDR_OPERANDS + 2*MODEXPS6_OPERAND_SIZE
+#define MODEXPS6_ADDR_RESULT MODEXPS6_ADDR_OPERANDS + 3*MODEXPS6_OPERAND_SIZE
+
+#define MODEXPS6_NAME0 "mode"
+#define MODEXPS6_NAME1 "xps6"
+#define MODEXPS6_VERSION "0.10"
+
//------------------------------------------------------------------
// Test case public functions