From patchwork Fri Aug 4 20:03:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Gagniuc X-Patchwork-Id: 797988 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="st+mBQ/E"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=adaptrum.onmicrosoft.com header.i=@adaptrum.onmicrosoft.com header.b="ab52vRy6"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xPHvN4sSnz9s8P for ; Sat, 5 Aug 2017 06:04:32 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BPOK0nbeC0dMqaavAvQEpyUjwlNR+552SJaLDBStrzo=; b=st+mBQ/EdcEpa6 CDJcgSBGISH/Bzbj+ySq4Ck/ksRLo4uCKDEqCpWFhjZ9XWfFiNohpehd6DX4KYZFlwMilHjX/WFq/ sBejNcUiD2l2ZoKfmo2d5thXNKRh8pawBtB5S0KwHyN3BKq/3rKYTmGydWCnRHIiLZczmky3Cas2/ nQcA1hDxPu2LS5usA0kiEPitjoKRcEkmnfBppkO7DCQr7YULSEBmGuZaf6gLlz1nzmeZp7TlOrIwj iCz0cvMj08Qw8juOrtGKPfaGutrblLGBqVZLWs43Mwy6e3tTe6SW9bZGw8UaWKqM1M1L5ZfNaAl4l dGJYDgn/YRHrzZtFqueQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1ddipj-0004H9-9H; Fri, 04 Aug 2017 20:04:31 +0000 Received: from mail-by2nam01on0071.outbound.protection.outlook.com ([104.47.34.71] helo=NAM01-BY2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1ddipf-0004Fc-Jw for linux-snps-arc@lists.infradead.org; Fri, 04 Aug 2017 20:04:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adaptrum.onmicrosoft.com; s=selector1-adaptrum-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CzjR0CZ5jd1OCtWU97rVMj+nzfxb2mpAe+G56MvXCEk=; b=ab52vRy6qUa5ENO/79QGzSZWwZ/1s4RuBHCIX2QQ150MgqE6H9l7aFRWDtXardUJ+tZe2jge25i2AXZNZRFwQRe8fJfsLn3jYKJm7+QoBbBi/LdWI1SRHPjtt38kzjmIvJfSUfLX9tyA296njQOx23nz+Kkyxyim/KT1qdfCSzk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=alex.g@adaptrum.com; Received: from dev2.lan (198.0.218.81) by CY4PR04MB0838.namprd04.prod.outlook.com (10.172.138.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Fri, 4 Aug 2017 20:04:02 +0000 From: Alexandru Gagniuc To: vgupta@synopsys.com Subject: [PATCH v2 1/2] ARC: [plat-anarion] Add early boot workarounds for Anarion SOC Date: Fri, 4 Aug 2017 13:03:52 -0700 Message-Id: <20170804200353.15653-1-alex.g@adaptrum.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170728220707.13960-3-alex.g@adaptrum.com> References: <20170728220707.13960-3-alex.g@adaptrum.com> MIME-Version: 1.0 X-Originating-IP: [198.0.218.81] X-ClientProxiedBy: DM5PR21CA0007.namprd21.prod.outlook.com (10.173.176.145) To CY4PR04MB0838.namprd04.prod.outlook.com (10.172.138.15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8bfb1f5-bd6d-491f-9814-08d4db73f471 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(2017082002075)(300000503095)(300135400095)(201703131423075)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR04MB0838; X-Microsoft-Exchange-Diagnostics: 1; CY4PR04MB0838; 3:XVmbT5ITEg+8EKOWMLR1wLthU1N8JFx4CJhlBgw4QZZ0NS8Pu1M+agkN0S8JWALVomOd2Zjg18Seexe+xgwUtjhcLJFJ2GuDk1LKgM3ULuV8Aaeqz0nDtPVSTI/yRFlJisEzxhTXNnb55pfWHd2MrruMZVLcQLtpm05XruJY4o6y38UviYhl48lcYSkgmfmW/B9qrmoP2D9IV2gJgY3Xi0rTR+IiHsU2TLSzNrIUsgA+QnuRoYB8ursXuUSexdPt; 25:/MzzKpWIAjC34pr+NdTKC5oBczteWsWOvVQY7UeFdNikiHKXRyNTN8FEgRSt37qxgGjkXvTj+/mJtAQATz6s+dSbyCYwhXgtsvOpT9+AEvOg+5s4IREjLGqggr3UZ5/bVivbjQnR2xEei79kkcKC1myzr12Iszc013LnUuCCoyy0QY80eH1o2AI0KpNHhyTo9H+ObSV0r7cGM0x0BSxRcv2P2zM0zUuO5IvImHu55origE6nYaDJb/YVQ2R5q2mfxj85BWkQXjQhB2PsZjgo8ftaJf/Fm6fCRBIPFDD+yjAhOptgspdf5xVry1/XF2BU5Bnov4nKVvFsm7tkfyxKQA==; 31:DoCbpGUfW/ZAc/1UAyRQB0k7LgkLEo5v1iSPRxhlubrht3Lbl17Ldz3v/AEghJCjCNotgRSow0bzH05odlX/l4zWdXyb3BYPdNpgljH0QnIynTyutuvkUQp4+0EIrQi7vh9NZE45XPKarLes+P1Oc2jZ0lcgLsaQCW22qvom/ZAbodOwJxJ38QN3zRyHAobOqu1FBcxIrIWSTkCQbUXZvaoVLGjoNalJy9EwRzRZtQs= X-MS-TrafficTypeDiagnostic: CY4PR04MB0838: X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(2016111802025)(20161123562025)(20161123555025)(20161123564025)(20161123558100)(20161123560025)(6043046)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR04MB0838; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR04MB0838; X-Microsoft-Exchange-Diagnostics: 1; CY4PR04MB0838; 4:JtAh8+a0v4e0BHlB21+9qVek7emYnRIFY/Przc0kb9RkatRN1w97rUlyKij+OAuiCmnU6XBrL0VzKTZBwON1MniZ0sYOSZDttURl4A7gPusOfy2aochmjpKg3uQLkM+AhIyYYsT7e27ymcMWtgAvQHZYoVwirgcTGOnnXB6cFSkPh8+/IiUJWyYGiRDNI0YOcOM8GUNk+IzaOETzz3Q81RsFK9u3nbJ8J/NCNDwAgcNWp0HTmdsw/BzJpsL8CB+2 X-Forefront-PRVS: 0389EDA07F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39410400002)(39450400003)(39830400002)(39400400002)(189002)(199003)(478600001)(68736007)(50466002)(48376002)(97736004)(7350300001)(189998001)(25786009)(33646002)(53936002)(66066001)(6506006)(6116002)(2361001)(47776003)(5660300001)(4326008)(3846002)(2351001)(1076002)(6512007)(69596002)(110136004)(305945005)(107886003)(7736002)(50986999)(38730400002)(6666003)(36756003)(106356001)(76176999)(5003940100001)(50226002)(8676002)(21086003)(81156014)(81166006)(2906002)(42186005)(105586002)(101416001)(575784001)(6486002)(6916009)(2950100002)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR04MB0838; H:dev2.lan; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: adaptrum.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR04MB0838; 23:r+bMkPl9jYcE8ZGVuidNbAtNbU1Pa4kTQuae5BCJJ?= =?us-ascii?Q?Gkwv1RP7joXIovWWYNnO73sBlc0z6DOLzPDR86rupZPWrC77rO4GuEyNNjVf?= =?us-ascii?Q?WbPoXALbj569Gg66yGNooCdKvkGwyFYN+FOE3ty2lb+ezhiX6jgXKaN/Z70A?= =?us-ascii?Q?Rs/W3GqFAlHkqHVbwpVOEryj2Mqz8t9peKuBMGiizpajLFnMm9sgPIelqjWA?= =?us-ascii?Q?d1O3ia6K+KtJaDT3r3s/PWxuGzoVnDB5I2KLc6k2MfhE7RvuM3GzFMgPs4GS?= =?us-ascii?Q?W5i67tuC3SkC1fC+bUlJAvkESZUnL2wwT2vcqRvNkne9r1kidn430Ok9AE2S?= =?us-ascii?Q?ihwvG2jLMMHJ3ZccT1/sccFl3Rkcxeku3fCysWv4AQjXMoYVg1odKclIoZq5?= =?us-ascii?Q?bsp5nvOP52ZJIB3BFbs+i/NMX2Dey1mA9P9wx1OOrZY95U7gKGx3kowqQcAC?= =?us-ascii?Q?66+7suFpvG4YHEvB8m5yWDhQSoMZrVcpiCgrKluw+/4GQm4VlB3WrUysgKgX?= =?us-ascii?Q?8Wzykr9uzyanXVbDRR+0ACqV8NKTW4gniX4OPptDtkmzpHiXRNhhW7dmRZFl?= =?us-ascii?Q?j97x+S+lILiaEks11A9Xx3RWdFJ8tKeLrfHthdd9/PuZU/oa+Gt48f4sSnLR?= =?us-ascii?Q?nGBwEyv08O/ijf4ZQNqR66lawRw1t8IzV3QieoCpHsKTwK2Yn9rjMSUEKpcc?= =?us-ascii?Q?6JoCF5BSPwQZv2e26OeQLM9NLJtVvzChDIehzpSrv3WrXQQPuLJCyVVvnNpF?= =?us-ascii?Q?MgyhctxFHz9OnlokaRIXyWPAE8m1pbf5ez7NvxPCO38P+4B7zQZ6I9p+ilo1?= =?us-ascii?Q?qRbrkacGz8QYWWpVTqOVxfvqqmytE3EDJhOQoBXzTnNDK41nFZ4Q7Hl3IDsg?= =?us-ascii?Q?aniIZc4/ya2yBVcFbkyuN3AADnN8m9O9wUJxwjtL2sXz2Sri7YetFXQpUKYZ?= =?us-ascii?Q?ioH+ZFtmeFmgXSTid5dyisK0WhvBbmt35VLPMbUUJGVwnrInwwt8ETXhTNCl?= =?us-ascii?Q?uQsV9vdAPSAgkEzsyGcNbHr3jkuoLOarxMBwrAFYcn8YvDvdQrfyFbDxfi91?= =?us-ascii?Q?LHCDXniu7i7FB6cHEDEZ8sYwd9HkYseuTJXoA8Byuqnx8mqI18EWB30mdTWt?= =?us-ascii?Q?8X6h1AY/rDbBPbLUeT2gsPUz3QRltGt7p1orpZCBBT/6YHPziEUdY8jb8iF6?= =?us-ascii?Q?ZB4MvvLV+W8R8G60iVK8Yq+ww4LJsDtc2pfvECtId2hyQ+s/meL74cEhXdtr?= =?us-ascii?Q?EGSsv0RgKHrjuT28s7+y0Qfp7CAWitj+OO7xXEUkIDADR+VT0Rx6WNRNV8PA?= =?us-ascii?Q?WMF9JZ4DbQ9OwX6OHGzVnDnKOuYSR62OhqaH4J2NSYcDDTdU2iEg06C6RcXA?= =?us-ascii?Q?spvRQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR04MB0838; 6:VTiSKL4DsF6bgdFgQcy/mzxvvpz4DrbeYbg+Sxq/qfK9iIhwsdq1nLDX9MGH3jTEfu/0fSdIpdXCVVKsSuV4su3yp1NFPGXcvXzNd1/VsEd632Wz4f4wZLkDT/PDu43lQa9f1DGDJfLlLB2CQLjPIZsGRmGaC8IeotyOjkVB4tN5AZveYnYimGqGT1M2KxmePdVapM4b/BXYGiUb1FDsbg/VQLajJB3b5r8QGDThiVXU7AntLlNgU5HIAah8MTLQAxi3IkvxHAgKqXuUptlxQEObf8Kj0MXAWRLca1tDnZ08zD76n7t0un04T8630xUIGXaYmygBU0ZwxpB+brVB5g==; 5:Bo/TIYZ/Ez7A+cPus4u1kmn7n4cS0YuaT0E23/mKsNFTR1N9KNbZ/7G+hvLgJWYJUXWF5P0L4sBSiS7oFDke+SIi1cGwa/v8gK1J/RevTIsGW+y9QTYnscxzjJq6RCnwLkAClLWwJV874qic0AJxYg==; 24:Tg/BzE8zDq3n9THWYup+efYPyMpOp92kItQyfNxCZvUkgbcLvDRj9mtUGl+ApXeGFXL5NIZvwdSi3USxyzuwydrZF5q/8kiYZKmZxWLlxDU=; 7:3BVz+PaI9uZ6LaDHGZcZ28WFV2MkLXuqhwLf9V9mfJbFh5xmXDJfOhqJKNbovRoTBoX/fjLcnLudYhUc/T77WSSnW3qAvv29gBcK5c+uLi0Zl6/3tEzjtiMGL+HaeTPoqoSFv2xTWiS5WKBUZiNbVzmFPsr2t2gSQCa1bE5PlRsY0Yz8DtdpubXpU3u3uDp8ugmzzNdUXQCq4yZ3fYswX0Gg2LBNxIkuU18SkYqwh2w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: adaptrum.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2017 20:04:02.8014 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR04MB0838 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170804_130427_727293_C668FD2D X-CRM114-Status: GOOD ( 13.81 ) X-Spam-Score: -2.9 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.34.71 listed in list.dnswl.org] -1.0 RCVD_IN_MSPIKE_H5 RBL: Excellent reputation (+5) [104.47.34.71 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexandru Gagniuc , linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, robh+dt@kernel.org Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org An ARC, the interrupts are enabled globally, rather than per-line, as drivers request it. Thus, we need to make sure that peripherals don't generate any before the respective drivers are probed. The GMAC is infamous for spamming interrupts, so it must be kept in reset until the driver is probed and interrupt mapping established. Signed-off-by: Alexandru Gagniuc --- Changes since v1: * None arch/arc/Kconfig | 1 + arch/arc/Makefile | 1 + arch/arc/plat-anarion/Kconfig | 10 ++++++++++ arch/arc/plat-anarion/Makefile | 7 +++++++ arch/arc/plat-anarion/platform.c | 39 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+) create mode 100644 arch/arc/plat-anarion/Kconfig create mode 100644 arch/arc/plat-anarion/Makefile create mode 100644 arch/arc/plat-anarion/platform.c diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index a545969..dff8423 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -100,6 +100,7 @@ source "arch/arc/plat-sim/Kconfig" source "arch/arc/plat-tb10x/Kconfig" source "arch/arc/plat-axs10x/Kconfig" #New platform adds here +source "arch/arc/plat-anarion/Kconfig" source "arch/arc/plat-eznps/Kconfig" endmenu diff --git a/arch/arc/Makefile b/arch/arc/Makefile index 44ef35d..9bc0048 100644 --- a/arch/arc/Makefile +++ b/arch/arc/Makefile @@ -109,6 +109,7 @@ core-y += arch/arc/boot/dts/ core-$(CONFIG_ARC_PLAT_SIM) += arch/arc/plat-sim/ core-$(CONFIG_ARC_PLAT_TB10X) += arch/arc/plat-tb10x/ +core-$(CONFIG_ARC_PLAT_ANARION) += arch/arc/plat-anarion/ core-$(CONFIG_ARC_PLAT_AXS10X) += arch/arc/plat-axs10x/ core-$(CONFIG_ARC_PLAT_EZNPS) += arch/arc/plat-eznps/ diff --git a/arch/arc/plat-anarion/Kconfig b/arch/arc/plat-anarion/Kconfig new file mode 100644 index 0000000..632c7be --- /dev/null +++ b/arch/arc/plat-anarion/Kconfig @@ -0,0 +1,10 @@ +# +# (C) Copyright 2017 Adaptrum, Inc. +# Written by Alexandru Gagniuc for Adaptrum, Inc. +# Licensed under the GPLv2 or (at your option) any later version. +# + +menuconfig ARC_PLAT_ANARION + bool "Adaptrum Anarion based platforms" + help + Support for Adaptrum Anarion based ARC platforms. diff --git a/arch/arc/plat-anarion/Makefile b/arch/arc/plat-anarion/Makefile new file mode 100644 index 0000000..9596a41 --- /dev/null +++ b/arch/arc/plat-anarion/Makefile @@ -0,0 +1,7 @@ +# +# (C) Copyright 2017 Adaptrum, Inc. +# Written by Alexandru Gagniuc for Adaptrum, Inc. +# Licensed under the GPLv2 or (at your option) any later version. +# + +obj-y := platform.o diff --git a/arch/arc/plat-anarion/platform.c b/arch/arc/plat-anarion/platform.c new file mode 100644 index 0000000..ef0d381 --- /dev/null +++ b/arch/arc/plat-anarion/platform.c @@ -0,0 +1,39 @@ +/* + * Workarounds for Adaptrum Anarion SOC + * + * Copyright (C) 2017, Adaptrum, Inc. + * (Written by Alexandru Gagniuc for Adaptrum, Inc.) + * Licensed under the GPLv2 or (at your option) any later version. + */ + +#include +#include +#include + +#define GMAC0_RESET 0xf2018000 +#define GMAC1_RESET 0xf2018100 + +/* This works around an issue where the GMAC will generate interrupts before + * the driver is probed, confusing the heck out of the early boot. + */ +static void __init anarion_gmac_irq_storm_workaround(void) +{ + writel(1, (void *)GMAC0_RESET); + writel(1, (void *)GMAC1_RESET); +} + +static void __init anarion_early_init(void) +{ + anarion_gmac_irq_storm_workaround(); + /* Please, no more workarounds!!! */ +} + +static const char *anarion_compat[] __initconst = { + "adaptrum,anarion", + NULL, +}; + +MACHINE_START(ANARION, "anarion") + .dt_compat = anarion_compat, + .init_early = anarion_early_init, +MACHINE_END