EasyDMA

nRF54L15 | nRF54L10 | nRF54L05 Datasheet

This peripheral implements EasyDMA with scatter-gather functionality for reading from memory without CPU involvement.

The scatter-gather functionality allows EasyDMA to collect data from multiple memory regions, instead of one contiguous block. The memory regions are described by a job list, called input job list. The job list consists of one or more job entries that consist of a 32-bit address field, 8-bit attribute field, and 24-bit length field. A job list ends with a zero filled job entry.

The input job list must have separate entries for the following entries:
  1. The three first bytes of the resolvable private address (the 24-bit hash)
  2. The three following bytes of the resolvable private address (the 24-bit prand)
  3. The IRKs
The attribute field of each of these entries identify the input job and must be set according to the following table.
Table 1. Attribute field for input job list
Attribute Value
Hash 11
Prand 12
Irk 13

If the IN.PTR register or the entries in the input job list are not pointing to memory connected to the DMA bus, an EasyDMA transfer may result in a HardFault or memory corruption. See Memory for more information about the different memory regions and DMA connectivity.

The EasyDMA will have finished accessing the RAM when the END, RESOLVED, or NOTRESOLVED events are generated.

For instances supporting DMA error detection, the ERRORSTATUS register will report if a bus error has occurred during DMA access. To see if DMA error detection is supported, see the the instance's configuration in Instantiation.

The list of the resolved IRK indices are stored in memory using the output job list, configured by OUT.PTR.
Table 2. Attribute field for output job list
Attribute Value
Resolved Irk index 11

Example

The figure below shows an example of a job list with three job entries. Each of the entries point to a memory address, and the length field describes how many bytes of data is stored at that address. There are three blocks of memory in use
  • Hash, an array of length 3
  • Prand, an array of length 3
  • Irk, an array of at least length 16
The data pointed to from the job list is what is fed into the module and processed according to the peripheral's operation. The entries of the job list comprises pointers to the individual arrays, as well as their sizes. Job entries with length greater than one are processed in little endian order.
Figure 6. EasyDMA Scatter-Gather job list example

EasyDMA Scatter-Gather job list example