| 1 | /************************************************************************* |
|---|
| 2 | ** Broadcom Corp. Confidential |
|---|
| 3 | ** Copyright 2013 Broadcom Corp. All Rights Reserved. |
|---|
| 4 | ** |
|---|
| 5 | ** THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 6 | ** AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 7 | ** EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 8 | ** |
|---|
| 9 | ** File: shmoosupport.S |
|---|
| 10 | ** Description: functions for memsysinit_lib support |
|---|
| 11 | ** Created: alexp |
|---|
| 12 | ** |
|---|
| 13 | ** REVISION: |
|---|
| 14 | ** |
|---|
| 15 | ***************************************************************************/ |
|---|
| 16 | |
|---|
| 17 | #include "bmips.h" |
|---|
| 18 | #include "bchp.h" |
|---|
| 19 | #include "bchp_common.h" |
|---|
| 20 | #include "bchp_timer.h" |
|---|
| 21 | |
|---|
| 22 | LEAF(IsSystemPllSetup) |
|---|
| 23 | li v0, 0x1 |
|---|
| 24 | jr ra |
|---|
| 25 | nop |
|---|
| 26 | END(IsSystemPllSetup) |
|---|
| 27 | |
|---|
| 28 | LEAF(check_S3_warm_boot) |
|---|
| 29 | li v0, 0x0 |
|---|
| 30 | jr ra |
|---|
| 31 | nop |
|---|
| 32 | END(check_S3_warm_boot) |
|---|
| 33 | |
|---|
| 34 | /****************************************************************************** |
|---|
| 35 | * Function: sleep |
|---|
| 36 | * Arguments: sleep time in a0 |
|---|
| 37 | * |
|---|
| 38 | * Description: |
|---|
| 39 | * |
|---|
| 40 | * pseudo code: |
|---|
| 41 | * |
|---|
| 42 | ******************************************************************************/ |
|---|
| 43 | LEAF(sleep) |
|---|
| 44 | li t3, REG_ADDR(BCHP_TIMER_TIMER_IS) |
|---|
| 45 | /* TIMER_TIMER_IS.TMR0TO = 1 => clears this bit, resets timer count; writing '0' (to other bits) has no effect */ |
|---|
| 46 | li t1, BCHP_TIMER_TIMER_IS_TMR0TO_MASK |
|---|
| 47 | sw t1, 0(t3) |
|---|
| 48 | |
|---|
| 49 | li t0, REG_ADDR(BCHP_TIMER_TIMER0_CTRL) |
|---|
| 50 | /* TIMER_TIMER0_CTRL.MODE = 1 => count down mode */ |
|---|
| 51 | /* TIMER_TIMER0_CTRL.ENA = 1 => start counting */ |
|---|
| 52 | li t1, (BCHP_TIMER_TIMER0_CTRL_MODE_MASK | BCHP_TIMER_TIMER0_CTRL_ENA_MASK) |
|---|
| 53 | or t1, t1, a0 /* TIMER_TIMER0_CTRL.TIMEOUT_VAL = a0 */ |
|---|
| 54 | sw t1, 0(t0) |
|---|
| 55 | |
|---|
| 56 | li t2, BCHP_TIMER_TIMER_IS_TMR0TO_MASK |
|---|
| 57 | 1: lw t1, 0(t3) |
|---|
| 58 | and t1, t1, t2 |
|---|
| 59 | beq zero, t1, 1b |
|---|
| 60 | nop |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | /* TIMER_TIMER0_CTRL.ENA = 0 => stop counting */ |
|---|
| 64 | sw zero, 0(t0) |
|---|
| 65 | sw zero, 0(t0) |
|---|
| 66 | |
|---|
| 67 | jr ra |
|---|
| 68 | nop |
|---|
| 69 | END (sleep) |
|---|