From patchwork Thu Nov 8 11:04:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Brodkin X-Patchwork-Id: 994762 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.136; helo=silver.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="ItYNsiU1"; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42rL5c4RVgz9sBZ for ; Thu, 8 Nov 2018 22:04:36 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id E1E022D084; Thu, 8 Nov 2018 11:04:32 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LrgaKjLMCi+e; Thu, 8 Nov 2018 11:04:30 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 471A122802; Thu, 8 Nov 2018 11:04:30 +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 A650E1BF37C for ; Thu, 8 Nov 2018 11:04:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id A1CE38325F for ; Thu, 8 Nov 2018 11:04:28 +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 pS7fFXTGEMGv for ; Thu, 8 Nov 2018 11:04:26 +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 DE4F48273B for ; Thu, 8 Nov 2018 11:04:26 +0000 (UTC) Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id 3C4A824E092C; Thu, 8 Nov 2018 03:04:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1541675066; bh=h8G/jLrjk90Nyj+iIAaMYkUWqPoMfizfmrBux9eMiUc=; h=From:To:Cc:Subject:Date:From; b=ItYNsiU12a18H5eB8/KAdlDPhnzx5rd79lCT+gSEMwOk8emTwbB5lbjD+s70fw5d0 S6QYDn3RwzB34yLb/xd9JqZbFli3nnCMLzj2MepiNms7o0mVz8BXhsfDDhMwAMGBdY I+rcfw5Tr9JztSEKKRjjLO9nFvY994Ou3YcKKXQ/fq2gZ+nRBkH8TdHPnRu4B0TGZe EwIro74TYSUldOclbUop9KtOjYujpGIvHJwkwwem19XT9bfaPiTeEN+q5ZSQCjqoa/ 4UoaHq0LMeLvtotUOdFEbXuofj7QNr58+qYNqkRka03Cb86nQ2DwWIlR7EJ8gTpxsn A2v2/RC+6NnZg== Received: from abrodkin-7480l.internal.synopsys.com (unknown [10.121.8.88]) by mailhost.synopsys.com (Postfix) with ESMTP id AD28B55E8; Thu, 8 Nov 2018 03:04:22 -0800 (PST) From: Alexey Brodkin To: buildroot@busybox.net Date: Thu, 8 Nov 2018 14:04:19 +0300 Message-Id: <20181108110419.10523-1-abrodkin@synopsys.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2] 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: Thomas Petazzoni , Peter Korsgaard , Alexey Brodkin , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" 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 --- 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 [1] https://patchwork.ozlabs.org/patch/786200/ [2] https://git.buildroot.org/buildroot/commit/?id=9cb6caf891588302d04baa4bbe84d672736ca502 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..e85eeb065d85 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_archs_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