25 Jan, 2014

1 commit

  • If timer_init() is made a weak stub function, then it allows us to
    remove several empty timer_init functions for those boards that
    already have a timer initialized when u-boot starts. Architectures
    that use the timer framework may also remove the need for timer.c.

    Signed-off-by: Darwin Rambo
    Reviewed-by: Tim Kryger

    Darwin Rambo
     

13 Dec, 2013

1 commit

  • Commit 8dfafdde88eb ("Introduce common timer functions") created a
    common definition of usec_to_tick() which had a couple problems:

    static unsigned long long usec_to_tick(unsigned long usec)
    {
    uint64_t tick = usec * get_tbclk();

    That likely overflows.

    usec *= get_tbclk();

    That was an attempt to fix it by performing the multiply after the
    promotion of usec to 64-bit, but was applied to the wrong variable,
    which was never used.

    This patch fixes these issues. A user-visible symptom of the problem was
    the e.g. "dhcp zImage" using an ASIX USB Ethernet dongle would print:

    Waiting for Ethernet connection... unable to connect.

    ... with no delay before "unable to connect". There are likely other
    symptoms.

    Signed-off-by: Stephen Warren
    Acked-by: Rob Herring

    Stephen Warren
     

11 Nov, 2013

1 commit

  • Commit 8dfafdde88eb3e71d5569846396ae67a91017232 introduced
    new gcc warnings on MIPS64:

    time.c: In function 'tick_to_time':
    time.c:59:2: warning: comparison of distinct pointer types lacks a cast [enabled by default]
    time.c:59:2: warning: passing argument 1 of '__div64_32' from incompatible pointer type [enabled by default]
    In file included from time.c:10:0:
    ./u-boot-mips/include/div64.h:22:17: note: expected 'uint64_t *' but argument is of type 'long long unsigned int *'
    time.c: In function 'usec_to_tick':
    time.c:76:2: warning: comparison of distinct pointer types lacks a cast [enabled by default]
    time.c:76:2: warning: passing argument 1 of '__div64_32' from incompatible pointer type [enabled by default]
    In file included from time.c:10:0:
    ./u-boot-mips/include/div64.h:22:17: note: expected 'uint64_t *' but argument is of type 'long long unsigned int *'

    Signed-off-by: Daniel Schwierzeck

    Daniel Schwierzeck
     

09 Nov, 2013

1 commit


05 Nov, 2013

2 commits

  • Many platforms duplicate pretty much the same timer code yet they all have
    a 32-bit freerunning counter register. Create a common implementation that
    minimally requires 2 or 3 defines to add timer support:

    CONFIG_SYS_TIMER_RATE - Clock rate of the timer counter
    CONFIG_SYS_TIMER_COUNTER - Address of 32-bit counter
    CONFIG_SYS_TIMER_COUNTS_DOWN - Define if counter counts down

    All functions are weak or ifdef'ed so they can still be overriden by any
    platform.

    Signed-off-by: Rob Herring

    Rob Herring
     
  • According to the README, CONFIG_SYS_HZ must be 1000 and most platforms
    follow that. In preparation to remove CONFIG_SYS_HZ from all these
    platforms, provide a common definition. The platforms which use a value
    other than 1000 will get build warning now. These configs are:

    include/configs/M5271EVB.h:#define CONFIG_SYS_HZ 1000000
    include/configs/balloon3.h:#define CONFIG_SYS_HZ 3250000 /* Timer @ 3250000 Hz */
    include/configs/idmr.h:#define CONFIG_SYS_HZ (50000000 / 64)
    include/configs/mini2440.h:#define CONFIG_SYS_HZ 1562500
    include/configs/mx1ads.h:#define CONFIG_SYS_HZ 3686400
    include/configs/omap3_zoom2.h:#define CONFIG_SYS_HZ ((V_SCLK) / (2 << CONFIG_SYS_PTV))
    include/configs/omap730p2.h:#define CONFIG_SYS_HZ ((CONFIG_SYS_CLK_FREQ)/(2 << CONFIG_SYS_PTV))
    include/configs/palmld.h:#define CONFIG_SYS_HZ 3250000 /* Timer @ 3250000 Hz */
    include/configs/palmtc.h:#define CONFIG_SYS_HZ 3686400 /* Timer @ 3686400 Hz */
    include/configs/rsk7203.h:#define CONFIG_SYS_HZ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER)
    include/configs/rsk7264.h:#define CONFIG_SYS_HZ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER)
    include/configs/rsk7269.h:#define CONFIG_SYS_HZ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER)
    include/configs/scb9328.h:#define CONFIG_SYS_HZ 3686400 /* incrementer freq: 3.6864 MHz */
    include/configs/versatile.h:#define CONFIG_SYS_HZ (1000000 / 256)
    include/configs/zipitz2.h:#define CONFIG_SYS_HZ 3250000 /* Timer @ 3250000 Hz */

    Signed-off-by: Rob Herring

    Rob Herring
     

24 Jul, 2013

1 commit


11 Apr, 2012

1 commit

  • The standalone example does not have get_timer() defined, so we cannot
    rely on it being available.

    Move the timer function into boootstage.c to avoid this problem.

    This corrects a build breakage for the standalone example on some boards.

    Signed-off-by: Simon Glass
    Acked-by: Matthias Fuchs

    Simon Glass
     

19 Mar, 2012

1 commit

  • Define timer_get_boot_us() which returns the number of microseconds
    since boot. If undefined then we use get_timer() * 1000.

    We can fit this in a 32-bit register which keeps everyone happy on
    the efficiency side. It will wrap around after about an hour. If we
    are still looking at it after an hour then we had better not be
    timing the boot.

    Signed-off-by: Simon Glass

    Simon Glass
     

22 Oct, 2011

1 commit


13 Apr, 2010

1 commit

  • Now that the other architecture-specific lib directories have been
    moved out of the top-level directory there's not much reason to have the
    '_generic' suffix on the common lib directory.

    Signed-off-by: Peter Tyser

    Peter Tyser