\n
address_offset : 0x0 Bytes (0x0)
size : 0x2C byte (0x0)
mem_usage : registers
protection :
address_offset : 0xEF8 Bytes (0x0)
size : 0x8 byte (0x0)
mem_usage : registers
protection :
PRNG Control Register
address_offset : 0x0 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
START : Start PRNG Engine
bits : 0 - 0 (1 bit)
access : read-write
Enumeration:
#0 : 0
Stop PRNG engine
#1 : 1
Generate new key and store the new key to register CRYPTO_PRNG_KEYx, which will be cleared when the new key is generated
End of enumeration elements list.
SEEDRLD : Reload New Seed for PRNG Engine
bits : 1 - 1 (1 bit)
access : read-write
Enumeration:
#0 : 0
Generating key based on the current seed
#1 : 1
Reload new seed
End of enumeration elements list.
KEYSZ : PRNG Generate Key Size
Note: 283~571 bits are only generated for Key Store.
bits : 2 - 5 (4 bit)
access : read-write
Enumeration:
#0000 : 0
128 bits
#0001 : 1
163 bits
#0010 : 2
192 bits
#0011 : 3
224 bits
#0100 : 4
233 bits
#0101 : 5
255 bits
#0110 : 6
256 bits
#0111 : 7
283 bits (only for KS)
#1000 : 8
384 bits (only for KS)
#1001 : 9
409 bits (only for KS)
#1010 : 10
512 bits (only for KS)
#1011 : 11
521 bits (only for KS)
#1100 : 12
571 bits (only for KS)
#1101 : 13
Reserved.
#1110 : 14
Reserved.
#1111 : 15
Reserved.
End of enumeration elements list.
SEEDSEL : Seed Select
This bit can be set to 1 only after SEEDRDY (TRNG_CTL[9]) bit become to 1.
bits : 6 - 6 (1 bit)
access : read-write
Enumeration:
#0 : 0
Select the seed which is from PRNG
#1 : 1
Select the seed which is from TRNG (not from CRYPTO_PRNG_SEED)
End of enumeration elements list.
SEEDSRC : Seed Source (Read Only)
Note: This bit is cleared to '0' when SEEDSEL is 0.
bits : 7 - 7 (1 bit)
access : read-only
Enumeration:
#0 : 0
Seed is from PRNG
#1 : 1
Seed is from TRNG. (not from CRYPTO_PRNG_SEED)
End of enumeration elements list.
BUSY : PRNG Busy (Read Only)
bits : 8 - 8 (1 bit)
access : read-only
Enumeration:
#0 : 0
PRNG engine is idle
#1 : 1
Indicate that the PRNG engine is generating CRYPTO_PRNG_KEYx
End of enumeration elements list.
PRNG Generated Key2
address_offset : 0x10 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key3
address_offset : 0x14 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key4
address_offset : 0x18 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key5
address_offset : 0x1C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key6
address_offset : 0x20 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key7
address_offset : 0x24 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Status Register
address_offset : 0x28 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0
BUSY : PRNG Busy Flag
bits : 0 - 0 (1 bit)
access : read-only
Enumeration:
#0 : 0
PRNG engine is idle
#1 : 1
Indicate that the PRNG engine is generating CRYPTO_PRNG_KEYx
End of enumeration elements list.
KCTLERR : PRNG Key Control Register Error Flag
bits : 16 - 16 (1 bit)
access : read-only
Enumeration:
#0 : 0
No error
#1 : 1
PRNG key control error. When PRNG execute ECDSA or ECDH, but PRNG seed not from TRNG or key is not written to the SRAM of key store (WSDST, CRYPTO_PRNG_KSCTL[23:22] is not equal to '00')
End of enumeration elements list.
KSERR : PRNG Access Key Store Error Flag
bits : 17 - 17 (1 bit)
access : read-only
Enumeration:
#0 : 0
No error
#1 : 1
Access key store fail
End of enumeration elements list.
Seed for PRNG
address_offset : 0x4 Bytes (0x0)
size : -1 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0
SEED : Seed for PRNG (Write Only)
The bits store the seed for PRNG engine.
Note: In TRNG+PRNG mode, the seed is from TRNG engine, and it will not be stored in this register.
bits : 0 - 31 (32 bit)
access : write-only
PRNG Generated Key0
address_offset : 0x8 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0
KEY : Store PRNG Generated Key (Read Only)
The bits store the key that is generated by PRNG.
bits : 0 - 31 (32 bit)
access : read-only
PRNG Generated Key1
address_offset : 0xC Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Key Control Register
address_offset : 0xEF8 Bytes (0x0)
size : -1 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0
NUM : Write Key Number
The key number is sent to key store
Note: Only for destination is OTP of Key Store.
bits : 0 - 4 (5 bit)
access : write-only
TRUST : Write Key Trust Selection Bit
bits : 16 - 16 (1 bit)
access : write-only
Enumeration:
#0 : 0
Set written key as the non-secure key
#1 : 1
Set written key as the secure key
End of enumeration elements list.
PRIV : Privilege Key Selection Bit
bits : 18 - 18 (1 bit)
access : write-only
Enumeration:
#0 : 0
Set key as the non-privilege key
#1 : 1
Set key as the privilege key
End of enumeration elements list.
ECDH : ECDH Control Bit
Note: When ECDH is set to '1', 1. PRNG seed must come from TRNG and key must be written to the SRAM of key store (WSDST, CRYPTO_PRNG_KSCTL[23:22] must set to '00'). Otherwise, KCTLERR will become '1'(CRYPTO_PRNG_KSSTS[16]).2. Key must be in the interval [1, n-1] (the parameter n is from ECC). The value of n cannot be 0 or 1 otherwise, PRNG will always keep busy.
bits : 19 - 19 (1 bit)
access : write-only
Enumeration:
#0 : 0
Reserved.
#1 : 1
Key is written to key store and used in ECDH
End of enumeration elements list.
ECDSA : ECDSA Control Bit
Note: When ECDSA is set to '1', 1. PRNG seed must come from TRNG and key must be written to the SRAM of key store (WSDST, CRYPTO_PRNG_KSCTL[23:22] must set to '00'). Otherwise, KCTLERR will become '1'(CRYPTO_PRNG_KSSTS[16]). 2. Key must be in the interval [1, n-1] (the parameter n is from ECC). The value of n cannot be 0 or 1 otherwise, PRNG will always keep busy.
bits : 20 - 20 (1 bit)
access : write-only
Enumeration:
#0 : 0
Reserved.
#1 : 1
Key is written to key store and used in ECDSA
End of enumeration elements list.
WDST : Write Key Destination
bits : 21 - 21 (1 bit)
access : write-only
Enumeration:
#0 : 0
Key is written to registers CRYPTO_PRNG_KEYx
#1 : 1
Key is written to key store
End of enumeration elements list.
WSDST : Write Key Store Destination
bits : 22 - 23 (2 bit)
access : write-only
Enumeration:
#00 : 0
Key is written to the SRAM of key store
#10 : 2
Key is written to the OTP of key store
End of enumeration elements list.
OWNER : Write Key Owner Selection Bits
bits : 24 - 26 (3 bit)
access : write-only
Enumeration:
#000 : 0
Only for AES use
#001 : 1
Only for HMAC engine use
#100 : 4
Only for ECC engine use
#101 : 5
Only for CPU engine use
End of enumeration elements list.
PRNG Key Status Register
address_offset : 0xEFC Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0
NUM : Key Number
The key number is generated by key store
bits : 0 - 4 (5 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 Embeetle, an IDE designed from scratch for embedded software developers.