From patchwork Mon Aug 29 23:51:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pan Li X-Patchwork-Id: 1671530 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.a=rsa-sha256 header.s=selector1 header.b=I/czjm22; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MGbL20mHRz1yg7 for ; Tue, 30 Aug 2022 02:21:46 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9B5228493F; Mon, 29 Aug 2022 18:21:33 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="I/czjm22"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 549C384928; Mon, 29 Aug 2022 17:51:37 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=BAYES_00, DATE_IN_FUTURE_06_12, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10olkn2091.outbound.protection.outlook.com [40.92.40.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CD767844E3 for ; Mon, 29 Aug 2022 17:51:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=outlook.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=incarnation.p.lee@outlook.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fDzHF07PfDKQsPX+3hqo9ZG3atnMqAme+AcyppPchflj4mMi/wDmP3cJjoWaUnFd+J6EZTkLvMD47zlnpY0wycMUuzfXmBKbBZ2iqPRXyAbKx2QGavAaIN4N62az9Pyd+VvB3JsbtIgPFyBkSUhaihCLInjm7pBlvqlezAeY3fa58UzNjHeLp1XF/CnlQwaP34k+v0lIfFvfy65eGClkncUXfMmqR0PiQ/LUqjyNXgkRBFbrsWNyFpD6wl/LhuEaFpqB6elpt2IP1gJPRGWqkef4hqOMyC5XFHZ/77hfUI7y9Rfg66aon4hMF6meeGRDHKZDfUHgPu/baYGcFRUhkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+uMrY1Iw+01mqK4tVR0yntFFou1meFGg7nPZWa668i8=; b=UJjIC4Y5g6V9M9PNezudm5uXxUr3tqd0HF0K35TYm5hof0Fkm9eDL5kduJ9tHiBE127+GdOTmgp738/fcRjSqXHTCrK/884lnbCVpVaMuUwFfg8c3geFdAYan183MN1zSSnXeB/a+CHvACNlaCk3Vsh53mbV0iUhWaht0WDoW7JerMH6TAbx314hNDze62TYgIVy3pjr6gABQ2svjVTFGg9KKq5OxaMKqoGTU6ApgLh17blM73IZuPiNRAeC4Y+M1ZQFre1py6Cvm3UCCbGWjTvZOoy2sIfPMK29xWkGrSPZRZHYMBmj8/Q5L1HI+RhcJjLCfjU53qolEw72EvZAYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+uMrY1Iw+01mqK4tVR0yntFFou1meFGg7nPZWa668i8=; b=I/czjm22UBb3PN4RGl7+2omhhFTooOYvCzzPFwzMxkJOZ1qhtyuMrnwROwHYoQAXddE1TTUjob+bBwaV2+0mh2ulcC5HfZOKfKE5BZK+OVhDbPOIabsM7wWwCaKH37srjerPyx03541/iQqmcPs9lwiGHSinW3WvhQ8CrbfwdBKMzek3WdjK5lwn5HWRO8A4BvuJUXhKlVoqKi6AEH/5Bg63KAh+EJm+qNWLtUtRth/85Ty7DmCVeuPemsPeBozk/x1h15Yym655TVrSCFU1g74FiBlDrOq7him0ddEs+/GnpnEURHfENDYyIQ1xojD5KzCIDZoD9QJbZaMO4ycU9w== Received: from BYAPR04MB4824.namprd04.prod.outlook.com (2603:10b6:a03:5e::19) by CO6PR04MB7860.namprd04.prod.outlook.com (2603:10b6:5:354::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Mon, 29 Aug 2022 15:51:32 +0000 Received: from BYAPR04MB4824.namprd04.prod.outlook.com ([fe80::9dac:24e5:e0a:873a]) by BYAPR04MB4824.namprd04.prod.outlook.com ([fe80::9dac:24e5:e0a:873a%4]) with mapi id 15.20.5566.016; Mon, 29 Aug 2022 15:51:32 +0000 From: Pan Li To: U-Boot Mailing List Cc: Marek Vasut , Pan Li , Leo , Rick Chen Subject: [PATCH 1/1] The riscv spec has breaking change from 2.2 to 20191213. Both ZICSR and ZIFENCEI are separated extension since 20191213. Gcc bump up the riscv spec to 20191213 since 12.x. So add below 4 build option for compatibility:: Date: Mon, 29 Aug 2022 23:51:56 +0000 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220829235156.2238733-1-incarnation.p.lee@outlook.com> References: <20220829235156.2238733-1-incarnation.p.lee@outlook.com> X-TMN: [B+rZ67rk8yAX3zrHEAAefgISKAAMOQv2] X-ClientProxiedBy: SI2PR01CA0050.apcprd01.prod.exchangelabs.com (2603:1096:4:193::21) To BYAPR04MB4824.namprd04.prod.outlook.com (2603:10b6:a03:5e::19) X-Microsoft-Original-Message-ID: <20220829235156.2238733-2-incarnation.p.lee@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cb746e95-c483-439d-d6de-08da89d65830 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmrJ3OdcGJgulJWOepMDRIJzyZrRCuKA+yvb7UlP/+a1Hwez1T25MNVQvmN95VlvGcEqhNH53hVjl8vuXkHPx7cx5synJY+2udGwPpfNN7fiKKPMozByd7UI394aDagI681IzJ9lMYiVKYXfxeNlq692aijndBmFT32vtmALuXwePyNyuISJbFgJ9BivTgmvzTUykEcZnrcp0sgZh4sZtGBm6HgCxUt3uSd+nOwE+2CubZ7fzqbYjNgbew5lFO2FhulA9aqRgF0+pJQbt18Jd2B+xxh31Rc5W+35ufRDXiRXMojqGgF0+YzGmLhaamBEOvnrhaH83QsHGZtgEieskt70Qu88ABnlwapdnmJgbL8Eeu/f3Ay2wzBS3ko5dk726PrQcLYGodi/bep7jJEflfIq+WFVxg/m8WS5seW2TimPJGHYPefTQG5aI0d2oZNhueUVVUexStuOY9UDJIp9rD/F99anUxDGR+G9LPF9uEeZCeolrrfoFDc4v5Cj48KfDd0vy+/OVJDbSyznf1y2JSXTSpQ7c88IUxTOI6VEP+ZFo+6aM4DW9SmJ9jchxd0j+dMURCgocz9GI+Xqs8pBHNtkW4R9Mw81AWYwy1IZU2oHqWr7gOJ+OVLXr1XkqZYpeveg201rC7C/8t0sjABU9ZdGJHsATer7m108YNzmWRf0YbuK5sThG/w7gFDrMQH7BzQCpCuD1h0zxXxAGg9auAJHyBQ8QiCkKqh03PMOf4lWdM6Kzhme5K98DFxh4XFlRP4= X-MS-TrafficTypeDiagnostic: CO6PR04MB7860:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VTV81wEQceUR5543EFPiATmhhaFmvvOV2V97KZCA9M5YJpkSPuybW379QxlKokoCwWNN/OmIvgXhuwFAW4QduRLgeqVAk5qy7QsSuZleqgaxqYwx0MRMfGw56UmLhOoxeJcMt8fGDSkVmazUSaVOqlA+QJ6fv8RaXqjLMoG/XYECOKc90yolA4ne3Wpv+na94B9MqqPI1Q0yWqV6EB9wus5MlqR/FuVExHsU/2dYixunFZenoOM7uV6MxD/8YqsCqd76Y3ggsjRziALwXdPyGzmkevtuY26JKMBVTvi3H+sZtb8rmbJLED49oY+71cb1ZHtGjaE7mq4wcetxIhBnp5nZJBDNuHtRbnERthQzqhgX/LVxQMDkpZpvSeAaDE6WNfHPyaM8VSOdR5AV9404Roq1FtmfC6ySlLinpECY916IJrPq7cmDRnMvzsGfvaKNt7+GNbjvyWguB5yvrqc2z1KXw6eO5blMFXaOC23hxppmmQ/GxCaMbemj2Cz4raj4uGl/PIaan8GGnA8w+jhuTZ9GccUbgrrvRWJo8twCAEnYdvUW0ciDadaaNYU9H5bpImhoTqtw6M0Vncn52gbyOZQUb6Z3d2ugkynE7Hp8CeLtvaaWKiSyQaainL+qqz8mjjUANlkTV5VoW/nINddZgQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2vlYNRtWSn1UAmZz9cKZJ7CJYetVgiGvlkQUhSzYiG+9ypQXi0IXgMWFuQGT3CoQQeZ0iaLFZWRbqWmhVX1B0os8kqdSD3RMyB/MB05XEfxXAjg1PZ4TcJbosTbSAbFaFy6T9WyJ2kY9Qk5NjE5iFSho1B/cKz2BFFq4ueNzg3a1qhzDC3MtUrUyvc72bmtw3DKDFHFyQ4sJZm7+XSrqi9c+aUj6ztUyyhFVpRR8Fv3QO3QNY+Tt5TUXd6E24b04wBbTECAbNX+YpRw+gEJuxzUs+yyLVVvU7P1dpKIoixWfNrUBFP/WYpjckAntpERP5lOyPqQmokz9HdNnoN6kXDb/tVp3zj3TOnunhXV/0zMCg6tkjzUpyMPohFSoSR3Xi02wb+KBOv6HS1sqT6fP/ss0Tk03/b9g+FJhVTnTf4444f/sWe8qDOtk7fXoyWeAKk1oaakTfIJDWn6HV1GXwC/qCiscv03hysbUkstIcFItYTu+/Pb9WTdKJN+M4n2h69T6cB1y+L6/WGOpHpS6V5sD7S+T+V9nkcO9/AGKJ3QfAT4QfuZ2DRnTrQOuiobj62DIGo9QvG+eQOKmDbrahk50zA1Hl8q7+cC466wOvOQykcw7wlhiYs1b2cMfecbbYY9v5TNC7joDbsLPnT4veLH9jemeDyKRcdaEkCIqSuZc9j0K8ZHkgisK+JlpxMqEoarROcknbh7jQvVybKd8UA87y9lEHbejemIr0WSne4CFJsk5kLG+opOYqTP4YdjHqVuodGttlzKKxB2G2pIBgpd3m9pXMOjBA73YDnpwl9/+29ScPlPF1mlpPLtcgrEYza+Uaxmv4Acrny9nY0nHYN3OEhAFyPyLZKgZeMN/dD++IAtco7EHjUQEcjmVXw0g9wTZFYJYtYyh0EoQMjMYU+QH8zyDwZ2IlYCdztU6tYb4HYVfMPd2WbDPIyiPGwTemOcQJlNt2N1JgUVhP3dMTLmOvpZBTIfZC2UwUW//463FOG/YLo94zbUOdQpsTqydlWr3nwLIcNilzRBTp5Me+eZRl1WU7/P3yVxt+nFM7dpCUHtFpmqpTRZbez+lIzuOKo+rWJ7bIjR7E1RXAPvZLhooaiditLsTx6RxlH1S8q0BFaSAGWbAAqD4aGCjLPv1LQCyJBimrGuFHu8SHSxxnvdu+xQ/k5vUS8Hmrogsgfv3pVQZV2r+rmGOze6YH6/iXdv3TyVQ8O+VW/mobTNzkMBQIICeYWVZfCfwPSVs8t5tA7/pgvx1/0vefFsPhanvHwEo9tgIoeWAIHyNyu7+v0Baiwbgr67zr3pt6vw9OY4= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb746e95-c483-439d-d6de-08da89d65830 X-MS-Exchange-CrossTenant-AuthSource: BYAPR04MB4824.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2022 15:51:32.4604 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR04MB7860 X-Mailman-Approved-At: Mon, 29 Aug 2022 18:21:31 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean CONFIG_RISCV_ISA_F for single float point, default no. CONFIG_RISCV_ISA_D for double float point, default no. CONFIG_RISCV_ISA_ZICSR for control and status register, default no. CONFIG_RISCV_ISA_ZIFENCEI for instruction-fetch fence, default no. Example when build with gcc 12.x as below. make qemu-riscv64_defconfig && make \ CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv \ CONFIG_RISCV_ISA_F=y \ CONFIG_RISCV_ISA_D=y \ CONFIG_RISCV_ISA_ZICSR=y \ CONFIG_RISCV_ISA_ZIFENCEI=y Signed-off-by: Pan Li --- arch/riscv/Kconfig | 28 ++++++++++++++++++++++++++++ arch/riscv/Makefile | 20 ++++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 78e964db12..d54ee3aaf3 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -144,6 +144,34 @@ config SPL_RISCV_SMODE endchoice +config RISCV_ISA_F + bool "Single precision instructions" + help + Adds "F" to the ISA subsets that the toolchain is allowed to emit + when building U-Boot, which results in single precision floating point + instructions in the U-Boot binary. + +config RISCV_ISA_D + bool "Double precision instructions" + help + Adds "D" to the ISA subsets that the toolchain is allowed to emit + when building U-Boot, which results in double precision floating point + instructions in the U-Boot binary. + +config RISCV_ISA_ZICSR + bool "Control and status register instructions" + help + Adds "ZICSR" to the ISA subsets that the toolchain is allowed to emit + when building U-Boot, which results in control and status Register + instructions in the U-Boot binary, since gcc 12.x and riscv spec 20191213. + +config RISCV_ISA_ZIFENCEI + bool "Instruction-fetch fence instructions" + help + Adds "ZIFENCEI" to the ISA subsets that the toolchain is allowed to emit + when building U-Boot, which results in instruction-fetch fence instructions + in the U-Boot binary, since gcc 12.x and riscv spec 20191213. + config RISCV_ISA_C bool "Emit compressed instructions" default y diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile index 0b80eb8d86..d333af92d1 100644 --- a/arch/riscv/Makefile +++ b/arch/riscv/Makefile @@ -14,9 +14,25 @@ endif ifeq ($(CONFIG_RISCV_ISA_A),y) ARCH_A = a endif +ifeq ($(CONFIG_RISCV_ISA_F),y) + ARCH_F = f +ifneq ($(CONFIG_RISCV_ISA_D),y) + ABI_FP_SUFFIX = $(ARCH_F) +endif +endif +ifeq ($(CONFIG_RISCV_ISA_D),y) + ARCH_D = d + ABI_FP_SUFFIX = $(ARCH_D) +endif ifeq ($(CONFIG_RISCV_ISA_C),y) ARCH_C = c endif +ifeq ($(CONFIG_RISCV_ISA_ZICSR),y) + ARCH_ZICSR = _zicsr +endif +ifeq ($(CONFIG_RISCV_ISA_ZIFENCEI),y) + ARCH_ZIFENCEI = _zifencei +endif ifeq ($(CONFIG_CMODEL_MEDLOW),y) CMODEL = medlow endif @@ -24,8 +40,8 @@ ifeq ($(CONFIG_CMODEL_MEDANY),y) CMODEL = medany endif -ARCH_FLAGS = -march=$(ARCH_BASE)$(ARCH_A)$(ARCH_C) -mabi=$(ABI) \ - -mcmodel=$(CMODEL) +ARCH_FLAGS = -march=$(ARCH_BASE)$(ARCH_A)$(ARCH_F)$(ARCH_D)$(ARCH_C)$(ARCH_ZICSR)$(ARCH_ZIFENCEI) \ + -mabi=$(ABI)$(ABI_FP_SUFFIX) -mcmodel=$(CMODEL) PLATFORM_CPPFLAGS += $(ARCH_FLAGS) CFLAGS_EFI += $(ARCH_FLAGS)