From patchwork Thu Nov 8 21:59:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Brodkin X-Patchwork-Id: 995220 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=synopsys.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=synopsys.com header.i=@synopsys.com header.b="i5+Pd+iS"; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.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 42rcdf66Kqz9sLt for ; Fri, 9 Nov 2018 08:59:49 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id AFC198663E; Thu, 8 Nov 2018 21:59:47 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jJh7T+48vQFc; Thu, 8 Nov 2018 21:59:46 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id DECC78676D; Thu, 8 Nov 2018 21:59:46 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 8EF1D1BF2A4 for ; Thu, 8 Nov 2018 21:59:46 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 8B7058524B for ; Thu, 8 Nov 2018 21:59:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GfPNOZOAAVug for ; Thu, 8 Nov 2018 21:59:45 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from smtprelay.synopsys.com (us01smtprelay-2.synopsys.com [198.182.47.9]) by whitealder.osuosl.org (Postfix) with ESMTPS id AD41885247 for ; Thu, 8 Nov 2018 21:59:45 +0000 (UTC) Received: from mailhost.synopsys.com (mailhost3.synopsys.com [10.12.238.238]) by smtprelay.synopsys.com (Postfix) with ESMTP id 2ADC024E06D1; Thu, 8 Nov 2018 13:59:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1541714385; bh=lZRy+Se55W6CVa5Aufc1gl5JKkxk+2QT8zKaNR/5WQg=; h=From:To:Cc:Subject:Date:From; b=i5+Pd+iSsmUIzGRUpt2w8w3wLCwJQRDDlKHtME1BHHbCYRvNqfK+2A4xpd8ebUfxv lp7KfsAaEhl4g6eu8Er3ZZZN9+CJhx8Z998VntHDSA1TgMn5LBf+htWiCNMyrmIjI3 qD0ysSjAzWe0O2chyP9lXuST4ghNoMs/KSl1ttBDDj18KvSSd3u/U8qZnR5ioGwqKw DwHgNE0enEZ9PJmJzZovbxE+/nC2w9d5ZGWMaNGj14gsZacghB7X1i3Wf73rBB2Yml 3BNXnZunn9DdssXZwxl7Gp6Zn+EuT2rtCFky1/kN9a/1q+nFMsKq082l3qqQXQf+H6 pOj+YB3lZ0bzg== Received: from abrodkin-7440l.internal.synopsys.com (unknown [10.121.8.69]) by mailhost.synopsys.com (Postfix) with ESMTP id A41FF3DB8; Thu, 8 Nov 2018 13:59:42 -0800 (PST) From: Alexey Brodkin To: buildroot@busybox.net Date: Thu, 8 Nov 2018 16:59:40 -0500 Message-Id: <20181108215940.18298-1-abrodkin@synopsys.com> X-Mailer: git-send-email 2.17.2 Subject: [Buildroot] [PATCH v3] ARC: Add support for ARC HS38 with Quad MAC & FPU X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Korsgaard , Alexey Brodkin , Thomas Petazzoni MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Alexey Brodkin We used to build everything for pretty much baseline ARC HS capable of runnig Linux kernel, which was ARC HS38/48 with MMU and caches. But there's a fully featured ARC HS with additional support for - Dual & quad integer multiply and MAC operations - Double-precision floating-point unit It corresponds to the following ARC HS templates in ARChitect: hs38_slc_full. In fact existing HSDK board uses exactly this configuration in its SoC and this is recommended configuration for Linux use-cases. To make life simpler we have corresponding "-mcpu" and "--with-cpu" options in ARC GCC port so we're going to use it and get binaries built accordingly optimized. And while at it added help message so users may better understand what they are dealing with. Signed-off-by: Alexey Brodkin Cc: Arnout Vandecappelle (Essensium/Mind) Cc: Thomas Petazzoni Cc: Peter Korsgaard --- Changes v2 -> v3: * Spello in BR2_READELF_ARCH_NAME: "BR2_archs_full" instead of "BR2_archs38_full" which obviously lead to build failure. Changes v1 -> v2: Basically this is a slight rework of [1] with the following chnages: * No uClibc changes as we no longer mess with ARC core versions there, see [2] * Added help message so users see what is meant * Renamed internal BR variable to indicate more chnages but not only floating-point unit arch/Config.in.arc | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/arch/Config.in.arc b/arch/Config.in.arc index 156384b9a5c8..42ab8b55d4f8 100644 --- a/arch/Config.in.arc +++ b/arch/Config.in.arc @@ -13,13 +13,29 @@ config BR2_arc770d config BR2_archs38 bool "ARC HS38" + help + Generic ARC HS capable of running Linux, i.e. with MMU, + caches and multiplier. Also it corresponds to the default + configuration in older GNU toolchain versions. + + If you're not sure which version of ARC HS core you build for + keep this one. + +config BR2_archs38_full + bool "ARC HS38 with Quad MAC & FPU" + help + Fully featured ARC HS with additional support for + - Dual- and quad multiply and MC oprations + - Double-precision FPU + + It corresponds to "hs38_slc_full" ARC HS template in ARChitect. endchoice # Choice of atomic instructions presence config BR2_ARC_ATOMIC_EXT bool "Atomic extension (LLOCK/SCOND instructions)" - default y if BR2_arc770d || BR2_archs38 + default y if BR2_arc770d || BR2_archs38 || BR2_archs38_full config BR2_ARCH default "arc" if BR2_arcle @@ -37,10 +53,11 @@ config BR2_GCC_TARGET_CPU default "arc700" if BR2_arc750d default "arc700" if BR2_arc770d default "archs" if BR2_archs38 + default "hs38_linux" if BR2_archs38_full config BR2_READELF_ARCH_NAME default "ARCompact" if BR2_arc750d || BR2_arc770d - default "ARCv2" if BR2_archs38 + default "ARCv2" if BR2_archs38 || BR2_archs38_full choice prompt "MMU Page Size" @@ -60,7 +77,7 @@ choice config BR2_ARC_PAGE_SIZE_4K bool "4KB" - depends on BR2_arc770d || BR2_archs38 + depends on BR2_arc770d || BR2_archs38 || BR2_archs38_full config BR2_ARC_PAGE_SIZE_8K bool "8KB" @@ -70,7 +87,7 @@ config BR2_ARC_PAGE_SIZE_8K config BR2_ARC_PAGE_SIZE_16K bool "16KB" - depends on BR2_arc770d || BR2_archs38 + depends on BR2_arc770d || BR2_archs38 || BR2_archs38_full endchoice