zynqmp: pm: Add support for PS and system reset on WDT restart

Add ability to support PS and System reset after idling the APU,
by reading the restart scope from the PMU.

Signed-off-by: Will Wong <willw@xilinx.com>
Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Change-Id: I23c01725d8ebb71ad34be02ab204411b93620702
This commit is contained in:
Will Wong 2020-11-22 23:45:21 -08:00 committed by Madhukar Pappireddy
parent 1f64caeac8
commit 0a67923b99
2 changed files with 8 additions and 2 deletions

View File

@ -345,6 +345,9 @@
#define PMU_GLOBAL_GEN_STORAGE4 (GGS_BASEADDR + 0x10)
/* Warm restart boot health status mask */
#define PM_BOOT_HEALTH_STATUS_MASK U(0x01)
/* WDT restart scope shift and mask */
#define RESTART_SCOPE_SHIFT (3)
#define RESTART_SCOPE_MASK (0x3U << RESTART_SCOPE_SHIFT)
/*AFI registers */
#define AFIFM6_WRCTRL U(13)

View File

@ -142,6 +142,8 @@ static uint64_t __unused __dead2 zynqmp_sgi7_irq(uint32_t id, uint32_t flags,
void *handle, void *cookie)
{
int i;
uint32_t value;
/* enter wfi and stay there */
INFO("Entering wfi\n");
@ -156,8 +158,9 @@ static uint64_t __unused __dead2 zynqmp_sgi7_irq(uint32_t id, uint32_t flags,
spin_unlock(&inc_lock);
if (active_cores == 0) {
pm_system_shutdown(PMF_SHUTDOWN_TYPE_RESET,
PMF_SHUTDOWN_SUBTYPE_SUBSYSTEM);
pm_mmio_read(PMU_GLOBAL_GEN_STORAGE4, &value);
value = (value & RESTART_SCOPE_MASK) >> RESTART_SCOPE_SHIFT;
pm_system_shutdown(PMF_SHUTDOWN_TYPE_RESET, value);
}
/* enter wfi and stay there */