crust-firmware / crust

SCP (power management) firmware for sunxi SoCs
Other
150 stars 34 forks source link

Implement the CSS driver for H6 #174

Closed smaeul closed 3 years ago

smaeul commented 4 years ago

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.

smaeul commented 4 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.

smaeul commented 3 years ago

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.