Okay, after a lot of digging around, I got it to work with these changes:
volatile uint32_t E1vector[2160] __attribute__ ((aligned(32)));
wdata = (uint32_t)E1vector;
cdma0_srcaddr_wr(wdata);
Xil_DCacheDisable();
I think the data cache disable is the main reason it is working. I’m hoping this doesn’t hurt performance too much!