[PATCH v2 5/8] timer: Allow delays with a 32-bit microsecond timer
Bin Meng
bmeng.cn at gmail.com
Tue Jul 7 09:20:37 CEST 2020
Hi Simon,
On Tue, Jul 7, 2020 at 3:09 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>
> Hi Simon,
>
> On Sat, Jul 4, 2020 at 12:38 AM Simon Glass <sjg at chromium.org> wrote:
> >
> > The current get_timer_us() uses 64-bit arithmetic. When implementing
> > microsecond-level timeouts, 32-bits is plenty. Add a new function to
> > support this.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > (no changes since v1)
> >
> > include/time.h | 11 +++++++++++
> > lib/time.c | 5 +++++
> > 2 files changed, 16 insertions(+)
> >
> > diff --git a/include/time.h b/include/time.h
> > index e99f9c8012..434e63b075 100644
> > --- a/include/time.h
> > +++ b/include/time.h
> > @@ -17,6 +17,17 @@ unsigned long get_timer(unsigned long base);
> > unsigned long timer_get_us(void);
> > uint64_t get_timer_us(uint64_t base);
> >
> > +/**
> > + * get_timer_us_long() - Get the number of elapsed microseconds
> > + *
> > + * This uses 32-bit arithmetic on 32-bit machines, which is enough to handle
> > + * delays of over an hour.
> > + *
> > + *@base: Base time to consider
> > + *@return elapsed time since @base
> > + */
> > +unsigned long get_timer_us_long(unsigned long base);
>
> The function name does not clear indicates this is 32-bit value
> because unsigned long is still 64-bit when building for 64-bit U-Boot.
>
> > +
> > /*
> > * timer_test_add_offset()
> > *
> > diff --git a/lib/time.c b/lib/time.c
> > index 65db0f6cda..47f8c84327 100644
> > --- a/lib/time.c
> > +++ b/lib/time.c
> > @@ -152,6 +152,11 @@ uint64_t __weak get_timer_us(uint64_t base)
> > return tick_to_time_us(get_ticks()) - base;
> > }
> >
> > +unsigned long __weak get_timer_us_long(unsigned long base)
> > +{
> > + return timer_get_us() - base;
> > +}
> > +
> > unsigned long __weak notrace timer_get_us(void)
> > {
> > return tick_to_time(get_ticks() * 1000);
> > --
I've applied the first 4 patches in this series to u-boot-x86.
Regards,
Bin
More information about the U-Boot
mailing list