Closed smaeul closed 3 years ago
I think https://github.com/crust-firmware/crust/commit/02adeadceac24ac72b8be0232ef3ef7a5a0d5580 is the extent of what can be learned from the manual and BSP code.
Implementation completed in 12c4985b2a0fcb6bf19908b80a8b36989bf7c83a.
My Orange Pi 3 just passed an hour of continuous suspend/resume cycles (about 8 seconds each), so I'm calling this closed.
Next step for H6 is a DRAM controller driver.
ATF has existing code for this in https://github.com/ARM-software/arm-trusted-firmware/tree/master/plat/allwinner/common, shared with the A64. The only difference is the headers in https://github.com/ARM-software/arm-trusted-firmware/tree/master/plat/allwinner/sun50i_h6/include, which provide different register locations. This should be easy enough to support in crust by factoring out the register definitions to a private or platform header.
For the registers that aren't used in ATF (e.g.
R_CPUCFG_SYS_RESET_REG
), their locations will need to be derived by examining the Allwinner H6 ARISC blob.