Received: by 10.192.165.148 with SMTP id m20csp4152607imm; Tue, 8 May 2018 03:59:36 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq7Nujg1uoeVG5pfM+HUZw5lCZQExjXaG9B1UTOv5Ygd/YEjLtL6X3N8zfKnOF+YWh3+f/u X-Received: by 2002:a17:902:8f8b:: with SMTP id z11-v6mr37162807plo.203.1525777176501; Tue, 08 May 2018 03:59:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525777176; cv=none; d=google.com; s=arc-20160816; b=eZDJnYizKiUVZqeYlWkojt6ScYhtWHbR8uEDLhtkNAQWEDcLVcN7dg8UGVZg4PWNbN RlHsWhLuapC27G8vsIpEvVFPC4CJlbqk3aDwU8CgJHS+iXtjX3CAuEP+peeAByxTwbAR g3yku4Hc5han9E0BeiIglZyU/AHAd+XJ7fWYtHOGpkZTT/2W8++0RRUmfkqZJcP4AI4g a35BLbb6bV5OZBvLsQWtbNQupD5YvMdht3bUA/o3IUgahXIk4ri8VOcRwoat0+NdvUZ2 twbu7ny07XLOtUC0U46+csa8NfWipMq2Xz3so6sbDsrqVAuLgHa6XTTocsFBhmVQLHiU A6nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=oSuVkZNUJNxrKzPa+gxvH7zyvhDt0SXUiNpdHX7B2V8=; b=esu1fOy2igIrvCeiewCHEh07sWbDrPsUGlq8+8gVP+heQDLHKmvwRmB3YWHGveKspm etLXACwM+lWLR6Fmu+rBWIW06QikNM8pOnLGKE15pxVDhJRVgmuaXgtCN7VJpuJCRIrg Z4MXw0YPx4aJ0LTlsUtix2qhS9mZfNeAuMAaigWY/JTayq60RSe0lg6VFCB3L/jhk01A q011nOaH9TnjxIGhsq6rX1GFAZoSTaGuU+DLIx0ZHFG64S9SGwpoRumidcWVdPF4LSxn +7M9J7pVBwXt0hlgiqbn+p95CGnaBylShztkEHPeXkLAW/OHiFhJGzQsaGoHp10OM2bV EKPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@armlinux.org.uk header.s=pandora-2014 header.b=msLih/Mc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y67-v6si19161553pgb.35.2018.05.08.03.59.21; Tue, 08 May 2018 03:59:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@armlinux.org.uk header.s=pandora-2014 header.b=msLih/Mc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752228AbeEHK55 (ORCPT + 99 others); Tue, 8 May 2018 06:57:57 -0400 Received: from pandora.armlinux.org.uk ([78.32.30.218]:50976 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750716AbeEHK5z (ORCPT ); Tue, 8 May 2018 06:57:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2014; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=oSuVkZNUJNxrKzPa+gxvH7zyvhDt0SXUiNpdHX7B2V8=; b=msLih/Mc6B3gMDXLpjtJyDAfD yHGIhwIbst+4MUrY8BXy5FLBiJfGCDSGhxMUEW2z3O8dCCA5M6OGjoZTCirT2UQKMsT5RrF5AiM3K O4ND+ROsOrVMF3NUHG8U/v2cGB0bQcvGiilIfVMzaWrK5yQc1H8RXxdEDOnzILzqlberU=; Received: from n2100.armlinux.org.uk ([2001:4d48:ad52:3201:214:fdff:fe10:4f86]:44818) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.90_1) (envelope-from ) id 1fG0JN-0006Nv-6U; Tue, 08 May 2018 11:57:37 +0100 Received: from linux by n2100.armlinux.org.uk with local (Exim 4.90_1) (envelope-from ) id 1fG0JJ-0006Ev-Ft; Tue, 08 May 2018 11:57:33 +0100 Date: Tue, 8 May 2018 11:57:32 +0100 From: Russell King - ARM Linux To: =?iso-8859-1?Q?Myl=E8ne?= Josserand Cc: maxime.ripard@bootlin.com, wens@csie.org, marc.zyngier@arm.com, mark.rutland@arm.com, robh+dt@kernel.org, horms@verge.net.au, geert@linux-m68k.org, magnus.damm@gmail.com, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, clabbe.montjoie@gmail.com, quentin.schulz@bootlin.com, thomas.petazzoni@bootlin.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v7 05/11] ARM: smp: Add initialization of CNTVOFF Message-ID: <20180508105732.GZ16141@n2100.armlinux.org.uk> References: <20180420211022.11759-1-mylene.josserand@bootlin.com> <20180420211022.11759-6-mylene.josserand@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180420211022.11759-6-mylene.josserand@bootlin.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 20, 2018 at 11:10:16PM +0200, Myl?ne Josserand wrote: > The CNTVOFF register from arch timer is uninitialized. > It should be done by the bootloader but it is currently not the case, > even for boot CPU because this SoC is booting in secure mode. > It leads to an random offset value meaning that each CPU will have a > different time, which isn't working very well. > > Add assembly code used for boot CPU and secondary CPU cores to make > sure that the CNTVOFF register is initialized. Because this code can > be used by different platforms, add this assembly file in ARM's common > folder. > > Signed-off-by: Myl?ne Josserand > Reviewed-by: Geert Uytterhoeven > Tested-by: Geert Uytterhoeven > --- > arch/arm/common/Makefile | 1 + > arch/arm/common/secure_cntvoff.S | 31 +++++++++++++++++++++++++++++++ > arch/arm/include/asm/secure_cntvoff.h | 8 ++++++++ > 3 files changed, 40 insertions(+) > create mode 100644 arch/arm/common/secure_cntvoff.S > create mode 100644 arch/arm/include/asm/secure_cntvoff.h > > diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile > index 70b4a14ed993..1e9f7af8f70f 100644 > --- a/arch/arm/common/Makefile > +++ b/arch/arm/common/Makefile > @@ -10,6 +10,7 @@ obj-$(CONFIG_DMABOUNCE) += dmabounce.o > obj-$(CONFIG_SHARP_LOCOMO) += locomo.o > obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o > obj-$(CONFIG_SHARP_SCOOP) += scoop.o > +obj-$(CONFIG_SMP) += secure_cntvoff.o > obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o > obj-$(CONFIG_MCPM) += mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o > CFLAGS_REMOVE_mcpm_entry.o = -pg > diff --git a/arch/arm/common/secure_cntvoff.S b/arch/arm/common/secure_cntvoff.S > new file mode 100644 > index 000000000000..68a4a8344319 > --- /dev/null > +++ b/arch/arm/common/secure_cntvoff.S > @@ -0,0 +1,31 @@ > +/* SPDX-License-Identifier: GPL-2.0 For assembly files, the SPDX specifier is of this format: /* SPDX-License-Identifier: */ Please see Documentation/process/license-rules.rst for more information, and fix your specifier to conform to the requirements. Thanks. > + * > + * Copyright (C) 2014 Renesas Electronics Corporation > + * > + * Initialization of CNTVOFF register from secure mode > + * > + */ > + > +#include > +#include > + > +ENTRY(secure_cntvoff_init) > + .arch armv7-a > + /* > + * CNTVOFF has to be initialized either from non-secure Hypervisor > + * mode or secure Monitor mode with SCR.NS==1. If TrustZone is enabled > + * then it should be handled by the secure code This should also state that this code must not be executed if virtualisation extensions are not present (which should be obvious) as the mcrr instruction becomes unpredictable in that case. > + */ > + cps #MON_MODE > + mrc p15, 0, r1, c1, c1, 0 /* Get Secure Config */ > + orr r0, r1, #1 > + mcr p15, 0, r0, c1, c1, 0 /* Set Non Secure bit */ > + isb > + mov r0, #0 > + mcrr p15, 4, r0, r0, c14 /* CNTVOFF = 0 */ > + isb > + mcr p15, 0, r1, c1, c1, 0 /* Set Secure bit */ > + isb > + cps #SVC_MODE > + ret lr > +ENDPROC(secure_cntvoff_init) > diff --git a/arch/arm/include/asm/secure_cntvoff.h b/arch/arm/include/asm/secure_cntvoff.h > new file mode 100644 > index 000000000000..1f93aee1f630 > --- /dev/null > +++ b/arch/arm/include/asm/secure_cntvoff.h > @@ -0,0 +1,8 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ This one conforms. > + > +#ifndef __ASMARM_ARCH_CNTVOFF_H > +#define __ASMARM_ARCH_CNTVOFF_H > + > +extern void secure_cntvoff_init(void); > + > +#endif > -- > 2.11.0 > -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up According to speedtest.net: 8.21Mbps down 510kbps up