Received: by 10.192.165.148 with SMTP id m20csp4877013imm; Tue, 1 May 2018 05:34:10 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpFlCEJo/dXV4/DfqEvc1Sgb3OUJ/rUq9AAscSErh+EqCOSoPay4y7ZO3to394iy7q6WuwW X-Received: by 2002:a63:b144:: with SMTP id g4-v6mr12861148pgp.253.1525178050890; Tue, 01 May 2018 05:34:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525178050; cv=none; d=google.com; s=arc-20160816; b=lVCIQ/it/gILPSJd/HW8j+w/QZCYfzc5EkBk4x7S5ZZEUPpNP9EFPt6HQYCLLE3vB8 epC3HLMP1fDpnrfWQL/n+9aelJHlf9vE3wyQ8sfFWHTTU+6Lj17U1MNWMcaq7AncmAnY 7VkJdOHAT8NN3NGAvMErT3pEKy69gY/alnPYS54uUAEAXI5hcWrOqXMj+uQJg3FobdLv U4yHubGYbLRt59Rq8/UUC3RJ1ewGECvbxxz6xHL1fLQBQCxCuR8+iya6OZtx7rK/nqrP Ll23Uud8vpwGypyyqOYtS7Kh3iYQww5R5Zp8xL4LmyQhF9MpqQ3PdyDlKIDLLhVFJsyS zc5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=zJ64iwchCkGLNxhB7YuypA59EA6bkkIBlTdFn1tijMc=; b=HxmiCOGu20w4rk5wOs9CcgaJg5IOFTWXh3YkEFGX0NA10CmI5TOxfznmIAadj9nidO 033ZdvXUAyUssK9YcUa3BZpEHTnvSU7/uc7iNMAcpJ/ow1VZQJZ0YOBENpV9qlFwzbyR RmZf+JhdtEwpwNp5W40xmJp1XYWZ0p5p+v/YBfzcoVwWnqh6q9969xXLfXQfNQXOzzBD z7omx9rseBm3NGonZgKdZu4naOx1/oz41Arb3ELS6VILqoSvrgRHtcp50P17lufrxLoe P/h/7kuSEZ98xvsdRgAFgUb/3YBOBLt+vFw73Tlm/8UY6SX6F3F7U04005Rn4YcyrOrj JbYQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r3-v6si9472001plb.336.2018.05.01.05.33.56; Tue, 01 May 2018 05:34:10 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755642AbeEAMca (ORCPT + 99 others); Tue, 1 May 2018 08:32:30 -0400 Received: from mail.bootlin.com ([62.4.15.54]:46103 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755566AbeEAMc2 (ORCPT ); Tue, 1 May 2018 08:32:28 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id 6356020A36; Tue, 1 May 2018 14:32:26 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from dell-desktop.home (176-137-37-244.abo.bbox.fr [176.137.37.244]) by mail.bootlin.com (Postfix) with ESMTPSA id 7A714208B3; Tue, 1 May 2018 14:32:25 +0200 (CEST) From: =?UTF-8?q?Myl=C3=A8ne=20Josserand?= To: linux@armlinux.org.uk, 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 Cc: 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, mylene.josserand@bootlin.com Subject: [PATCH v8 07/12] ARM: sunxi: Add initialization of CNTVOFF Date: Tue, 1 May 2018 14:31:26 +0200 Message-Id: <20180501123131.7738-8-mylene.josserand@bootlin.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180501123131.7738-1-mylene.josserand@bootlin.com> References: <20180501123131.7738-1-mylene.josserand@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add the initialization of CNTVOFF for sun8i-a83t. For boot CPU, create a new machine that handles this function's call in an "init_early" callback. We need to initialize CNTVOFF before the arch timer's initialization otherwise, it will not be taken into account and fails to boot correctly. Because of that, this function can't be called in SMP's early_initcall function which is called after timer's init. For secondary CPUs, add this function into secondary_startup assembly entry. Signed-off-by: Mylène Josserand Acked-by: Maxime Ripard --- arch/arm/mach-sunxi/headsmp.S | 1 + arch/arm/mach-sunxi/sunxi.c | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-sunxi/headsmp.S b/arch/arm/mach-sunxi/headsmp.S index 37dc772701f3..32d76be98541 100644 --- a/arch/arm/mach-sunxi/headsmp.S +++ b/arch/arm/mach-sunxi/headsmp.S @@ -71,6 +71,7 @@ ENDPROC(sunxi_mc_smp_cluster_cache_enable) ENTRY(sunxi_mc_smp_secondary_startup) bl sunxi_mc_smp_cluster_cache_enable + bl secure_cntvoff_init b secondary_startup ENDPROC(sunxi_mc_smp_secondary_startup) diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 5e9602ce1573..2770a31a9278 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c @@ -16,6 +16,7 @@ #include #include +#include static const char * const sunxi_board_dt_compat[] = { "allwinner,sun4i-a10", @@ -62,7 +63,6 @@ MACHINE_END static const char * const sun8i_board_dt_compat[] = { "allwinner,sun8i-a23", "allwinner,sun8i-a33", - "allwinner,sun8i-a83t", "allwinner,sun8i-h2-plus", "allwinner,sun8i-h3", "allwinner,sun8i-r40", @@ -75,6 +75,24 @@ DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i Family") .dt_compat = sun8i_board_dt_compat, MACHINE_END +void __init sun8i_a83t_cntvoff_init(void) +{ +#ifdef CONFIG_SMP + secure_cntvoff_init(); +#endif +} + +static const char * const sun8i_a83t_cntvoff_board_dt_compat[] = { + "allwinner,sun8i-a83t", + NULL, +}; + +DT_MACHINE_START(SUN8I_CNTVOFF_DT, "Allwinner sun8i-a83t board") + .init_early = sun8i_a83t_cntvoff_init, + .init_time = sun6i_timer_init, + .dt_compat = sun8i_a83t_cntvoff_board_dt_compat, +MACHINE_END + static const char * const sun9i_board_dt_compat[] = { "allwinner,sun9i-a80", NULL, -- 2.11.0