\n

CRYPTO

Peripheral Memory Blocks

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

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

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

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

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

Registers

CRYPTO_INTEN (INTEN)

CRYPTO_PRNG_KEY0 (PRNG_KEY0)

CRYPTO_AES_CTL (AES_CTL)

CRYPTO_AES_STS (AES_STS)

CRYPTO_AES_DATIN (AES_DATIN)

CRYPTO_AES_DATOUT (AES_DATOUT)

CRYPTO_AES0_KEY0 (AES0_KEY0)

CRYPTO_AES0_KEY1 (AES0_KEY1)

CRYPTO_AES0_KEY2 (AES0_KEY2)

CRYPTO_AES0_KEY3 (AES0_KEY3)

CRYPTO_AES0_KEY4 (AES0_KEY4)

CRYPTO_AES0_KEY5 (AES0_KEY5)

CRYPTO_AES0_KEY6 (AES0_KEY6)

CRYPTO_AES0_KEY7 (AES0_KEY7)

CRYPTO_AES0_IV0 (AES0_IV0)

CRYPTO_AES0_IV1 (AES0_IV1)

CRYPTO_AES0_IV2 (AES0_IV2)

CRYPTO_AES0_IV3 (AES0_IV3)

CRYPTO_PRNG_KEY1 (PRNG_KEY1)

CRYPTO_AES0_SADDR (AES0_SADDR)

CRYPTO_AES0_DADDR (AES0_DADDR)

CRYPTO_AES0_CNT (AES0_CNT)

CRYPTO_PRNG_KEY2 (PRNG_KEY2)

CRYPTO_PRNG_KEY3 (PRNG_KEY3)

CRYPTO_PRNG_KEY4 (PRNG_KEY4)

CRYPTO_PRNG_KEY5 (PRNG_KEY5)

CRYPTO_PRNG_KEY6 (PRNG_KEY6)

CRYPTO_PRNG_KEY7 (PRNG_KEY7)

CRYPTO_SHA_CTL (SHA_CTL)

CRYPTO_SHA_STS (SHA_STS)

CRYPTO_SHA_DGST0 (SHA_DGST0)

CRYPTO_SHA_DGST1 (SHA_DGST1)

CRYPTO_SHA_DGST2 (SHA_DGST2)

CRYPTO_SHA_DGST3 (SHA_DGST3)

CRYPTO_SHA_DGST4 (SHA_DGST4)

CRYPTO_SHA_DGST5 (SHA_DGST5)

CRYPTO_SHA_DGST6 (SHA_DGST6)

CRYPTO_SHA_DGST7 (SHA_DGST7)

CRYPTO_SHA_KEYCNT (SHA_KEYCNT)

CRYPTO_SHA_SADDR (SHA_SADDR)

CRYPTO_SHA_DMACNT (SHA_DMACNT)

CRYPTO_SHA_DATIN (SHA_DATIN)

CRYPTO_INTSTS (INTSTS)

CRYPTO_AES_FDBCK0 (AES_FDBCK0)

CRYPTO_AES_FDBCK1 (AES_FDBCK1)

CRYPTO_AES_FDBCK2 (AES_FDBCK2)

CRYPTO_AES_FDBCK3 (AES_FDBCK3)

CRYPTO_PRNG_CTL (PRNG_CTL)

CRYPTO_PRNG_SEED (PRNG_SEED)


CRYPTO_INTEN (INTEN)

Crypto Interrupt Enable Control Register
address_offset : 0x0 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_INTEN CRYPTO_INTEN 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 AESIEN AESEIEN PRNGIEN SHAIEN SHAEIEN

AESIEN : AES Interrupt Enable Bit Note: In DMA mode, an interrupt will be triggered when amount of data set in AES_DMA_CNT is fed into the AES engine. In Non-DMA mode, an interrupt will be triggered when the AES engine finishes the operation.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

AES interrupt Disabled

#1 : 1

AES interrupt Enabled

End of enumeration elements list.

AESEIEN : AES Error Flag Enable Bit
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

AES error interrupt flag Disabled

#1 : 1

AES error interrupt flag Enabled

End of enumeration elements list.

PRNGIEN : PRNG Interrupt Enable Bit
bits : 16 - 16 (1 bit)
access : read-write

