As we need to float DDR IO when entering DSM, so those registers
we need to access after DDR IO is floated must be contained in TLB,
otherwise, the TLB update may case DDR access and lead to
system hang. To make sure these registers' address is in TLB,
we need to flush TLB first then access them manually.
Signed-off-by: Anson Huang <b20788@freescale.com>
#include <asm/fncpy.h>
#include <asm/proc-fns.h>
#include <asm/suspend.h>
+#include <asm/tlb.h>
#include <asm/hardware/cache-l2x0.h>
#include <asm/mach/map.h>
* call low level suspend function in iram,
* as we need to float DDR IO.
*/
+ local_flush_tlb_all();
suspend_in_iram_fn(suspend_iram_base, iram_paddr, cpu_type);
return 0;
}