8201, 8202, 8203, 8204 Acceleration Processor Data Sheet, DS-0157-05
Page 83
Exar Confidential
All information bus fields except the AAD are aligned on an 8-byte boundary. Therefore, the
length of the source buffer with information fields are 8-byte aligned, except for a source
buffer that only contains the AAD. To simplify the software design, the input AAD is byte
aligned, but the output AAD is 8-byte aligned.
The 820x will write all information fields to the host destination buffer if the DIR bit in the
Desc_cmd_base descriptor is set to one. The host software can then determine if any of the
information fields have been corrupted. All information fields are located in the header of
the first destination buffer as shown in the example result data stream below.
Dest_byte_count includes all resultant output from the 820x.
Source buffers that contain information fields also can be handled in a scatter-gather
scheme to facilitate software packet processing. For example, the key field is a session
related parameter, while the other information fields are packet related parameters. The
host software can write the key into source buffer 0, setting the value for the whole
session. The other information fields, whose values change according to the packet, can be
saved into the remaining source buffers. In this way, the host software will not need to
copy the key repeatedly to host memory for the hundreds of packets for that session.
3.1.3.6
Hash Buffer
The Hash buffer is a dedicated buffer for storing hash values. The 820x will write to the
hash buffer before writing the command result entry into the destination buffer and the
result ring. The host software can be assured that when a command result is available, the
hash value for that command is also available.
The Hash buffer is actually the first destination buffer. If a command is hash related, the
first destination buffer will be used to store only the hash values; all destination data will be
written to host memory using the second destination buffer even if there is space remaining
in the hash buffer.
The hash buffer starting address and length must be aligned to 32-bytes, and for kernel
mode applications must be physically contiguous.
Every entry in the hash buffer is 256 bits to accommodate hash values of SHA-256, SHA-1,
MD5 and all MACs, therefore the hash buffer size must be a multiple of 256 bits. The hash
Dest_byte_count = Destination Buffer 0, Destination Buffer 1
Key
IHV
IV
MAC
AAD
Result Data