Enumeration:

#0 : 0

PRNG interrupt Disabled

#1 : 1

PRNG interrupt Enabled

End of enumeration elements list.

SHAIEN : SHA Interrupt Enable Bit Note: In DMA mode, an interrupt will be triggered when amount of data set in SHA _DMA_CNT is fed into the SHA engine. In Non-DMA mode, an interrupt will be triggered when the SHA engine finishes the operation.
bits : 24 - 24 (1 bit)
access : read-write

Enumeration:

#0 : 0

SHA interrupt Disabled

#1 : 1

SHA interrupt Enabled

End of enumeration elements list.

SHAEIEN : SHA Error Interrupt Enable Bit
bits : 25 - 25 (1 bit)
access : read-write

Enumeration:

#0 : 0

SHA error interrupt flag Disabled

#1 : 1

SHA error interrupt flag Enabled

End of enumeration elements list.


CRYPTO_PRNG_KEY0 (PRNG_KEY0)

PRNG Generated Key0
address_offset : 0x10 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY0 CRYPTO_PRNG_KEY0 read-only 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 KEY

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


CRYPTO_AES_CTL (AES_CTL)

AES Control Register
address_offset : 0x100 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_CTL CRYPTO_AES_CTL 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 START STOP KEYSZ DMALAST DMACSCAD DMAEN OPMODE ENCRYPTO OUTSWAP INSWAP CHANNEL KEYUNPRT KEYPRT

START : AES Engine Start Note: This bit is always 0 when it's read back.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

Start AES engine. BUSY flag will be set

End of enumeration elements list.

STOP : AES Engine Stop Note: This bit is always 0 when it's read back.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

Stop AES engine

End of enumeration elements list.

KEYSZ : AES Key Size This bit defines three different key size for AES operation. If the AES accelerator is operating and the corresponding flag BUSY is 1, updating this register has no effect.
bits : 2 - 3 (2 bit)
access : read-write

Enumeration:

2 : 2

256 bits key

End of enumeration elements list.

DMALAST : AES Last Block In DMA mode, this bit must be set as beginning the last DMA cascade round. In Non-DMA mode, this bit must be set when feeding in the last block of data in ECB, CBC, CTR, OFB, and CFB mode, and feeding in the (last-1) block of data at CBC-CS1, CBC-CS2, and CBC-CS3 mode. This bit is always 0 when it's read back. Must be written again once START is triggered.
bits : 5 - 5 (1 bit)
access : read-write

DMACSCAD : AES Engine DMA with Cascade Mode
bits : 6 - 6 (1 bit)
access : read-write

Enumeration:

#0 : 0

DMA cascade function Disabled

#1 : 1

In DMA cascade mode, software can update DMA source address register, destination address register, and byte count register during a cascade operation, without finishing the accelerator operation

End of enumeration elements list.

DMAEN : AES Engine DMA Enable Bit The AES engine operates in DMA mode, and data movement from/to the engine is done by DMA logic.
bits : 7 - 7 (1 bit)
access : read-write

Enumeration:

#0 : 0

AES DMA engine Disabled

#1 : 1

AES_DMA engine Enabled

End of enumeration elements list.

OPMODE : AES Engine Operation Modes
bits : 8 - 15 (8 bit)
access : read-write

Enumeration:

0x00 : 0

ECB (Electronic Codebook Mode) 0x01 = CBC (Cipher Block Chaining Mode)

0x02 : 2

CFB (Cipher Feedback Mode)

0x03 : 3

OFB (Output Feedback Mode)

0x04 : 4

CTR (Counter Mode)

0x10 : 16

CBC-CS1 (CBC Ciphertext-Stealing 1 Mode)

0x11 : 17

CBC-CS2 (CBC Ciphertext-Stealing 2 Mode)

0x12 : 18

CBC-CS3 (CBC Ciphertext-Stealing 3 Mode)

End of enumeration elements list.

ENCRYPTO : AES Encryption/Decryption
bits : 16 - 16 (1 bit)
access : read-write

Enumeration:

#0 : 0

AES engine executes decryption operation

#1 : 1

AES engine executes encryption operation

End of enumeration elements list.

OUTSWAP : AES Engine Output Data Swap
bits : 22 - 22 (1 bit)
access : read-write

