On Thu, 27 Jan 2022 15:40:13 -0500
Jesse Taube <[email protected]> wrote:

Hi,

> On 1/27/22 05:21, Andre Przywara wrote:
> > On Wed, 26 Jan 2022 08:53:19 -0500
> > Jesse Taube <[email protected]> wrote:
> >   
> >> Both armv7 and arm926ejs use this timer code so move it to mach-sunxi.  
> > 
> > Very nice, thanks for cleaning this up.
> > 
> > But please remove the respective line from the Makefile in
> > arch/arm/cpu/armv7/sunxi/, otherwise 32-bit board builds fail:
> > make[2]: *** No rule to make target 'arch/arm/cpu/armv7/sunxi/timer.o' ...  
> Oh my I'm very sorry about this. There is one thing though 
> arch/arm/cpu/armv7/sunxi/ needs to have one .o file in there to compile.
> If I remove `ifdef CONFIG_SPL_BUILD` for fel_utils it will work but its 
> not used in u-boot proper.

Mmh, not sure I follow, I cannot reproduce any problem. Can you
elaborate? And did you do a "make clean" afterwards?

Cheers,
Andre


> > Cheers,
> > Andre
> >   
> >> Signed-off-by: Jesse Taube <[email protected]>
> >> ---
> >> V1->V2:
> >> * New commit
> >> ---
> >>   arch/arm/mach-sunxi/Makefile                     | 3 +++
> >>   arch/arm/{cpu/armv7/sunxi => mach-sunxi}/timer.c | 7 ++++---
> >>   2 files changed, 7 insertions(+), 3 deletions(-)
> >>   rename arch/arm/{cpu/armv7/sunxi => mach-sunxi}/timer.c (97%)
> >>
> >> diff --git a/arch/arm/mach-sunxi/Makefile b/arch/arm/mach-sunxi/Makefile
> >> index 5d3fd70f74..b1adb75e17 100644
> >> --- a/arch/arm/mach-sunxi/Makefile
> >> +++ b/arch/arm/mach-sunxi/Makefile
> >> @@ -25,6 +25,9 @@ obj-$(CONFIG_MACH_SUN8I) += clock_sun6i.o
> >>   endif
> >>   obj-$(CONFIG_MACH_SUN9I) += clock_sun9i.o gtbus_sun9i.o
> >>   obj-$(CONFIG_SUN50I_GEN_H6)      += clock_sun50i_h6.o
> >> +ifndef CONFIG_ARM64
> >> +obj-y     += timer.o
> >> +endif
> >>   
> >>   ifdef CONFIG_SPL_BUILD
> >>   obj-$(CONFIG_DRAM_SUN4I) += dram_sun4i.o
> >> diff --git a/arch/arm/cpu/armv7/sunxi/timer.c b/arch/arm/mach-sunxi/timer.c
> >> similarity index 97%
> >> rename from arch/arm/cpu/armv7/sunxi/timer.c
> >> rename to arch/arm/mach-sunxi/timer.c
> >> index b758599636..fc9d419a25 100644
> >> --- a/arch/arm/cpu/armv7/sunxi/timer.c
> >> +++ b/arch/arm/mach-sunxi/timer.c
> >> @@ -51,6 +51,7 @@ int timer_init(void)
> >>    struct sunxi_timer_reg *timers =
> >>            (struct sunxi_timer_reg *)SUNXI_TIMER_BASE;
> >>    struct sunxi_timer *timer = &timers->timer[TIMER_NUM];
> >> +
> >>    writel(TIMER_LOAD_VAL, &timer->inter);
> >>    writel(TIMER_MODE | TIMER_DIV | TIMER_SRC | TIMER_RELOAD | TIMER_EN,
> >>           &timer->ctl);
> >> @@ -58,15 +59,14 @@ int timer_init(void)
> >>    return 0;
> >>   }
> >>   
> >> -/* timer without interrupts */
> >>   static ulong get_timer_masked(void)
> >>   {
> >>    /* current tick value */
> >>    ulong now = TICKS_TO_HZ(read_timer());
> >>   
> >> -  if (now >= gd->arch.lastinc)    /* normal (non rollover) */
> >> +  if (now >= gd->arch.lastinc) {  /* normal (non rollover) */
> >>            gd->arch.tbl += (now - gd->arch.lastinc);
> >> -  else {
> >> +  } else {
> >>            /* rollover */
> >>            gd->arch.tbl += (TICKS_TO_HZ(TIMER_LOAD_VAL)
> >>                            - gd->arch.lastinc) + now;
> >> @@ -76,6 +76,7 @@ static ulong get_timer_masked(void)
> >>    return gd->arch.tbl;
> >>   }
> >>   
> >> +/* timer without interrupts */
> >>   ulong get_timer(ulong base)
> >>   {
> >>    return get_timer_masked() - base;  
> >   

Reply via email to