\n
address_offset : 0x0 Bytes (0x0)
size : 0x2C byte (0x0)
mem_usage : registers
protection : not protected
address_offset : 0xEF8 Bytes (0x0)
size : 0x8 byte (0x0)
mem_usage : registers
protection : not protected
PRNG Control Register
address_offset : 0x0 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
START : Start PRNG Engine
bits : 0 - 0 (1 bit)
access : read-write
Enumeration:
#0 : 0
No effect
#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 (283~571 Bits Only Generate 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\nThis 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)\nNote: 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
PRNG engine is generating CRYPTO_PRNG_KEYx
End of enumeration elements list.
PRNG Generated Key2
address_offset : 0x10 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key3
address_offset : 0x14 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key4
address_offset : 0x18 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key5
address_offset : 0x1C Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key6
address_offset : 0x20 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Generated Key7
address_offset : 0x24 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Status Register
address_offset : 0x28 Bytes (0x0)
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
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 failed
End of enumeration elements list.
Seed for PRNG
address_offset : 0x4 Bytes (0x0)
access : write-only
reset_value : 0x0
reset_Mask : 0x0
SEED : Seed for PRNG (Write Only)\nThe bits store the seed for PRNG engine.\nNote: In TRNG+PRNG mode, the seed is from TRNG engine, and it will not store in this register.
bits : 0 - 31 (32 bit)
access : write-only
PRNG Generated Key0
address_offset : 0x8 Bytes (0x0)
access : read-only
reset_value : 0x0
reset_Mask : 0x0
KEY : Store PRNG Generated Key (Read Only)\nThe 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)
access : read-write
reset_value : 0x0
reset_Mask : 0x0
PRNG Key Control Register
address_offset : 0xEF8 Bytes (0x0)
access : write-only
reset_value : 0x0
reset_Mask : 0x0
NUM : Write Key Number (Only for Destination Is OTP of Key Store)\nThe key number is sent to 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.
ECDH : ECDH Control Bit\nNote: When ECDH was set to '1', 1. PRNG seed must be from TRNG(CRYPTO_PRNG_CTL must be '1') 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\nNote: When ECDSA was set to '1', 1. PRNG seed must be from TRNG(CRYPTO_PRNG_CTL[7] must be '1') 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 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
#01 : 1
key is written to the Flash 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 used
#001 : 1
Only for HMAC engine used
#100 : 4
Only for ECC engine used
#101 : 5
Only for CPU engine use
End of enumeration elements list.
PRNG Key Status Register
address_offset : 0xEFC Bytes (0x0)
access : read-only
reset_value : 0x0
reset_Mask : 0x0
NUM : Key Number\nThe key number is generated by key store
bits : 0 - 4 (5 bit)
access : read-only
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.
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.