Enumeration:

#0 : 0

Keep the original order

#1 : 1

The order that CPU outputs data from the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}

End of enumeration elements list.

INSWAP : AES Engine Input Data Swap
bits : 23 - 23 (1 bit)
access : read-write

Enumeration:

#0 : 0

Keep the original order

#1 : 1

The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}

End of enumeration elements list.

CHANNEL : AES Engine Working Channel Keeps this field as 0x00.
bits : 24 - 25 (2 bit)
access : read-write

KEYUNPRT : Unprotect Key Writing 0 to CRYPTO_AES_CTL[31] and '10110' to CRYPTO_AES_CTL[30:26] is that AES key is unprotected. The KEYUNPRT can be read and written. When it is written as the AES engine is operating, BUSY flag is 1, there would be no effect on KEYUNPRT.
bits : 26 - 30 (5 bit)
access : read-write

KEYPRT : Protect Key Read as a flag to reflect KEYPRT.
bits : 31 - 31 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

Protect the content of the AES key from reading. The return value for reading CRYPTO_AES0_KEYx is not the content of the registers CRYPTO_AES0_KEYx. Once it is set, it can be cleared by asserting KEYUNPRT. And the key content would be cleared as well

End of enumeration elements list.


CRYPTO_AES_STS (AES_STS)

AES Engine Flag
address_offset : 0x104 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_STS CRYPTO_AES_STS read-only 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 BUSY INBUFEMPTY INBUFFULL INBUFERR CNTERR OUTBUFEMPTY OUTBUFFULL OUTBUFERR BUSERR

BUSY : AES Engine Busy
bits : 0 - 0 (1 bit)
access : read-only

Enumeration:

#0 : 0

The AES engine is idle or finished

#1 : 1

The AES engine is under processing

End of enumeration elements list.

INBUFEMPTY : AES Input Buffer Empty
bits : 8 - 8 (1 bit)
access : read-only

Enumeration:

#0 : 0

There are some data in input buffer waiting for the AES engine to process

#1 : 1

AES input buffer is empty. Software needs to feed data to the AES engine. Otherwise, the AES engine will be pending to wait for input data

End of enumeration elements list.

INBUFFULL : AES Input Buffer Full Flag
bits : 9 - 9 (1 bit)
access : read-only

Enumeration:

#0 : 0

AES input buffer is not full. Software can feed the data into the AES engine

#1 : 1

AES input buffer is full. Software cannot feed data to the AES engine. Otherwise, the flag INBUFERR will be set to 1

End of enumeration elements list.

INBUFERR : AES Input Buffer Error Flag
bits : 10 - 10 (1 bit)
access : read-only

Enumeration:

#0 : 0

No error

#1 : 1

Error happens during feeding data to the AES engine

End of enumeration elements list.

CNTERR : CRYPTO_AES0_CNT Setting Error
bits : 12 - 12 (1 bit)
access : read-only

Enumeration:

#0 : 0

No error in CRYPTO_AES0_CNT setting

#1 : 1

CRYPTO_AES0_CNT is 0 if DMAEN(CRYPTO_AES_CTL[7]) is enabled

End of enumeration elements list.

OUTBUFEMPTY : AES Out Buffer Empty
bits : 16 - 16 (1 bit)
access : read-only

Enumeration:

#0 : 0

AES output buffer is not empty. There are some valid data kept in output buffer

#1 : 1

AES output buffer is empty. Software cannot get data from CRYPTO_AES_DATOUT. Otherwise, the flag OUTBUFERR will be set to 1 since the output buffer is empty

End of enumeration elements list.

OUTBUFFULL : AES Out Buffer Full Flag
bits : 17 - 17 (1 bit)
access : read-only

Enumeration:

#0 : 0

AES output buffer is not full

#1 : 1

AES output buffer is full, and software needs to get data from CRYPTO_AES_DATOUT. Otherwise, the AES engine will be pending since the output buffer is full

End of enumeration elements list.

OUTBUFERR : AES Out Buffer Error Flag
bits : 18 - 18 (1 bit)
access : read-only

Enumeration:

#0 : 0

No error

#1 : 1

Error happens during getting the result from AES engine

End of enumeration elements list.

