Question from a customer:
This question "pertains to the CSL (Chip Support Library) for the C6748 processor.
You publish a document specifically describing the cache controller for the C674x family of processors (sprug82a.pdf).
In here you show some sample code to program the Cache using the CSL and you reference some stuff (see example(s) below:
for (i=0; i<(DATASIZE/BUFSIZE)-2; i+=2)
{
/* ----------------------------------------------------- */
/* InBuffA -> OutBuffA Processing */
/* ----------------------------------------------------- */
CACHE_InvL2(InBuffB, BUFSIZE, CACHE_WAIT);
<DMA_transfer(peripheral, InBuffB, BUFSIZE)>
CACHE_wbL2(OutBuffB, BUFSIZE, CACHE_WAIT);
<DMA_transfer(OutBuffB, peripheral, BUFSIZE)>
process(InBuffA, OutBuffA, BUFSIZE);
/* ----------------------------------------------------- */
/* InBuffB -> OutBuffB Processing */
/* ----------------------------------------------------- */
CACHE_InvL2(InBuffA, BUFSIZE, CACHE_WAIT);
<DMA_transfer(peripheral, InBuffA, BUFSIZE)>
CACHE_wbL2(OutBuffA, BUFSIZE, CACHE_WAIT);
<DMA_transfer(OutBuffA, peripheral, BUFSIZE)>
process(InBuffB, OutBuffB, BUFSIZE);
}
And:
#pragma DATA_ALIGN(InBuffA, CACHE_L2_LINESIZE)
#pragma DATA_ALIGN(InBuffB, CACHE_L2_LINESIZE)
#pragma DATA_ALIGN(OutBuffA,CACHE_L2_LINESIZE)
#pragma DATA_ALIGN(OutBuffB,CACHE_L2_LINESIZE)
unsigned char InBuffA [N*CACHE_L2_LINESIZE];
unsigned char OutBuffA[N*CACHE_L2_LINESIZE];
unsigned char InBuffB [N*CACHE_L2_LINESIZE];
unsigned char OutBuffB[N*CACHE_L2_LINESIZE];
These functions and defines don’t seem to exist anywhere. If I look in the older chips (like the C6713) these are defined in the CSL for that chip (in fact, they are defined for the C6457 in the CSL for it). According to the links I’ve found from TI the CSL for the C6748 is part of the BIOSPSP (http://processors.wiki.ti.com/index.php/Chip_support_library#Chip_Support_Library_for_C6747_and_C6748).
These defines and functions are not part of this package. In fact, it looks like this package is a collection of TI’s drivers for various on chip peripherals, not a true CSL which might be used to write your own driver.
So my question is, since these examples are in the Cache C674x document I assume the equivalent to the old CSL is available somewhere. Where can I get it? I’ve looked around and I cannot find it. I did find it for the C6457, which we also use, but I can’t believe that TI would provide a CSL set of subroutines to manage on chip peripherals for one family, but not for another.
Can you please help me locate it?