lib/sw_apps/zynqmp_fsbl/src/xfsbl_handoff.c
void XFsbl_HandoffExit(u64 HandoffAddress, u32 Flags)
{
	u32 RegVal;

	/*
	 * Write 1U to PMU GLOBAL general storage register 5 to indicate
	 * PMU Firmware that FSBL completed execution
	 */
	RegVal = XFsbl_In32(PMU_GLOBAL_GLOB_GEN_STORAGE5);
	RegVal &= ~(XFSBL_EXEC_COMPLETED);
	RegVal |= XFSBL_EXEC_COMPLETED;
	XFsbl_Out32(PMU_GLOBAL_GLOB_GEN_STORAGE5, RegVal);

	XFsbl_Printf(DEBUG_GENERAL,"Exit from FSBL \n\r");

	/**
	 * Exit to handoff address
	 * PTRSIZE is used since handoff is in same running cpu
	 * and address is of PTRSIZE
	 */
	XFsbl_Exit((PTRSIZE) HandoffAddress, Flags);

	/**
	 * should not reach here
	 */
	return ;

}
/****************************************************************************/
/**
 * FSBL exit function before the assembly code
 *
 * @param HandoffAddress is handoff address for the FSBL running cpu
 *
 * @param Flags is to determine whether to handoff to applicatio or
 * 			to be in wfe state
 *
 * @return None
 *
 *
 *****************************************************************************/
FSBL exit function before the assembly code
@param HandoffAddress is handoff address for the FSBL running cpu

@param Flags is to determine whether to handoff to applicatio or
to be in wfe state

@return None
FSBL exit function before the assembly code @param HandoffAddress is handoff address for the FSBL running cpu @param Flags is to determine whether to handoff to applicatio or to be in wfe state @return None
void XFsbl_HandoffExit(u64 HandoffAddress, u32 Flags)
{
	u32 RegVal;
	RegVal = XFsbl_In32(PMU_GLOBAL_GLOB_GEN_STORAGE5);
	RegVal &= ~(XFSBL_EXEC_COMPLETED);
	RegVal |= XFSBL_EXEC_COMPLETED;
	XFsbl_Out32(PMU_GLOBAL_GLOB_GEN_STORAGE5, RegVal);
	XFsbl_Printf(DEBUG_GENERAL,"Exit from FSBL \n\r");
	XFsbl_Exit((PTRSIZE) HandoffAddress, Flags);
	return ;
}
void XFsbl_HandoffExit ( u64 HandoffAddress , u32 Flags ) { u32 RegVal ; RegVal = XFsbl_In32 ( PMU_GLOBAL_GLOB_GEN_STORAGE5 ) ; RegVal &= ~ ( XFSBL_EXEC_COMPLETED ) ; RegVal |= XFSBL_EXEC_COMPLETED ; XFsbl_Out32 ( PMU_GLOBAL_GLOB_GEN_STORAGE5 , RegVal ) ; XFsbl_Printf ( DEBUG_GENERAL , " \n \r " ) ; XFsbl_Exit ( ( PTRSIZE ) HandoffAddress , Flags ) ; return ; }
FSBL exit function before the assembly code
 @param HandoffAddress is handoff address for the FSBL running cpu
FSBL exit function before the assembly code @param HandoffAddress is handoff address for the FSBL running cpu
/*
	 * Write 1U to PMU GLOBAL general storage register 5 to indicate
	 * PMU Firmware that FSBL completed execution
	 */ /**
	 * Exit to handoff address
	 * PTRSIZE is used since handoff is in same running cpu
	 * and address is of PTRSIZE
	 */ /**
	 * should not reach here
	 */