BUSERR : AES DMA Access Bus Error Flag
bits : 20 - 20 (1 bit)
access : read-only

Enumeration:

#0 : 0

No error

#1 : 1

Bus error will stop DMA operation and AES engine

End of enumeration elements list.


CRYPTO_AES_DATIN (AES_DATIN)

AES Engine Data Input Port Register
address_offset : 0x108 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_DATIN CRYPTO_AES_DATIN 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 DATIN

DATIN : AES Engine Input Port CPU feeds data to AES engine through this port by checking CRYPTO_AES_STS. Feed data when INBUFFULL is 0.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_AES_DATOUT (AES_DATOUT)

AES Engine Data Output Port Register
address_offset : 0x10C Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_DATOUT CRYPTO_AES_DATOUT read-only 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 DATOUT

DATOUT : AES Engine Output Port CPU gets results from the AES engine through this port by checking CRYPTO_AES_STS. Get data when OUTBUFEMPTY is 0.
bits : 0 - 31 (32 bit)
access : read-only


CRYPTO_AES0_KEY0 (AES0_KEY0)

AES Key Word 0 Register
address_offset : 0x110 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY0 CRYPTO_AES0_KEY0 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 KEY

KEY : CRYPTO_AES0_KEYx The KEY keeps the security key for AES operation. {CRYPTO_AES0_KEY7, CRYPTO_AES0_KEY6, CRYPTO_AES0_KEY5, CRYPTO_AES0_KEY4, CRYPTO_AES0_KEY3, CRYPTO_AES0_KEY2, CRYPTO_AES0_KEY1, CRYPTO_AES0_KEY0} stores the 256-bit security key for AES operation.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_AES0_KEY1 (AES0_KEY1)

AES Key Word 1 Register
address_offset : 0x114 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY1 CRYPTO_AES0_KEY1 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

CRYPTO_AES0_KEY2 (AES0_KEY2)

AES Key Word 2 Register
address_offset : 0x118 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY2 CRYPTO_AES0_KEY2 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

CRYPTO_AES0_KEY3 (AES0_KEY3)

AES Key Word 3 Register
address_offset : 0x11C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY3 CRYPTO_AES0_KEY3 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

CRYPTO_AES0_KEY4 (AES0_KEY4)

AES Key Word 4 Register
address_offset : 0x120 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY4 CRYPTO_AES0_KEY4 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

CRYPTO_AES0_KEY5 (AES0_KEY5)

AES Key Word 5 Register
address_offset : 0x124 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY5 CRYPTO_AES0_KEY5 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

CRYPTO_AES0_KEY6 (AES0_KEY6)

AES Key Word 6 Register
address_offset : 0x128 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY6 CRYPTO_AES0_KEY6 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

CRYPTO_AES0_KEY7 (AES0_KEY7)

AES Key Word 7 Register
address_offset : 0x12C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_KEY7 CRYPTO_AES0_KEY7 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

CRYPTO_AES0_IV0 (AES0_IV0)

AES Initial Vector Word 0 Register
address_offset : 0x130 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_IV0 CRYPTO_AES0_IV0 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 IV

IV : AES Initial Vectors Four initial vectors (CRYPTO_AES0_IV0, CRYPTO_AES0_IV1, CRYPTO_AES0_IV2, and CRYPTO_AES0_IV3) are for AES operating in CBC, CFB, and OFB mode. Four registers (CRYPTO_AES0_IV0, CRYPTO_AES0_IV1, CRYPTO_AES0_IV2, and CRYPTO_AES0_IV3) act as Nonce counter when the AES engine is operating in CTR mode.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_AES0_IV1 (AES0_IV1)

AES Initial Vector Word 1 Register
address_offset : 0x134 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_IV1 CRYPTO_AES0_IV1 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

CRYPTO_AES0_IV2 (AES0_IV2)

AES Initial Vector Word 2 Register
address_offset : 0x138 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_IV2 CRYPTO_AES0_IV2 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

CRYPTO_AES0_IV3 (AES0_IV3)

AES Initial Vector Word 3 Register
address_offset : 0x13C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_IV3 CRYPTO_AES0_IV3 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

CRYPTO_PRNG_KEY1 (PRNG_KEY1)

