My board is a custom board based on IMX6Q sabresd,I used linux 3.10(yocto git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.17-1.0.2_ga)。I shall use this linux version.
there is a problem about GPU initialization,it initialize the GPU failed, and I found it is hang in gc_hal_kernel_hardware.c--->__RestGPU:
static gceSTATUS _ResetGPU(
IN gckHARDWARE Hardware,
IN gckOS Os,
IN gceCORE Core
)
{
.......
for (;;)
{
....
gcmkONERROR(gckOS_WriteRegisterEx(Os,
Core,
0x00000,
control));
/* Read idle register. */
gcmkONERROR(gckOS_ReadRegisterEx(Os,
Core,
0x00004,
&idle));
if ((((((gctUINT32) (idle)) >> (0 ? 0:0)) & ((gctUINT32) ((((1 ? 0:0) - (0 ? 0:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 0:0) - (0 ? 0:0) + 1)))))) ) == 0)
{
continue; -------------------------------------->( **************always continue there*********)
}
.....
}
.....
}
It seems the write register failed. Can any body tell me what cause this problem? thank you!
Hi jiongzhong
you can narrow down issue, if this is caused by DDR errors or some
gpu erratum, running codes on reference Sabre board or using
more new linux where many gpu errata were fixed.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
thank you. Is there a datasheet about IMX6Q's GPU registers? The IMX6Q datasheet describe nothing about GPU registers.
unfrotunately no, as this is confidential info.