\n

Peripheral_Registers

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0x14 byte (0x0)
mem_usage : registers
protection :

Registers

CONFIG_REG

VERSION_REG

COMMAND_REG

CONTROL_REG

STATUS_REG


CONFIG_REG

Configuration register
address_offset : 0x0 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CONFIG_REG CONFIG_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ECC_OpPtrA ECC_OpPtrB ECC_OpPtrC

ECC_OpPtrA : When executing primitive arithmetic operations, this Pointer defines where operand A is located in memory.
bits : 0 - 4 (5 bit)
access : read-write

ECC_OpPtrB : When executing primitive arithmetic operations, this Pointer defines where operand B is located in memory.
bits : 8 - 20 (13 bit)
access : read-write

ECC_OpPtrC : When executing primitive arithmetic operations, this pointer defines the location where the result will be stored in Memory.
bits : 16 - 36 (21 bit)
access : read-write


VERSION_REG

Version register
address_offset : 0x10 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

VERSION_REG VERSION_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ECC_SVN ECC_HVN

ECC_SVN : Version of Crypto code to be read via CPU interface.Note that this should be read before ECC is used since it corrupts its contents.
bits : 0 - 7 (8 bit)
access : read-only

ECC_HVN : Version of IP to be read via CPU interface.
bits : 8 - 23 (16 bit)
access : read-only


COMMAND_REG

Command register
address_offset : 0x4 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

COMMAND_REG COMMAND_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ECC_TypeOperation ECC_Field ECC_SizeOfOperands ECC_SignA ECC_SignB ECC_CalcR2

ECC_TypeOperation : Primitive Arithmetic Operations F(p) and F(2m) [6:4] = 0x0 [3:0] = 0x0 -> Reserved 0x1 -> Modular Addition 0x2 -> Modular Subtraction 0x3 -> Modular Multiplication (Odd N) 0x4 -> Modular Reduction (Odd N) 0x5 -> Modular Division (Odd N) 0x6 -> Modular Inversion (Odd N) 0x7 -> Reserved 0x8 -> Multiplication 0x9 -> Modular Inversion (Even N) 0xA -> Modular Reduction (Even N) others -> Reserved C = A + B mod N C = A - B mod N C = A * B mod N C = B mod N C = A/B mod N C = 1/B mod N C = A * B C = 1/B mod N C = B mod N High-level RSA, CRT and DSA Operations - F(p) only ([7] forced to 0) [6:4] = 0x1 [3:0] = 0x0 -> MulModN 0x1 -> MulAddN 0x2 -> ECMQV (part1) others -> Reserved Primitive ECC and Check Point Operations F(p) and F(2m) [6:4] = 0x2 [3:0] = 0x0 -> Point Doubling (Projective Coord.) 0x1 -> ptAdd3 0x2 -> GenSessionKey 0x3 -> Check_AB (ECDSA) 0x4 -> Check_n (ECDSA) 0x5 -> Check single value less than N 0x6 -> Check_Point_On_Curve 0x7-> Reserved 0x8 -> Curve25519 point multiplication 0x9 -> Ed25519 Check point on curve 0xA -> Ed25519 ScalarMult 0xB -> Ed25519 CheckValid others -> Reserved High-level ECC ECDSA Operations F(p) and F(2m) [6:4] = 0x3 [3:0] = 0x0 -> ECMQV (part 2) 0x1 -> Verify ZKP 0x2 -> ECDSA Domain Parameters Validation others -> Reserved [6:4]=0x4, 0x5, 0x6, 0x7 -> Reserved
bits : 0 - 6 (7 bit)
access : read-write

ECC_Field : '0': Field is F(p) '1': Field is F(2m)
bits : 7 - 14 (8 bit)
access : read-write

ECC_SizeOfOperands : This field defines the size (= number of 64-bit double words) of the operands for the current operation. Possible values are limited by the generic parameter g_Log2MaxDataSize that defines the max space allocated or reserved to each operand. Arbitrary Data/Key size from 128 up to 2566 are supported: 0x02 (02d) -> 128-bit Data/Key size 0x03 (02d) -> 256-bit Data/Key size ECC-ECDSA - Prime Field F(p) 0x03 -> 192-bit (Curve P-192) 0x04 -> 256-bit (Curves P-224 and P-256) ECC-ECDSA - Binary Field F(2m) 0x03 -> 192-bit (Curve K-163) 0x04 -> 256-bit (Curve K-233) - 4 Xers: 0x01, 0x02, 0x4, 0x6 -> 64, 128 and multiples of 128 bits
bits : 8 - 23 (16 bit)
access : read-write