PRNG Generated Key1
address_offset : 0x14 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY1 CRYPTO_PRNG_KEY1 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

CRYPTO_AES0_SADDR (AES0_SADDR)

AES DMA Source Address Register
address_offset : 0x140 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_SADDR CRYPTO_AES0_SADDR 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 SADDR

SADDR : AES DMA Source Address The AES accelerator supports DMA function to transfer the plain text between SRAM memory space and embedded FIFO. The SADDR keeps the source address of the data buffer where the source text is stored. Based on the source address, the AES accelerator can read the plain text (encryption) / cipher text (descryption) from SRAM memory space and do AES operation. The start of source address should be located at word boundary. In other words, bit 1 and 0 of SADDR are ignored. SADDR can be read and written. Writing to SADDR while the AES accelerator is operating doesn't affect the current AES operation. But the value of SADDR will be updated later on. Consequently, software can prepare the DMA source address for the next AES operation. In DMA mode, software can update the next CRYPTO_AES0_SADDR before triggering START. The value of CRYPTO_AES0_SADDR and CRYPTO_AES0_DADDR can be the same.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_AES0_DADDR (AES0_DADDR)

AES DMA Destination Address Register
address_offset : 0x144 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_DADDR CRYPTO_AES0_DADDR 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 DADDR

DADDR : AES DMA Destination Address The AES accelerator supports DMA function to transfer the cipher text between SRAM memory space and embedded FIFO. The DADDR keeps the destination address of the data buffer where the engine output's text will be stored. Based on the destination address, the AES accelerator can write the cipher text (encryption) / plain text (decryption) back to SRAM memory space after the AES operation is finished. The start of destination address should be located at word boundary. In other words, bit 1 and 0 of DADDR are ignored. DADDR can be read and written. Writing to DADDR while the AES accelerator is operating doesn't affect the current AES operation. But the value of DADDR will be updated later on. Consequently, software can prepare the destination address for the next AES operation. In DMA mode, software can update the next CRYPTO_AES0_DADDR before triggering START. The value of CRYPTO_AES0_SADDR and CRYPTO_AES0_DADDR can be the same.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_AES0_CNT (AES0_CNT)

AES Byte Count Register
address_offset : 0x148 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES0_CNT CRYPTO_AES0_CNT 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 CNT

CNT : AES Byte Count The CRYPTO_AES0_CNT keeps the byte count of source text that is for the AES engine operating in DMA mode. The CRYPTO_AES0_CNT is 32-bit and the maximum of byte count is 4G bytes. CRYPTO_AES0_CNT can be read and written. Writing to CRYPTO_AES0_CNT while the AES accelerator is operating doesn't affect the current AES operation. But the value of CRYPTO_AES0_CNT will be updated later on. Consequently, software can prepare the byte count of data for the next AES operation. According to CBC-CS1, CBC-CS2, and CBC-CS3 standard, the count of operation data must be more than 16 bytes. Operations that are qual or less than one block will output unexpected result. In Non-DMA ECB, CBC, CFB, OFB, and CTR mode, CRYPTO_AES0_CNT must be set as byte count for the last block of data before feeding in the last block of data. In Non-DMA CBC-CS1, CBC-CS2, and CBC-CS3 mode, CRYPTO_AES0_CNT must be set as byte count for the last two blocks of data before feeding in the last two blocks of data.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_PRNG_KEY2 (PRNG_KEY2)

PRNG Generated Key2
address_offset : 0x18 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY2 CRYPTO_PRNG_KEY2 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

CRYPTO_PRNG_KEY3 (PRNG_KEY3)

PRNG Generated Key3
address_offset : 0x1C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY3 CRYPTO_PRNG_KEY3 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

CRYPTO_PRNG_KEY4 (PRNG_KEY4)

PRNG Generated Key4
address_offset : 0x20 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY4 CRYPTO_PRNG_KEY4 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

CRYPTO_PRNG_KEY5 (PRNG_KEY5)

PRNG Generated Key5
address_offset : 0x24 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY5 CRYPTO_PRNG_KEY5 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

CRYPTO_PRNG_KEY6 (PRNG_KEY6)

PRNG Generated Key6
address_offset : 0x28 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY6 CRYPTO_PRNG_KEY6 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

