From patchwork Fri Sep 23 02:19:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alison Wang X-Patchwork-Id: 673774 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sgHVS4Q7dz9t14 for ; Fri, 23 Sep 2016 12:33:52 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=freescale.onmicrosoft.com header.i=@freescale.onmicrosoft.com header.b=DBeQUa9d; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bnGHR-000447-0n; Fri, 23 Sep 2016 02:32:01 +0000 Received: from mail-sn1nam02on0115.outbound.protection.outlook.com ([104.47.36.115] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bnGH2-00041J-4a for linux-arm-kernel@lists.infradead.org; Fri, 23 Sep 2016 02:31:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freescale.onmicrosoft.com; s=selector1-freescale-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Op6C7BV8+ngXCHKSkqnM6jj+p7a1leFLe1V4fqNUTtY=; b=DBeQUa9d0voVBSQC5w8vt9XHpUmf5i6uechK5o2CkMdQjeBIXA8vau/eZ3ZlcMhgynPUvemQ4g7Zdafisi24jH52CDpoR1robQlfnOms553NwHieLnBYZTQJSlUv1Hujnqyrb/SRTlcBqYij8MNvQpJIrFbW5d330711/Nd/gkU= Received: from BN6PR03CA0031.namprd03.prod.outlook.com (10.175.124.17) by CY4PR03MB2614.namprd03.prod.outlook.com (10.173.42.21) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.629.8; Fri, 23 Sep 2016 02:31:17 +0000 Received: from BL2FFO11FD033.protection.gbl (2a01:111:f400:7c09::199) by BN6PR03CA0031.outlook.office365.com (2603:10b6:404:10c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.609.9 via Frontend Transport; Fri, 23 Sep 2016 02:31:15 +0000 Authentication-Results: spf=neutral (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=freescale.com;nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Neutral (protection.outlook.com: 192.88.168.50 is neither permitted nor denied by domain of freescale.com) Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD033.mail.protection.outlook.com (10.173.161.129) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Fri, 23 Sep 2016 02:31:11 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u8N2V2hT013082; Thu, 22 Sep 2016 19:31:07 -0700 From: Alison Wang To: , , , , , , , , Subject: [PATCH 2/2] armv8: aarch32: Add SMP support for 32-bit Linux kernel Date: Fri, 23 Sep 2016 10:19:06 +0800 Message-ID: <1474597146-33312-2-git-send-email-b18965@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1474597146-33312-1-git-send-email-b18965@freescale.com> References: <1474597146-33312-1-git-send-email-b18965@freescale.com> X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(189002)(199003)(50226002)(19580405001)(36756003)(19580395003)(77096005)(68736007)(105606002)(586003)(4326007)(2906002)(104016004)(87936001)(2950100001)(33646002)(92566002)(106466001)(229853001)(8676002)(5660300001)(189998001)(356003)(5001770100001)(8936002)(76176999)(305945005)(5003940100001)(626004)(48376002)(7416002)(50986999)(8666005)(97736004)(7846002)(2201001)(47776003)(50466002)(81156014)(81166006)(7059030)(42262002)(2101003); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR03MB2614; H:tx30smr01.am.freescale.net; FPR:; SPF:Neutral; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD033; 1:nenLDIA2AMs1cGTFB92Mk7Ga9qFcdM8XPiWziLheQXjrb7+n22yYz6ZctMPmuN2H8PI77WZ/NU72M4u3E4N4wHwvEiuDH05qS118QxowwEMaWNzy5cUNqkz1t5yNwOf0IVbmj9A8RL1QzgrwIon1/DXS6D7lgnkjnFinIC3JiouO5geVc+zhzKF9kAIQ5wqLhlk0R7+3HRl1uNmYPYwd1sU1j2bKSig8oaFXYJSfEiALEuQ/D056gTajxb4kgCAAdWP23+//9UQq+eno4PzV1aMsX4RltdAHSWX3tPwqAkKY1U4/ECSphpm7JGKajjxduuiWd3+SRKCULcMW151OEgu6Tmkl7RrBVE8V78q9jybFYkG2uSsKlHrfoEOmfZzjy4HaFSlC4e+SycrKoU0nGeUNosqqbacdJYHUjqWJprCzefLlVlWE2N3NNXHJIoV3Ymj7XImzcZfjkTLxIK9wPbzrGYuWOmErfyCcoMIyQaT2d4+nOkxo93uUXBA7eioO/WjTu3XktrL4nwMpgFn14ZPqno0C9hpVSqoOn7Z1SPK7eCQadFXFT8Ll1ZzpmjEt MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: f7d9865a-887a-4f4d-2e59-08d3e359b117 X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2614; 2:kvjoCpvgdx5VJy8vMeR5VOCTsq4JMiJct5xhUm4XHtuoiomXDknKonu5aYR+FU3zQVU5pRGScEEg5petQV+IH3z6WHoF3xCXFMIFoz+6TlRGUxi+vWkD0khDSjxECtats6vnHuU5rAjS4+DGqUwXaekor63q5k29bgw9XrWP3PwCi6lZ27kfhVe6tHfj4Ivc; 3:COzJZJlzX03Hhq5RWvIM/w/+IzFohtqi7es6EE/R0DVhN7NlGjn5LrdV4ZZUB2WOLobWZ3dQ7LCOwA9xd/AaIUTbkkLsMjpZ9D7WqcvCHslKJAZHiJs8Mo6Fek1ITQJ868Mi5DbnSMP63vaOvKrWja2y2w604a7D6l+gtstxW/bPh8HI+4d4wZfYI+KUtddqTak+hiuDeyVcBf8PJGoPuu8c3GrXt+ec9f5VRLw795E= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2614; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2614; 25:t1anWT90sJwqZAN9UOo4ZmIo0ZXkQemsKyOZ0vdTlqlswHhPAZ8GhpoWIrCLWxkb+dEiY8fvpi1XhPDsHTOx7ha7S6hsh5dQwETySWDZDQpdpONp7fggEPZF35QJTMgF/shKq7EsnmTh0YuxEbp2XLU//TbKahWFavgxCb7tG8iiYwjdMGXzZ4Nhfx3zdl75cEbmuhKVnRS6pQEJ5duIjevydC3Ew6boqsSgwGYPm8EtqUNIksuSciYfEjO9UYuVCWOSmKk1gKXZZL8pxOUbSWOdR+M7QzJh87JAnBp6hauc4iIAUBqmkKFudoKVDXH5gcrGmuWNCXV/b0QLKLTv724h2fP+w7Xylgi5j60tvW70ND/xpT2DRQhl0eJY1H0ZAsrxRQQM7OhI+T3BinKUbCKvazFggQHluoFrKz/lubmspBdx6mar0jocfB0rxRPYjuPmKLwi1MwfWe3xXbk9xDLTNUJK76Yl/vy9uN6gumsUGMSzfbtpDUWkcCwxqTk6UlxOvgCoc5sn/3c92xdR1LWF9jqcZnAuNm+JrBIs2TrkUS9Ra3Mkj7v2WBM1oBBm3u+I3l848f/oe63Ew7BfoUBSQ0JHG7uCNUs3azKvnaxoe4L+mg8DHJQgLDuVdRHje4SL1ZY73FBnCCgGnn30psIfzcaymcWrrrOOaeRpgiRSzRmeqT90QQdTp2tRo1WfQf26iSxPtkC7DsqtPxf5nQ==; 31:yQAwtQV9/oGqgUVNKXE1WBYvn71xBYsGTSWyMek1ISA2O0oAgLqh3Ghv8aJutCDql9BRexSpPaH1JEATEtUNfBf7AgG6JTy+LSztSyF2VgRkRTlwpM7CQPETKH0dzmx7m1kEd4jQ1nx9KpNeY8siYEJ+qGXooS+9+F0ZzqEAkqPBBuC3OXGlaDUnIk1OkTqoc3f9IhRWd8mvAvkMezuKtlmBnJ6MuPeoUQ+2a6PRXBc= X-LD-Processed: 710a03f5-10f6-4d38-9ff4-a80b81da590d,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2614; 20:q4Gmu2wLcOBFty9aoJp4FcwnuLUEJ0da/Yr7O7eqJRgRM7Qlkomn5o5WYHAbV545AOWtF5mNp8bQ5IdQzr9SMrBDK1YsnU2FyBxlvJR7f6Ps2sUUIysekO6QRBKmYwbplPbWhDJZz/4jM+LeP4cnyuUlUeBMKV8gD96Pj9CCbdpAz4Pvkjc5802PxrLNNP+B0ymRfDK0Cm8w4n7q8HE7vbXJiI1rVo/sydcMYZqQpKFFJZajne/LIkswNh6s28iSOd26cbjaoo/IF00d7hoRQgGGyfvVc5CqSofxfHkyfTXdhERI4Bgwzo0YPCvwTf5un2U0eyA3GtOGlAJ6HqFqe9h6f4YdD0YIgkuPuNtDUMZxhc+zRlHcI8CLoCWbY2O0ZYHIDc3uNmpi6RzsTEVk/HWDdBmw49y+uMSrffWqKMVPf6HoWPHa5zWj6+EUAlCtZ6N0FAFDsahdkVuIRv6/YR99goBW9IotodStxC0XrcM4xVaGOfAd05yjlwgFjf6aC3q6EfMEY7yoWO520jNAD1BuyKixh6QjJywUl8KXioiheW5sN5PpKQ45c09JIqIl9UjRHC90I5iKi7/PaVgSRfQnC6rX/DSFxBzhxF1XXWs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(13017025)(13018025)(13024025)(13015025)(13023025)(10201501046)(3002001)(6055026); SRVR:CY4PR03MB2614; BCL:0; PCL:0; RULEID:; SRVR:CY4PR03MB2614; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2614; 4:q2gMxqZ7xRwGOWGB2I+vm4uEOrXR/sfV2IlFyIby8LupiUtzX5ExCVYgh/yINfmg5LsNjGRgkfsV42v2RGe0q9QgfaSYHQGxN3Jq36lF+yf+ScVzxU0Jo2oY5oyxvBMiEeJ3Wwe10gWUztWCNVuKBI0jj6vec0M9ffzty/bjDBxIF7g8l74Lcb9AyJWMs/QgHDbui0dYzBK3AUqtaT7fywCzh3Zhxk4NQ5n2NMUbJageU4WtepDQ9DkJ0axS7Kg1k0hqRlfSSDCWuIg2F3LIRmsg4S9e3anHzzxGriw2x4SgX/rBAD3UIlXRK9D3Tnb7BkAT58GMMBPlWTFmqQgBqF9pg4nZ8xWfOfmvUSEhjt3RCuZmjR/CyUQqZxLhx8WlK9ureNVWoCr/lTSdFmepsVpvpQm31m91KRAtBVByLr6kEAjxuZS0v9ntupskyU07YvHkhi9l2sS1ibKFriA+MiBKtoOlHwaFxUH3kJOOPdr0chfQvHnsU/VP0XwPnnruRZnsDCSLjOWE3cuEY7Kk/HDGGy/WArtIyzGQHyoOYFw= X-Forefront-PRVS: 0074BBE012 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2614; 23:VCwIlpLAoZka/iIylw5LG47ctHQ29cAUrJ4Jl16e/?= =?us-ascii?Q?1Eux9jRXdz3uA3jpM8wEJ1+Gaq+6QPqs3soJer8CgejmRCzDB4/xWfjo4HoM?= =?us-ascii?Q?QYFpSH07lI0/eOb5BROjz/KAOZvpwdBq5JKQXiiiKtbhPvtOKYqVnhQhooeR?= =?us-ascii?Q?rlAf31VhsjA3fmaXkJ2wQFoCLbhcAUfEb4M9+j7IT2T8x/JURtSq10fmXSFp?= =?us-ascii?Q?9gpf6S6A0C/yBV8XjcyF1Wp6qcfG80YqYWqQU+PAAeiA5PL6v9nusSIPfppe?= =?us-ascii?Q?fBMmMWiOu6dGqUExz8fzK+mPqG7DfsmLp5IZegKzgjTkpl9y9okUuZBa5NIp?= =?us-ascii?Q?uZyCUZf1bAVJooUAstzGHxz+K/x7lWYJytFD+X51QYHppPZra6MkTR6k7zMx?= =?us-ascii?Q?+heSVPXF688tbzOWmfEhLEPmssxiPR946rWolQJDH5GtUHRBqHwGUGBWV5gF?= =?us-ascii?Q?V7J7KSSK1IDfQ6tWkGd1p766oq7r2zAE9uXK0H+D5ER1VNi61O0KmxN9y9OG?= =?us-ascii?Q?IAsU5Si9frQbP0rsSJhIFZulFeQKB54WGy+/RtfNWQfDKboG8T2Tg9fSgeic?= =?us-ascii?Q?eTALRRR25j+NfjjmQidEty2SkXd89JGitYcUfEg9nYR/G5pcuHI0jas5nUgz?= =?us-ascii?Q?ftcXuYe6fSxdMxdfzIo7vUqQc8QYdUdxgXfT3+U0A2nqSE6oww6Ei6oydVmE?= =?us-ascii?Q?9bq2Q8v9fNgBEFzNmm0kHlCCeT5hyjo+6rKElaTfAqGG5hYwduT1uP3C9nua?= =?us-ascii?Q?2FGLxwMtUED5L1vbt/e9+NePPxqLYf3IGDJrPCX5oO/Wpvm68dRAnOUFQKgO?= =?us-ascii?Q?VrnWSXgt2mgWfne+fmX6EVFcDic1TG+p8NOkJyQJF1ToSsQM3YkCgPZA0Mor?= =?us-ascii?Q?u3Dya+UTvUFT5AWxrZzLSDYHOoFNYITA1hGMKr4j2naKoLkJ9saCn65fR9+7?= =?us-ascii?Q?+eiWS2R6k5Uhyl5xq3N50wSEce+zX6e3wEPYgHQVqpLtgg7eOLdrSTsotcSE?= =?us-ascii?Q?KH+qDP8u3GIuZx8dSXSLk+Gljohk0SBb4/UDYUBL0h4lsoSEZZsd+l7yYZq3?= =?us-ascii?Q?4nCcBThmkc0INYuh5C5av0JcWxhOsqoGR67rzVGDcfEL16DpaSihXc5qdcY0?= =?us-ascii?Q?Y0LbwzG8hY=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2614; 6:9GJFklLwgm3F10s1fJAw6kSTpoZr3qq0++SWYL6rdHq+Dv/oH1B1zBjc6gGyYc+4DngLo6qXAYiqPFaciG4RZq2hcG4bcBDdKl3oiSrzYBWP0Zk9jE9XlveMy3IomSjHCvK2m3HwV/iJKVtU+ZY0G1f+haYF5TNOAC1IT0dBdlD4GoWaA+9YpGpPq45IMfrRkrBxrIuPJoRVbb+B7303706C6oaDQgQ6T257wHLXuDv0pIkA5IF0ffMOwjTMFbEKsuhpnwo/I2YrzcMhsLAQWz3RXHhSHGlbYsy2r3edlSlhBKLOa7JbS1ZSa5sC3jHmXYTSEFPIRiuboDcVbSflXw==; 5:npGzjJ6IzPJwbNgmATiVh/KK2Lk3xMiz5eUP9cZfMMVCnA63zz+tgfyKSA8kOU1MSmNWUZ5wVNQ+l4rZfZQ2UzC+Vq0HHCUduMFaDK7e29atrzeyOtSW6uncPA+VgB+so6ppkbXdJpfhJ04lHbeIUw==; 24:FaoU9JEF5v32K5zg+eLV1AT9jAZzMjgwxqLISpmjM6yBewwOPtbFvhRDcRzxR06iKa52KE+r9J6woqbKO/ib19v9+4SmbMcdOmjHuZxWQ9s=; 7:dCy2+yCBfBXxK+2atWKJgRMENjJNJhnhJao1ge30XL6NK3t1f6Kob7xsP6SrbHzXTEe8Wsmp1LhuFyqmJvzJ8rlXTqqNPnnCDwfmzJl77Jle1vCbXMbTe3kJpb5T4tsVBWywvM5L6wsvgjwlgHtR/7eAw45yi/b/25+15f31rCTIkxrwExI1qcjxDlj8015JgmcM66+BZ5gbNsS1E1kq+oE13wI9s2kqVP6lXTlVBB6prll/44z+0vEkksvMLQWQD0S9qf561KoHT7GGNBvyUksX5YajRRGqhnpuC8z4dSDqBW/5ct/o9U6qjPPsRUt2 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2016 02:31:11.2584 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2614 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160922_193136_350941_8279D45E X-CRM114-Status: GOOD ( 15.98 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [104.47.36.115 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.36.115 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender 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-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jason.jin@nxp.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org The patch adds SMP support for running 32-bit Linux kernel for Layerscape platforms. Spin-table method is used for SMP support. Signed-off-by: Alison Wang Signed-off-by: Chenhui Zhao --- arch/arm/mach-imx/common.h | 1 + arch/arm/mach-imx/mach-layerscape.c | 1 + arch/arm/mach-imx/platsmp.c | 49 +++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index c4436d9..6362790 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h @@ -152,5 +152,6 @@ static inline void imx_init_l2cache(void) {} extern const struct smp_operations imx_smp_ops; extern const struct smp_operations ls1021a_smp_ops; +extern const struct smp_operations layerscape_smp_ops; #endif diff --git a/arch/arm/mach-imx/mach-layerscape.c b/arch/arm/mach-imx/mach-layerscape.c index acfb2a2..109d488 100644 --- a/arch/arm/mach-imx/mach-layerscape.c +++ b/arch/arm/mach-imx/mach-layerscape.c @@ -19,5 +19,6 @@ static const char * const layerscape_dt_compat[] __initconst = { }; DT_MACHINE_START(LAYERSCAPE_AARCH32, "Freescale LAYERSCAPE") + .smp = smp_ops(layerscape_smp_ops), .dt_compat = layerscape_dt_compat, MACHINE_END diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index 711dbbd..e2fc7a2 100644 --- a/arch/arm/mach-imx/platsmp.c +++ b/arch/arm/mach-imx/platsmp.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -26,6 +27,8 @@ u32 g_diag_reg; static void __iomem *scu_base; +static u64 cpu_release_addr[NR_CPUS]; + static struct map_desc scu_io_desc __initdata = { /* .virtual and .pfn are run-time assigned */ .length = SZ_4K, @@ -127,3 +130,49 @@ const struct smp_operations ls1021a_smp_ops __initconst = { .smp_prepare_cpus = ls1021a_smp_prepare_cpus, .smp_boot_secondary = ls1021a_boot_secondary, }; + +static int layerscape_smp_boot_secondary(unsigned int cpu, + struct task_struct *idle) +{ + u32 secondary_startup_phys; + __le32 __iomem *release_addr; + + secondary_startup_phys = virt_to_phys(secondary_startup); + + release_addr = memremap((u32)cpu_release_addr[cpu], sizeof(u64), + MEMREMAP_WB); + if (!release_addr) + return -ENOMEM; + + writel_relaxed(secondary_startup_phys, release_addr); + writel_relaxed(0, release_addr + 1); + __cpuc_flush_dcache_area((__force void *)release_addr, + sizeof(u64)); + + sev(); + + iounmap(release_addr); + + return 0; +} + +static void layerscape_smp_init_cpus(void) +{ + struct device_node *dnt = NULL; + unsigned int cpu = 0; + + while ((dnt = of_find_node_by_type(dnt, "cpu"))) { + if (of_property_read_u64(dnt, "cpu-release-addr", + &cpu_release_addr[cpu])) { + pr_err("CPU %d: missing or invalid cpu-release-addr property\n", + cpu); + } + + cpu++; + } +} + +const struct smp_operations layerscape_smp_ops __initconst = { + .smp_init_cpus = layerscape_smp_init_cpus, + .smp_boot_secondary = layerscape_smp_boot_secondary, +};