This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Supporting SGL on 66x

Other Parts Discussed in Thread: SYSBIOS

I would like to support Scatter Gather Lists (SGL) on our 66xc DSP (four and eight core).  Would you have any whitepapers or samples on how to do this?  Is this possible on the given DSP?

  • Eric,

    This question doesn't seem to be specific or related to TI-RTOS, so I went ahead and moved it over to the device forum in hopes that someone there can answer more quickly.
  • Elaborating on Eric's application:

    There is a CPU attached via PCIe to the DSP. The CPU will write a scatter-gather list (SGL) to the DSP and the DSP would use the SGL to write to the CPU's PCIe mapped memory. The transfer would be over 760kB and the "NumberOfElements" and "Length" field below can be variable.

    typedef struct _SCATTER_GATHER_LIST {
      ULONG                  NumberOfElements;
      ULONG_PTR              Reserved;
      SCATTER_GATHER_ELEMENT Elements[];
    } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
    
    typedef struct _SCATTER_GATHER_ELEMENT {
      PHYSICAL_ADDRESS  Address;
      ULONG  Length;
      ULONG_PTR  Reserved;
    } SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;

    Cheers2u
    Eddie

  • Hi Eric Hanson,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com). Please read all the links below my signature.

    I think we do not have whitepaper or samples to support SGL on DSP's.

    Please provide exact part number that you are using. Are you looking for SGL support on keystone II device (ARM + DSP)?

    Thank you.

  • Hi Eddie,

    Thank you for your contribution to e2e.
  • We are using c6674 and c6678.  There are no ARM processors.  We are using the DSP only part.

  • Are you running c66x linux on DSP?
  • Hi Raja

    We (Eric and I) are using TI's latest RTOS/SYSBIOS. 

    (also, we are not using OpenCL).

    If there are no TI functions available to configure the DMA given an SGL, would it be possible to implement an SGL like transfer using a linked DMA transfer? We'd have to write a function that would convert the SGL into a param list. Since the SGL could possibly become large, we'd be limited since the DMA Param set is 256. True? Maybe there is a better way to deal with this instead of linked DMAs?

    Just curious, would SGL support be available if we were running linux?

    Cheers
    Eddie

  • Does eDMA have a solution for this?
  • Hi Eric and Eddie,
    Apologize for the delay. Yes, Your understanding is correct, you can use linked EDMA for this purpose. Please refer EDMA user guide for more information (Section 2.3.7).

    EDMA UG:
    http://www.ti.com/lit/sprugs5b

    The PaRAM set is depends on the EDMA channel controllers, please refer device specific data manual for information. The PaRAM set for C6674/78 is as follows,

    1. 128 PaRAM entries for EDMA3CC0,
    2. 512 each for EDMA3CC1 and EDMA3CC2

    Just curious, would SGL support be available if we were running linux?

    No. I have checked with C66x linux expert.

    Thank you.
  • Thanks,

    Do you know if this approach to SGL has been used successfully by others?  We are running on full Windows 8 and higher.

    Best Regards - Eric 

  • Eric,
    No. We do not have such information. Thank you.