CRYPTO_PRNG_KEY7 (PRNG_KEY7)

PRNG Generated Key7
address_offset : 0x2C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY7 CRYPTO_PRNG_KEY7 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

CRYPTO_SHA_CTL (SHA_CTL)

SHA Control Register
address_offset : 0x300 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_CTL CRYPTO_SHA_CTL 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 START STOP DMAFIRST DMALAST DMACSCAD DMAEN OPMODE SHAEN OUTSWAP INSWAP

START : SHA Engine Start Note: This bit is always 0 when it's read back.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

Start SHA engine. BUSY flag will be set

End of enumeration elements list.

STOP : SHA Engine Stop Note: This bit is always 0 when it's read back.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

Stop SHA engine

End of enumeration elements list.

DMAFIRST : SHA First Block in cascadefunction This bit must be set as feeding in first byte of data.
bits : 4 - 4 (1 bit)
access : read-write

DMALAST : SHA Last Block This bit must be set as feeding in last byte of data.
bits : 5 - 5 (1 bit)
access : read-write

DMACSCAD : SHA Engine DMA with Cascade Mode
bits : 6 - 6 (1 bit)
access : read-write

Enumeration:

#0 : 0

DMA cascade function Disabled

#1 : 1

In DMA cascade mode, software can update DMA source address register, destination address register, and byte count register during a cascade operation, without finishing the accelerator operation

End of enumeration elements list.

DMAEN : SHA Engine DMA Enable Bit SHA engine operates in DMA mode, and data movement from/to the engine is done by DMA logic.
bits : 7 - 7 (1 bit)
access : read-write

Enumeration:

#0 : 0

SHA DMA engine Disabled

#1 : 1

SHA DMA engine Enabled

End of enumeration elements list.

OPMODE : SHA Engine Operation Modes 0x100: SHA256 Note: These bits can be read and written. But writing to them wouldn't take effect as BUSY is 1.
bits : 8 - 10 (3 bit)
access : read-write

SHAEN : SHA Engine Operating Mode
bits : 11 - 11 (1 bit)
access : read-write

Enumeration:

#0 : 0

Execute SHA function

#1 : 1

Reserved.

End of enumeration elements list.

OUTSWAP : SHA Engine Output Data Swap
bits : 22 - 22 (1 bit)
access : read-write

Enumeration:

#0 : 0

Keep the original order

#1 : 1

The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}

End of enumeration elements list.

INSWAP : SHA Engine Input Data Swap
bits : 23 - 23 (1 bit)
access : read-write

Enumeration:

#0 : 0

Keep the original order

#1 : 1

The order that CPU feeds data to the accelerator will be changed from {byte3, byte2, byte1, byte0} to {byte0, byte1, byte2, byte3}

End of enumeration elements list.


CRYPTO_SHA_STS (SHA_STS)

SHA Status Flag
address_offset : 0x304 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_STS CRYPTO_SHA_STS read-only 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 BUSY DMABUSY DMAERR DATINREQ

BUSY : SHA Engine Busy
bits : 0 - 0 (1 bit)
access : read-only

Enumeration:

#0 : 0

SHA engine is idle or finished

#1 : 1

SHA engine is busy

End of enumeration elements list.

DMABUSY : SHA Engine DMA Busy Flag
bits : 1 - 1 (1 bit)
access : read-only

Enumeration:

#0 : 0

SHA DMA engine is idle or finished

#1 : 1

SHA DMA engine is busy

End of enumeration elements list.

DMAERR : SHA Engine DMA Error Flag
bits : 8 - 8 (1 bit)
access : read-only

Enumeration:

#0 : 0

Show the SHA engine access normal

#1 : 1

Show the SHA engine access error

End of enumeration elements list.

DATINREQ : SHA Non-DMA Mode Data Input Request
bits : 16 - 16 (1 bit)
access : read-only

Enumeration:

#0 : 0

No effect

#1 : 1

Request SHA Non-DMA mode data input

End of enumeration elements list.


CRYPTO_SHA_DGST0 (SHA_DGST0)

SHA Digest Message 0
address_offset : 0x308 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST0 CRYPTO_SHA_DGST0 read-only 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 DGST

