I was trying to implement system idle mode for power management purpose in my custom board which has imx6 processor. The document "i.MX 6Solo Power Consumption Measurement" contains the information about what is system idle mode and the steps to send the processor to system idle board.
When I try to implement the steps mentioned in the document "i.MX 6Solo Power Consumption Measurement" the board is getting hanged always.
By tracing the kernel code I spotted out that the kernel is getting hanged when the kernel was trying to change the frequency of DDR3 to 24MHz (exact line where the kernel is getting hanged is at the function "mx6_change_ddr_freq" in the file "busfreq_ddr3.c").
But when I perform the same steps in sabresd board it is working fine, And the measurement value of individual power domain also same as the the value mentioned in the document for sabresd.
We are not using the same DDR3 as in Sabresd board.
The part number of DDR3 which we use is "NT5CC256M16CP"
And the sabresd board DDR3 part number is "MT41K128M16-125:k"
I used the same kernel image (v3.14.28) for sabresd and for my custom board.
I also tried changing DDR3 frequency to 30MHz instead of 24MHz in system idle mode in my custom board. It works for one time and when we do it again it is getting hanged.
has anyone had experienced similar issue before?
Any pointers here will be very helpful.
The "system_idle.sh" file attached with this mail contains the command to implement the system idle mode.
Original Attachment has been moved to: system_idle.sh