I'm trying to use the GC320 (GPU2D) in Windows Embedded Compact 7 and 2013.
I started from Adeneo's BSP, but now our BSP has been heavily customized.
I have only binary code for the GPU2D access libraries, but I can see how it integrates with the display driver.
I currently have it integrated using ifdefs, I plan to make it activable at runtime.
Currently I have it running on devices based on Solo and DualLight version of i.MX6, but not on those based on Dual and Quad.
On dual/quad the initialization function succeeds. I've no code, but I suppose that, at least, this means that writing/reading to the main registers is working.
But when the driver waits for an operation to be completed it print outs a timeout message and fails.
The message is: "GC2D FATAL ERROR:2D hardware hung (timeout:3000)!"
I suppose that this means that no interrupt is generated by GPU2D when the operation is completed, but I can't confirm this for sure.
Reading the documentation, it seems that the same GC320 component is used on both version of i.MX6, and it's mapped on the same memory area, uses the same interrupts.
I see that clocking is managed in a different way. Dual/quad reference manual states that CCGR3(CG15) bits (for openVG accelerator) must be set alongside CCGR1(CG12) for the GPU2D, as on solo/DL.
I tried to do this, but with no result.
I also tried the different settings for CBCMR to use different clock sources for GPU2D clock and AXI, but with no success.
There is something obvious that I'm missing here?
Is the GPU2D driver meant to work on both variants of the processor?