diff options
author | Rob Austein <sra@hactrn.net> | 2015-09-23 16:21:34 -0400 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2015-09-23 16:21:34 -0400 |
commit | 99c3749c85b85b4865c4baafdd16b2cbb3ac52f2 (patch) | |
tree | 99a2ecef007a8a5c6c77644758f2017549243529 /sw/cryptech.h | |
parent | f141a79d805acbab07876d9f007e8809603718b5 (diff) | |
parent | 5f1de63e3bc6043ee10683a2c9fd8a7c03a3983a (diff) |
Merge branch 'modexps6' into config_core_selector_sra
Diffstat (limited to 'sw/cryptech.h')
-rw-r--r-- | sw/cryptech.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/sw/cryptech.h b/sw/cryptech.h index 9535061..8a7361f 100644 --- a/sw/cryptech.h +++ b/sw/cryptech.h @@ -400,6 +400,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 |