On Allwinner A20
For the Suspend-to-RAM implementation, the DRAM chips are put into the self-refresh mode and the SoC is powered off. Waking up means that the system is booting normally from the SD card or from the other default boot locations. This means that the U-Boot bootloader is getting started as part of the resume process. And right now it just discards the data from the DRAM and boots the system normally.
- A10_DRAM_Controller_Register_Guide#SDR_DPCR (Power Save Control Register)
- TMR_GP_DATA_REG in the A20 User Manual (these registers are in the RTC domain and retain data on the SoC power off)
Mainline kernel status
- Have a look at the existing implementations of something similar (maybe the Tegra warmboot?)
- Check if PSCI is a good fit for the job or not.
Android kernel status
The existing resume implementation can be found in the boot0 bootloader: https://github.com/allwinner-zh/bootloader/tree/master/basic_loader/bsp/bsp_for_a20/init_dram