/************************************************************************* ** Broadcom Corp. Confidential ** Copyright 2013 Broadcom Corp. All Rights Reserved. ** ** THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE ** AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR ** EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. ** ** File: shmoosupport.S ** Description: functions for memsysinit_lib support ** Created: alexp ** ** REVISION: ** ***************************************************************************/ #include "bmips.h" #include "bchp.h" #include "bchp_common.h" #include "bchp_timer.h" LEAF(IsSystemPllSetup) li v0, 0x1 jr ra nop END(IsSystemPllSetup) LEAF(check_S3_warm_boot) li v0, 0x0 jr ra nop END(check_S3_warm_boot) /****************************************************************************** * Function: sleep * Arguments: sleep time in a0 * * Description: * * pseudo code: * ******************************************************************************/ LEAF(sleep) li t3, REG_ADDR(BCHP_TIMER_TIMER_IS) /* TIMER_TIMER_IS.TMR0TO = 1 => clears this bit, resets timer count; writing '0' (to other bits) has no effect */ li t1, BCHP_TIMER_TIMER_IS_TMR0TO_MASK sw t1, 0(t3) li t0, REG_ADDR(BCHP_TIMER_TIMER0_CTRL) /* TIMER_TIMER0_CTRL.MODE = 1 => count down mode */ /* TIMER_TIMER0_CTRL.ENA = 1 => start counting */ li t1, (BCHP_TIMER_TIMER0_CTRL_MODE_MASK | BCHP_TIMER_TIMER0_CTRL_ENA_MASK) or t1, t1, a0 /* TIMER_TIMER0_CTRL.TIMEOUT_VAL = a0 */ sw t1, 0(t0) li t2, BCHP_TIMER_TIMER_IS_TMR0TO_MASK 1: lw t1, 0(t3) and t1, t1, t2 beq zero, t1, 1b nop /* TIMER_TIMER0_CTRL.ENA = 0 => stop counting */ sw zero, 0(t0) sw zero, 0(t0) jr ra nop END (sleep)