
Hash processor (HASH)
RM0351
868/1830
DocID024597 Rev 5
29.6.2
HASH data input register (HASH_DIN)
Address offset: 0x04
Reset value: 0x0000 0000
HASH_DIN is the data input register. It is 32-bit wide. This register is used to enter the
message by blocks of 512 bits. When the HASH_DIN register is programmed, the value
presented on the AHB databus is ‘pushed’ into the hash core and the register takes the new
value presented on the AHB databus. To get a correct message format, the DATATYPE bits
must have been previously configured in the HASH_CR register.
When a block of 16 words has been written to the HASH_DIN register, an intermediate
digest calculation is launched:
•
by writing new data into the HASH_DIN register (the first word of the next block) if the
DMA is not used (intermediate digest calculation),
•
automatically if the DMA is used.
When the last block has been written to the HASH_DIN register, the final digest calculation
(including padding) is launched:
•
by writing the DCAL bit to 1 in the HASH_STR register (final digest calculation),
•
automatically if the DMA is used and MDMAT bit is set to 0.
When a digest calculation (intermediate or final) is ongoing and a new write access to the
HASH_DIN register is performed, wait-states are inserted on the AHB2 bus until the hash
calculation completes.
When the HASH_DIN register is read, the last word written to this location is accessed (zero
after reset).
.
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
DATAIN
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DATAIN
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
Bits 31:0
DATAIN:
Data input
Reading this register returns the current register content.
Writing this register pushes the current register content into the IN FIFO, and the
register takes the new value presented on the AHB databus.