ECC_SignA : Sign of parameter A in equation y2=x3+Ax+B '0': A is positive '1': A is negative
bits : 29 - 58 (30 bit)
access : read-write

ECC_SignB : Sign of parameter B in equation y2=x3+Ax+B '0': B is positive '1': B is negative
bits : 30 - 60 (31 bit)
access : read-write

ECC_CalcR2 : This bit indicates if the IP has to calculate R mod N for the next operation. This bit must be set to 1 when a new prime number has been programmed. This bit is automatically cleared when R mod N has been calculated. '0': no effect '1': forces the IP to re-calculate R mod N
bits : 31 - 62 (32 bit)
access : read-write


CONTROL_REG

Control register
address_offset : 0x8 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CONTROL_REG CONTROL_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ECC_Start

ECC_Start : The Start signal is activated when all data and key inputs have been loaded in the external crypto memory and are available for processing. This signal is active high and is sampled on the rising edge of Clk. When this signal goes high, the PK Command present in the PK_CommandReg[] is initiated and executed. The PK_Start signal is ignored when the core is already processing data and is automatically cleared when the operation is finished
bits : 0 - 0 (1 bit)
access : read-write


STATUS_REG

Status register
address_offset : 0xC Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

STATUS_REG STATUS_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ECC_Fail_Address ECC_Point_Px_NotOnCurve ECC_Point_Px_AtInfinity ECC_Couple_NotValid ECC_Param_n_NotValid ECC_Signature_NotValid ECC_Param_AB_NotValid ECC_NotInvertible ECC_PrimalityTestResult ECC_Busy

ECC_Fail_Address : Address of the last Point detected as Not On Curve, Not Valid or at the infinity.
bits : 0 - 3 (4 bit)
access : read-only

ECC_Point_Px_NotOnCurve : Status signal set to 1 when Point Px is not on the defined EC. This flag is updated after execution of the command Check_Point_OnCurve.
bits : 4 - 8 (5 bit)
access : read-only

ECC_Point_Px_AtInfinity : Status signal set to 1 when Point Px is at the infinity. This flag is updated after execution of an ECC operation.
bits : 5 - 10 (6 bit)
access : read-only

ECC_Couple_NotValid : Status signal set to 1 when couple x, y is not valid (i.e. not smaller than the prime). This flag is updated after execution of the command Check_Couple_Less_Prime.
bits : 6 - 12 (7 bit)
access : read-only

ECC_Param_n_NotValid : Status signal set to 1 when Parameter n is not valid. This flag is updated after execution of the command Check_n.
bits : 7 - 14 (8 bit)
access : read-only

ECC_Signature_NotValid : This flag indicates if the signature can be accepted or must be rejected. This flag is set to 1 when the signature is not valid and is updated after execution of the command ECDSA_Generation, ECDSA_Verification, DSA_Generation, DSA_Verification.
bits : 9 - 18 (10 bit)
access : read-only

ECC_Param_AB_NotValid : Status signal set to 1 when parameters A and B are not valid, i.e 4A+ 27B = 0. This flag is updated after execution of the command Check_AB.
bits : 10 - 20 (11 bit)
access : read-only

ECC_NotInvertible : This flag is set to 1 when executing a modular inversion (PK_CommandReg[3:0] = 0x6 or 0x9) if the operand is not invertible.
bits : 11 - 22 (12 bit)
access : read-only

ECC_PrimalityTestResult : After the Miller-Rabin Primality test, this flag is: - set to 0 when the random number under test is probably prime - cleared to 1 when the random number under test is composite
bits : 12 - 24 (13 bit)
access : read-only

ECC_Busy : This Status Signal indicates that the core is processing data. This signal is active high and goes low when the selected algorithm is finished.
bits : 16 - 32 (17 bit)
access : read-only



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.