Hi guys,
I have observed a strange behavior with the XMC MPAX registers on the C6678. I used it to remap my memory mapping and erverthing works fine so far.
But when shift the memory map for a value smaller than the segSize of the MPAX it does not work. What I did is:
mpaxh[2].segSize = MPAX_SEGSIZE_256KB;
mpaxh[2].bAddr = XMC_BADDR_MAKE(0x0c200000);
mpaxl[2].rAddr = XMC_RADDR_MAKE(0x00C20000+0x4000) ;
=> works fine!
mpaxh[2].segSize = MPAX_SEGSIZE_256KB;
mpaxh[2].bAddr = XMC_BADDR_MAKE(0x0c200000);
mpaxl[2].rAddr = XMC_RADDR_MAKE(0x00C20000+0x2000) ;
Does not work at all! All transactions are simply not remapped, but happen to the original addres. E.g. When I write to 0x0c200000 it is written to 0:0c200000 and not to 0:0c220000!
Does anyone have an idea what's the reason for this?
Regards Fabian