31.4.9 BUFC Data Transfer
To allow automatic encryption/decryption or other operations on radio data, CRYPTO has instructions for moving data from and to
BUFC, the Buffer Controller. Both DATA0 and DATA1 can be loaded with data from the buffer selected by READBUFSEL (CRYP-
TO_CTRL register) as shown in
Figure 31.6 CRYPTO BUFC Data Transfer on page 1040
. Similarly, the content of DATA0 and DATA1
can be written to the buffer selected by WRITEBUFSEL (also in the CRYPTO_CTRL register).
READBUFSEL
BUFFER0
BUFC
WRITEBUFSEL
BUFFER0
DATA1[127:0]
DATA0[127:0]
Figure 31.6. CRYPTO BUFC Data Transfer
When reading from CRYPTO to the BUFC, the number of bytes read are determined by the DMAxRMODE configuration in CRYP-
TO_CTRL. If it is set to either LENLIMIT or LENLIMITBYTE, only the number of bytes given by LENGTH in CRYPTO_SEQCTRL are
transferred. Else the full width of the last buffer is also written, e.g. a full number of 16-byte buffers are written to the BUFC.
Note:
The buffer selected by READBUFSEL and WRITEBUFSEL in the CRYPTO_CTRL registers must be appropriately configured in the
BUFC module prior to using instructions involving BUFC.
All BUFC reads start at the current BUFC read pointer, and move the pointer according to the number of bytes read. BUFC writes nor-
mally also work in the same way, starting at the current BUFC write pointer, and moving it the right number of positions. For BUFC XOR
writes, software has the option to change this by setting either of DATAxTOBUFXOROW in CRYPTO_CTRL. With this bit set, the BUFC
write pointer will be reset to the start of the previous write before writing to the BUFC. Using this feature, BUFC data can be written with
using the DATAxTOBUFC instructions, and then XOR'ed with another set of data using the DATAxTOBUFCXOR instruction.
BUFACTIVE in CRYPTO_STATUS is set while CRYPTO is reading or writing from/to the BUFC.
Reference Manual
CRYPTO - Crypto Accelerator
silabs.com
| Building a more connected world.
Rev. 1.1 | 1040