Hi, there
I am working on GPMC between am3352 and FPGA. Burst operation is required for transfer data from FPGA to CPU. I looked for some familiar topic about this question. And the code below is used for a burst operation test. But only 4 consecutive 4 words burst is triggered, not a 16 words burst operation.(16 words burst length is configed for GPMC interface). Any idea about this problem? Or I misunderstand something?
void fpga_burst_test(void)
{
u32* pVal;
volatile u32* ptr = (u32*)(CONFIG_FPGA_COMM_BASE + 0x10);
u16 i;
volatile u16* pa;
pVal = (u32*)malloc(8*sizeof(u32));
asm volatile(
"ldmia %[in]!, {r3-r10} \n\t"
"stmia %[out]!, {r3-r10} \n\t"
:[out]"+r" (pVal)
:[in]"r" (ptr)
:"r3","r4","r5","r6","r7","r8","r9","r10","memory"
);
pa = (u16*)pVal;
printf("FPGA burst test:\n");
for(i = 0; i < 16; i ++) {
printf("Read FPGA reg value: 0x%08x \n", *pa);
pa++;
}
free(pVal);
}
Best Regards
Yang