Thank you very much for your quick response.
What problems have you encountered?
- The first problem I had was that an error occurred when creating the uncached memory area. I have fixed this with the following. Therefore I had to change the following:
the following change must be made to uncached_memory.c
the defined size of
must be changed from 1MB to 2MB, because the minimum block size in MMU is 2MB.
of: #define UNCACHED_MEMORY_SIZE 0x100000ul
on: #define UNCACHED_MEMORY_SIZE 0x200000ul
and as a further point the attribute must be changed.
from: Xil_SetTlbAttributes( ( uint32_t )pucStartOfMemory, 0x1c02);
to: Xil_SetTlbAttributes( ( ( uint32_t )pucStartOfMemory, 0x409UL );
Now I have the following problems:
When the following function calls come in "tasks.c
it goes to the FreeRTOS_abort and remains there in a while loop.
I have now compared the EMAC driver for the Ultrascale and the Zynq 7000.
There are the following differences:
in xemacps.c :
XEmacPs_WriteReg(InstancePtr->Config.BaseAddress, XEMACPS_TXSR_OFFSET, XEMACPS_SR_ALL_MASK);
XEmacPs_WriteReg(InstancePtr->Config.BaseAddress, XEMACPS_TXSR_OFFSET, 0x0U);
#define XEMACPS_SR_ALL_MASK 0xFFFFFFFFU /**< Mask for full register */
no definition of XEMACPS_SR_ALL_MASK 0xFFFFFFFFU
So I’d say there’s not much difference.