DGST : SHA Digest Message Output Register For SHA-256, the digest is stored in CRYPTO_SHA_DGST0 ~ CRYPTO_SHA_DGST7.
bits : 0 - 31 (32 bit)
access : read-only


CRYPTO_SHA_DGST1 (SHA_DGST1)

SHA Digest Message 1
address_offset : 0x30C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST1 CRYPTO_SHA_DGST1 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

CRYPTO_SHA_DGST2 (SHA_DGST2)

SHA Digest Message 2
address_offset : 0x310 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST2 CRYPTO_SHA_DGST2 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

CRYPTO_SHA_DGST3 (SHA_DGST3)

SHA Digest Message 3
address_offset : 0x314 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST3 CRYPTO_SHA_DGST3 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

CRYPTO_SHA_DGST4 (SHA_DGST4)

SHA Digest Message 4
address_offset : 0x318 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST4 CRYPTO_SHA_DGST4 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

CRYPTO_SHA_DGST5 (SHA_DGST5)

SHA Digest Message 5
address_offset : 0x31C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST5 CRYPTO_SHA_DGST5 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

CRYPTO_SHA_DGST6 (SHA_DGST6)

SHA Digest Message 6
address_offset : 0x320 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST6 CRYPTO_SHA_DGST6 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

CRYPTO_SHA_DGST7 (SHA_DGST7)

SHA Digest Message 7
address_offset : 0x324 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DGST7 CRYPTO_SHA_DGST7 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

CRYPTO_SHA_KEYCNT (SHA_KEYCNT)

SHA Key Byte Count Register
address_offset : 0x348 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_KEYCNT CRYPTO_SHA_KEYCNT 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 KEYCNT

KEYCNT : SHA Key Byte Count The CRYPTO_SHA_KEYCNT keeps the byte count of key that SHA engine operates. The register is 32-bit and the maximum byte count is 4G bytes. It can be read and written. Writing to the register CRYPTO_SHA_KEYCNT as the SHA accelerator operating doesn't affect the current SHA operation. But the value of CRYPTO_SHA _KEYCNT will be updated later on. Consequently, software can prepare the key count for the next SHA operation.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_SHA_SADDR (SHA_SADDR)

SHA DMA Source Address Register
address_offset : 0x34C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_SADDR CRYPTO_SHA_SADDR 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 SADDR

SADDR : SHA DMA Source Address The SHA accelerator supports DMA function to transfer the plain text between SRAM memory space and embedded FIFO. The CRYPTO_SHA_SADDR keeps the source address of the data buffer where the source text is stored. Based on the source address, the SHA accelerator can read the plain text from SRAM memory space and do SHA operation. The start of source address should be located at word boundary. In other words, bit 1 and 0 of CRYPTO_SHA_SADDR are ignored. CRYPTO_SHA_SADDR can be read and written. Writing to CRYPTO_SHA_SADDR while the SHA accelerator is operating doesn't affect the current SHA operation. But the value of CRYPTOSHA_SHA_SADDR will be updated later on. Consequently, software can prepare the DMA source address for the next SHA operation. In DMA mode, software can update the next CRYPTO_SHA_SADDR before triggering START. CRYPTO_SHA_SADDR and CRYPTO_SHA_DADDR can be the same in the value.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_SHA_DMACNT (SHA_DMACNT)

SHA Byte Count Register
address_offset : 0x350 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DMACNT CRYPTO_SHA_DMACNT 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 DMACNT

DMACNT : SHA Operation Byte Count The CRYPTO_SHA_DMACNT keeps the byte count of source text that is for the SHA engine operating in DMA mode. The CRYPTO_SHA_DMACNT is 32-bit and the maximum of byte count is 4G bytes. CRYPTO_SHA_DMACNT can be read and written. Writing to CRYPTO_SHA_DMACNT while the SHA accelerator is operating doesn't affect the current SHA operation. But the value of CRYPTO_SHA_DMACNT will be updated later on. Consequently, software can prepare the byte count of data for the next SHA operation. In Non-DMA mode, CRYPTO_SHA_DMACNT must be set as the byte count of the last block before feeding in the last block of data.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_SHA_DATIN (SHA_DATIN)

SHA Engine Non-dMA Mode Data Input Port Register
address_offset : 0x354 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_SHA_DATIN CRYPTO_SHA_DATIN 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 DATIN

