Hi,
we all love the i.mx6 with its amazing GPU power. For one of our medical projects, however, we need to throttle the chip, because we can't dissipate the heat properly.
What would be the best way to throttle the chip ? I managed to reduce the CPU clock, but regarding the GPU clock, I'm not sure if I can simply reduce it or if there would be side-effects when I did so ?
Thanks a lot,
Roelof
(true i.mx6 fan)
Solved! Go to Solution.
Hi Roelof
gpu clocks can be reduced, side effects will be reduced performance
AN4509 i.MX 6Dual/6Quad Power Consumption Measurement describes
various use cases with lower power consumption.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Anyone ?
We're using VxWorks and are playing the 3D demo CinematicExperience (plus CPU stress). When I throttle the CPU by factor 2 to 396 MHz and the GPU 2D and 3D core clocks by factor 4, I see only about 80mA less power consumption on my board (1.87A -> 1.79A). So I hoped, that when I could also throttle the shader clock, I could maybe reduce the power consumption a bit more.
Where can I configure GPU3D_SHADER_CLK_ROOT ? (Not in CCM_CBCMR, right ?)
Thanks,
Roelof
Any progress on that? Were you able to reduce the GPU clock and save some power?
I was able to track down the place where the clock dividers are configured in the kernel:
/arch/arm/mach-imx/clk-imx6q.c
clk[IMX6QDL_CLK_GPU2D_CORE_PODF] = imx_clk_divider("gpu2d_core_podf", "gpu2d_core_sel", base + 0x18, 23, 3);clk[IMX6QDL_CLK_GPU3D_CORE_PODF] = imx_clk_divider("gpu3d_core_podf", "gpu3d_core_sel", base + 0x18, 26, 3);clk[IMX6QDL_CLK_GPU3D_SHADER] = imx_clk_divider("gpu3d_shader", "gpu3d_shader_sel", base + 0x18, 29, 3);
Reduced clock by 50% (divide by 8):
clk[IMX6QDL_CLK_GPU2D_CORE_PODF] = imx_clk_divider("gpu2d_core_podf", "gpu2d_core_sel", base + 0x18, 23, 7);clk[IMX6QDL_CLK_GPU3D_CORE_PODF] = imx_clk_divider("gpu3d_core_podf", "gpu3d_core_sel", base + 0x18, 26, 7);clk[IMX6QDL_CLK_GPU3D_SHADER] = imx_clk_divider("gpu3d_shader", "gpu3d_shader_sel", base + 0x18, 29, 7);
Hi Roelof
gpu clocks can be reduced, side effects will be reduced performance
AN4509 i.MX 6Dual/6Quad Power Consumption Measurement describes
various use cases with lower power consumption.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks Igor,
we use the i.mx6 DL and AN4576.pdf gives lots of interesting information, and points to the clocks "GPU3D Core" and "GPU3D Shader". Excellent. I admired Figure 18-2 (p. 784) of IMX6SDLRM and was happy to find in chapter 33.2, that I have to throttle GPU3D_CORE_CLK_ROOT and GPU3D_SHADER_CLK_ROOT. I found that GPU3D_CORE_CLK_ROOT can be configured by CCM_CBCMR (Chapter 18.6.7).
But I haven't found yet, where to configure GPU3D_SHADER_CLK_ROOT ? Any clue for me ? Thanks.
Best regards,
Roelof