From 0fb011dcd9647905d0363d958a5e4bcaf351b43d Mon Sep 17 00:00:00 2001 From: Sarat Chand Savitala Date: Fri, 2 Oct 2015 00:38:14 +0530 Subject: [PATCH] sw_apps:zynqmp_fsbl: Power state not to be checked before sending powering up request Currently power state of island is checked before giving corresponding power up request. This fix removes this check as this condition is false at reset and leading to the corresponding power up request not being sent. Signed-off-by: Sarat Chand Savitala Acked-by: Krishna Chaitanya Patakamuri --- lib/sw_apps/zynqmp_fsbl/src/xfsbl_misc.c | 43 +++++++++--------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/lib/sw_apps/zynqmp_fsbl/src/xfsbl_misc.c b/lib/sw_apps/zynqmp_fsbl/src/xfsbl_misc.c index ddc89eb0..b8ec15f7 100644 --- a/lib/sw_apps/zynqmp_fsbl/src/xfsbl_misc.c +++ b/lib/sw_apps/zynqmp_fsbl/src/xfsbl_misc.c @@ -501,34 +501,23 @@ u32 XFsbl_PowerUpIsland(u32 PwrIslandMask) u32 RegVal; u32 Status = XFSBL_SUCCESS; - /* If Island not powered up yet, do it now */ - RegVal = XFsbl_In32(PMU_GLOBAL_PWR_STATE); - if ((RegVal & PwrIslandMask) != - PwrIslandMask) { - - /* There is a single island for both R5_0 and R5_1 */ - if ((PwrIslandMask & PMU_GLOBAL_PWR_STATE_R5_1_MASK) == - PMU_GLOBAL_PWR_STATE_R5_1_MASK) { - PwrIslandMask &= ~(PMU_GLOBAL_PWR_STATE_R5_1_MASK); - PwrIslandMask |= PMU_GLOBAL_PWR_STATE_R5_0_MASK; - } - - /* Power up request enable */ - XFsbl_Out32(PMU_GLOBAL_REQ_PWRUP_INT_EN, PwrIslandMask); - - /* Trigger power up request */ - XFsbl_Out32(PMU_GLOBAL_REQ_PWRUP_TRIG, PwrIslandMask); - - /* Poll for Power up complete */ - do { - RegVal = XFsbl_In32(PMU_GLOBAL_REQ_PWRUP_STATUS) & PwrIslandMask; - } while (RegVal != 0x0U); - - RegVal = XFsbl_In32(PMU_GLOBAL_PWR_STATE); - if (RegVal != PwrIslandMask) { - Status = XFSBL_FAILURE; - } + /* There is a single island for both R5_0 and R5_1 */ + if ((PwrIslandMask & PMU_GLOBAL_PWR_STATE_R5_1_MASK) == + PMU_GLOBAL_PWR_STATE_R5_1_MASK) { + PwrIslandMask &= ~(PMU_GLOBAL_PWR_STATE_R5_1_MASK); + PwrIslandMask |= PMU_GLOBAL_PWR_STATE_R5_0_MASK; } + /* Power up request enable */ + XFsbl_Out32(PMU_GLOBAL_REQ_PWRUP_INT_EN, PwrIslandMask); + + /* Trigger power up request */ + XFsbl_Out32(PMU_GLOBAL_REQ_PWRUP_TRIG, PwrIslandMask); + + /* Poll for Power up complete */ + do { + RegVal = XFsbl_In32(PMU_GLOBAL_REQ_PWRUP_STATUS) & PwrIslandMask; + } while (RegVal != 0x0U); + return Status; }