From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 09A70C433F5 for ; Fri, 28 Jan 2022 14:28:18 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B1AC881F0B; Fri, 28 Jan 2022 15:28:16 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 52CA681B53; Fri, 28 Jan 2022 15:28:15 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by phobos.denx.de (Postfix) with ESMTP id B405281B53 for ; Fri, 28 Jan 2022 15:28:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=andre.przywara@arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F01B112FC; Fri, 28 Jan 2022 06:28:09 -0800 (PST) Received: from donnerap.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BADF93F793; Fri, 28 Jan 2022 06:28:07 -0800 (PST) Date: Fri, 28 Jan 2022 14:28:03 +0000 From: Andre Przywara To: Jesse Taube Cc: samuel@sholland.org, u-boot@lists.denx.de, jagan@amarulasolutions.com, hdegoede@redhat.com, sjg@chromium.org, icenowy@aosc.io, marek.behun@nic.cz, festevam@denx.de, narmstrong@baylibre.com, tharvey@gateworks.com, christianshewitt@gmail.com, pbrobinson@gmail.com, jernej.skrabec@gmail.com, hs@denx.de, arnaud.ferraris@gmail.com, giulio.benetti@benettiengineering.com, thirtythreeforty@gmail.com Subject: Re: [PATCH v2 02/12] mach-sunxi: Move timer code to mach folder Message-ID: <20220128142803.2d8369eb@donnerap.cambridge.arm.com> In-Reply-To: References: <20220126135329.2997430-1-Mr.Bossman075@gmail.com> <20220126135329.2997430-3-Mr.Bossman075@gmail.com> <20220127102114.13263dc4@donnerap.cambridge.arm.com> <81d96db1-52e1-c7c4-3b00-1a9affa474dd@gmail.com> <20220128004137.470fc71a@slackpad.fritz.box> Organization: ARM X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; aarch64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On Thu, 27 Jan 2022 23:51:09 -0500 Jesse Taube wrote: Hi Jesse, > On 1/27/22 19:41, Andre Przywara wrote: > > On Thu, 27 Jan 2022 15:40:13 -0500 > > Jesse Taube wrote: > > > > Hi, > > > >> On 1/27/22 05:21, Andre Przywara wrote: > >>> On Wed, 26 Jan 2022 08:53:19 -0500 > >>> Jesse Taube 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? > If nothing is built by that MAKEFILE which would happen if > !(CONFIG_MACH_SUN6I || CONFIG_MACH_SUN8I_H3 > CONFIG_MACH_SUN8I || CONFIG_ARMV7_PSCI) it will error with the following > `ar: arch/arm/cpu/armv7/sunxi/built-in.o: No such file or directory` How did you trigger this? I built all 159 (+1 F1C100s) sunxi defconfigs without errors. What toolchain are you using? I see that for instance Cubieboard_defconfig comes out empty for U-Boot proper, but this does not seem to be a problem for my "arm-linux-gnueabihf-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0" and "GNU ld (GNU Binutils for Ubuntu) 2.34". I see an 8 byte sized built-in.o, and no other .o files in the directory. > I don't know if there is a config that will break it currently but it is > possible. So we will have to let it generate some .o file. Even if it is > optimized out. > > Should I still wait for your review of V2? I will check the rest of the patches today, but there are only minor things. > Also thank you so much for being interested in this! Yeah, I decided to bite the bullet and join Allwinner's race to the bottom ;-) After all, a mainline Linux capable device in the size of an SD card has something to it, even when it's missing half of the bits ;-) I ordered a LicheePi Nano, but not sure if that makes it out before Chinese New Year still. > Have my patches been okay so far? They look good so far, yes. > I really hope this gets in before cleanup of sunxi starts as rebasing it > was already difficult. Pretty sure of that. Cheers, Andre > > Thank you, > Jesse Taube > > Cheers, > > Andre > > > > > >>> Cheers, > >>> Andre > >>> > >>>> Signed-off-by: Jesse Taube > >>>> --- > >>>> 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; > >>> > >