Help Finding "User Tag" Documentation for CRACEN DMA (nRF54L15)

I’m working with the CRACEN peripheral on the nRF54L15 and I’m trying to understand the DMA User Tag field used in registers like `CRYPTMSTRDMA.FETCHTAG`.

The documentation mentions this field but doesn’t explain its purpose or valid values, it only says "Fetch User Tag (only used in direct mode)". I’ve checked the nRF54L15 reference manual and CRACEN-related sections, but couldn’t find further details.

Could someone point me to the documentation or provide clarification on what the User Tag represents and how it should be configured?

Thank you.

Parents
  • Hi William, 
    The reply I got from the team is that the register is not expected to be used directly by user. The recommendation is "they can just ignore it and use the nrfx driver if they wish to make use of it in a baremetal application: https://github.com/NordicSemiconductor/nrfx/blob/11f57e578c7feea13f21c79ea0efab2630ac68c7/hal/nrf_c…

     The driver uses cryptomaster in scatter/gather mode.

  • Thanks for the clarification. However, I’m still unsure about the User Tag part — even if I’m not supposed to use the register directly, I still need to understand how to fill the dmatag field when building a descriptor for scatter/gather manually.

    For example, in C I often see something like:

    ```
    struct sxdesc {
        char *addr;
        struct sxdesc *next;
        uint32_t sz;
        uint32_t dmatag;
    };
    ```
    So my question still the same

    1. What should `uint32_t dmatag` contain in this context?

    Also, I understand the recommendation to use scatter/gather mode, but the documentation note (“only used in direct mode”) implies the tag has some role there. If I want to use direct mode,

    2. how should I handle multiple data inputs, and what value should be written to the tag field?

    I am looking forward for the answer of both questions! 

    Thanks again for the help.

Reply
  • Thanks for the clarification. However, I’m still unsure about the User Tag part — even if I’m not supposed to use the register directly, I still need to understand how to fill the dmatag field when building a descriptor for scatter/gather manually.

    For example, in C I often see something like:

    ```
    struct sxdesc {
        char *addr;
        struct sxdesc *next;
        uint32_t sz;
        uint32_t dmatag;
    };
    ```
    So my question still the same

    1. What should `uint32_t dmatag` contain in this context?

    Also, I understand the recommendation to use scatter/gather mode, but the documentation note (“only used in direct mode”) implies the tag has some role there. If I want to use direct mode,

    2. how should I handle multiple data inputs, and what value should be written to the tag field?

    I am looking forward for the answer of both questions! 

    Thanks again for the help.

Children
Related