diff options
author | Derek Basehore <dbasehore@chromium.org> | 2018-01-23 17:18:57 -0800 |
---|---|---|
committer | Derek Basehore <dbasehore@chromium.org> | 2018-01-23 17:42:57 -0800 |
commit | b38c6f6b2d7b27af74793f1053f5a3d0d67d307d (patch) | |
tree | 427aff2d266bdb1e71427b4162ea9db3a74d7981 /plat/rockchip | |
parent | 8c1e78af46d80c3e56b83647dd40d1207577c667 (diff) | |
download | platform_external_arm-trusted-firmware-b38c6f6b2d7b27af74793f1053f5a3d0d67d307d.tar.gz platform_external_arm-trusted-firmware-b38c6f6b2d7b27af74793f1053f5a3d0d67d307d.tar.bz2 platform_external_arm-trusted-firmware-b38c6f6b2d7b27af74793f1053f5a3d0d67d307d.zip |
rockchip/rk3399: Save and restore GIC
This adds calls to the GICv3 save/restore functions for the GIC
distributor and redistributor.
Signed-off-by: Derek Basehore <dbasehore@chromium.org>
Diffstat (limited to 'plat/rockchip')
-rw-r--r-- | plat/rockchip/rk3399/drivers/pmu/pmu.c | 8 | ||||
-rw-r--r-- | plat/rockchip/rk3399/platform.mk | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/plat/rockchip/rk3399/drivers/pmu/pmu.c b/plat/rockchip/rk3399/drivers/pmu/pmu.c index 05fa5cadf..51101a4e0 100644 --- a/plat/rockchip/rk3399/drivers/pmu/pmu.c +++ b/plat/rockchip/rk3399/drivers/pmu/pmu.c @@ -12,6 +12,7 @@ #include <delay_timer.h> #include <dfs.h> #include <errno.h> +#include <gicv3.h> #include <gpio.h> #include <m0_ctl.h> #include <mmio.h> @@ -45,6 +46,8 @@ static uint32_t store_grf_soc_con7; static uint32_t store_grf_ddrc_con[4]; static uint32_t store_wdt0[2]; static uint32_t store_wdt1[2]; +static gicv3_dist_ctx_t dist_ctx; +static gicv3_redist_ctx_t rdist_ctx; /* * There are two ways to powering on or off on core. @@ -1331,6 +1334,9 @@ int rockchip_soc_sys_pwr_dm_suspend(void) dmc_suspend(); pmu_scu_b_pwrdn(); + gicv3_rdistif_save(plat_my_core_pos(), &rdist_ctx); + gicv3_distif_save(&dist_ctx); + /* need to save usbphy before shutdown PERIHP PD */ save_usbphy(); @@ -1487,6 +1493,8 @@ int rockchip_soc_sys_pwr_dm_resume(void) BIT(PMU_CLR_PERILPM0) | BIT(PMU_CLR_GIC)); + gicv3_distif_init_restore(&dist_ctx); + gicv3_rdistif_init_restore(plat_my_core_pos(), &rdist_ctx); plat_rockchip_gic_cpuif_enable(); m0_stop(); diff --git a/plat/rockchip/rk3399/platform.mk b/plat/rockchip/rk3399/platform.mk index 33b9723d7..482c7b778 100644 --- a/plat/rockchip/rk3399/platform.mk +++ b/plat/rockchip/rk3399/platform.mk @@ -23,6 +23,8 @@ PLAT_INCLUDES := -I${RK_PLAT_COMMON}/ \ -I${RK_PLAT_SOC}/include/shared/ \ RK_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ + drivers/arm/gic/v3/arm_gicv3_common.c \ + drivers/arm/gic/v3/gic500.c \ drivers/arm/gic/v3/gicv3_main.c \ drivers/arm/gic/v3/gicv3_helpers.c \ plat/common/plat_gicv3.c \ |