]> Git Repo - u-boot.git/blame - arch/powerpc/lib/ticks.S
powerpc/mpc85xx:Put errata number for T104x NAND boot issue
[u-boot.git] / arch / powerpc / lib / ticks.S
CommitLineData
12e4407c
WD
1/*
2 * (C) Copyright 2000, 2001
3 * Erik Theisen, Wave 7 Optics, [email protected].
4 * base on code by
5 * Wolfgang Denk, DENX Software Engineering, [email protected].
6 *
1a459660 7 * SPDX-License-Identifier: GPL-2.0+
12e4407c
WD
8 */
9
10#include <ppc_asm.tmpl>
11#include <ppc_defs.h>
12#include <config.h>
13#include <watchdog.h>
14
15/*
16 * unsigned long long get_ticks(void);
17 *
18 * read timebase as "long long"
19 */
20 .globl get_ticks
21get_ticks:
221: mftbu r3
23 mftb r4
24 mftbu r5
25 cmp 0,r3,r5
26 bne 1b
27 blr
28
29/*
30 * Delay for a number of ticks
31 */
32 .globl wait_ticks
33wait_ticks:
83f83d19
JT
34 stwu r1, -16(r1)
35 mflr r0 /* save link register */
36 stw r0, 20(r1) /* Use r0 or GDB will be unhappy */
fac150e8
MK
37 stw r14, 12(r1) /* save used registers */
38 stw r15, 8(r1)
39 mr r14, r3 /* save tick count */
12e4407c
WD
40 bl get_ticks /* Get start time */
41
42 /* Calculate end time */
fac150e8
MK
43 addc r14, r4, r14 /* Compute end time lower */
44 addze r15, r3 /* and end time upper */
12e4407c
WD
45
46 WATCHDOG_RESET /* Trigger watchdog, if needed */
471: bl get_ticks /* Get current time */
fac150e8
MK
48 subfc r4, r4, r14 /* Subtract current time from end time */
49 subfe. r3, r3, r15
12e4407c
WD
50 bge 1b /* Loop until time expired */
51
fac150e8
MK
52 lwz r15, 8(r1) /* restore saved registers */
53 lwz r14, 12(r1)
54 lwz r0, 20(r1)
83f83d19 55 addi r1,r1,16
fac150e8 56 mtlr r0
12e4407c 57 blr
This page took 0.184184 seconds and 4 git commands to generate.