DATIN : SHA Engine Input Port CPU feeds data to SHA engine through this port by checking CRYPTO_SHA_STS. Feed data when DATINREQ is 1.
bits : 0 - 31 (32 bit)
access : read-write


CRYPTO_INTSTS (INTSTS)

Crypto Interrupt Flag
address_offset : 0x4 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_INTSTS CRYPTO_INTSTS 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 AESIF AESEIF PRNGIF SHAIF SHAEIF

AESIF : AES Finish Interrupt Flag This bit is cleared by writing 1, and it has no effect by writing 0.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

No AES interrupt

#1 : 1

AES encryption/decryption done interrupt

End of enumeration elements list.

AESEIF : AES Error Flag This bit is cleared by writing 1, and it has no effect by writing 0.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

No AES error

#1 : 1

AES encryption/decryption error interrupt

End of enumeration elements list.

PRNGIF : PRNG Finish Interrupt Flag This bit is cleared by writing 1, and it has no effect by writing 0.
bits : 16 - 16 (1 bit)
access : read-write

Enumeration:

#0 : 0

No PRNG interrupt

#1 : 1

PRNG key generation done interrupt

End of enumeration elements list.

SHAIF : SHASHA Finish Interrupt Flag This bit is cleared by writing 1, and it has no effect by writing 0.
bits : 24 - 24 (1 bit)
access : read-write

Enumeration:

#0 : 0

No SHA interrupt

#1 : 1

SHA operation done interrupt

End of enumeration elements list.

SHAEIF : SHA Error Flag This register includes operating and setting error. The detail flag is shown in CRYPTO_SHA_STS register. This bit is cleared by writing 1, and it has no effect by writing 0.
bits : 25 - 25 (1 bit)
access : read-write

Enumeration:

#0 : 0

No SHA error

#1 : 1

SHA error interrupt

End of enumeration elements list.


CRYPTO_AES_FDBCK0 (AES_FDBCK0)

AES Engine Output Feedback Data After Cryptographic Operation
address_offset : 0x50 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_FDBCK0 CRYPTO_AES_FDBCK0 read-only 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 FDBCK

FDBCK : AES Feedback Information The feedback value is 128 bits in size. The AES engine uses the data from CRYPTO_AES_FDBCKx as the data inputted to CRYPTO_AES0_IVx for the next block in DMA cascade mode. The AES engine outputs feedback information for IV in the next block's operation. Software can use this feedback information to implement more than four DMA channels. Software can store that feedback value temporarily. After switching back, fill the stored feedback value to CRYPTO_AES0_IVx in the same channel operation, and then continue the operation with the original setting.
bits : 0 - 31 (32 bit)
access : read-only


CRYPTO_AES_FDBCK1 (AES_FDBCK1)

AES Engine Output Feedback Data After Cryptographic Operation
address_offset : 0x54 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_FDBCK1 CRYPTO_AES_FDBCK1 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

CRYPTO_AES_FDBCK2 (AES_FDBCK2)

AES Engine Output Feedback Data After Cryptographic Operation
address_offset : 0x58 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_FDBCK2 CRYPTO_AES_FDBCK2 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

CRYPTO_AES_FDBCK3 (AES_FDBCK3)

AES Engine Output Feedback Data After Cryptographic Operation
address_offset : 0x5C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_AES_FDBCK3 CRYPTO_AES_FDBCK3 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

CRYPTO_PRNG_CTL (PRNG_CTL)

PRNG Control Register
address_offset : 0x8 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_CTL CRYPTO_PRNG_CTL 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 START SEEDRLD KEYSZ BUSY

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
bits : 2 - 3 (2 bit)
access : read-write

Enumeration:

#00 : 0

64 bits

#01 : 1

128 bits

#10 : 2

192 bits

#11 : 3

256 bits

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.


CRYPTO_PRNG_SEED (PRNG_SEED)

Seed for PRNG
address_offset : 0xC Bytes (0x0)
size : -1 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_SEED CRYPTO_PRNG_SEED write-only 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 SEED

SEED : Seed for PRNG (Write Only) The bits store the seed for PRNG engine.
bits : 0 - 31 (32 bit)
access : write-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.