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; > >

