From patchwork Sun Oct 21 14:00:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Corbin X-Patchwork-Id: 987311 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.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=embecosm.com header.i=@embecosm.com header.b="C7npMhQe"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42dLtn71dgz9sBj for ; Mon, 22 Oct 2018 01:02:08 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 770AE8815A; Sun, 21 Oct 2018 14:02:04 +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 nv8g-UizW33f; Sun, 21 Oct 2018 14:02:02 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 0FAFB8815F; Sun, 21 Oct 2018 14:02:02 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id D15EC1BF38B for ; Sun, 21 Oct 2018 14:02:00 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id CEA49870EB for ; Sun, 21 Oct 2018 14:02:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YNesib5GVbHu for ; Sun, 21 Oct 2018 14:02:00 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by fraxinus.osuosl.org (Postfix) with ESMTPS id D2AD3870EA for ; Sun, 21 Oct 2018 14:01:59 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id q7-v6so14223545wrr.8 for ; Sun, 21 Oct 2018 07:01:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id; bh=VRFPK5kXCAaVvy4mD9TD5BTlu9ZEp36l5Yf/CKPpxJk=; b=C7npMhQe7rDtHNZfjjh6nF/UntNQddM+UowTL/tf9fpFDtDc9wVvYbw0TEm6oRMnFo jiXgieDrBospk1Lba1J9h54Ea+YxGu83JXRt+2sb8GgWAAfV9hH/78YcT4+ojJqCe8TU Lg1vwwJZrKfNe+VVQDRfhzBg+GCxfuXT2bTu37hAWSVYpoLwVmQ4uGh5D6lk2lYHgf5e eK8MED1gwKIRUz8zMKo778cdLFhlPERmG56yF9WGdfWsKtixf3S0vgUsYoq9J5tE3VJn a65bvnrFPUdxmVX86wry++yvFyeU93WzNpLsDbkeqlFbMHTSoh8OIs5X1ZJ5mv7ql83t kCZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=VRFPK5kXCAaVvy4mD9TD5BTlu9ZEp36l5Yf/CKPpxJk=; b=NU7Q2ZLHxf3nHh6PESa5DCjjq3sTHDpw80ONGYq2HqT81O4p22r+KoapoCvtC+QP4J 3gUegFDupsOryNzCTNNjIcy3BLu2lYby2x0vJqnAW2xazyG6343QgEdWGZaMFRjnU6s9 K7VEt3RZrCn1o2qUsbpJM1Pi1wV0oMdAEpfiVXnSMBlmRoxtxWMPgyftxoS64t1KHp3v PNkd8w9pG7uSa2Xlj/Q4cxgf+MeR/cid64jVqBlF2bx/tqtfDuwAimH8KMcSNhX7Bhmd OnF4SMC9a5K+jpFQBQgZ/u/mACu4iyQnfd6eamf3fJux+Lyg2R9EWxMJl7KmCHo/HqaM de/Q== X-Gm-Message-State: AGRZ1gItuG932ER5ospKbD/5fdssZLXrrwWQg1MW3T6WJmutWCPVZTmZ xnjlmxbFrW6Jnj5uu/ThA5w5uXq1jKw= X-Google-Smtp-Source: AJdET5eXmiW7lCV/2iB4PecSdUnJyEGzXzuiQJBFk78k+G9mWGbv8/DSeXIO1e3gjTtxSxByqBdaBQ== X-Received: by 2002:a5d:4c84:: with SMTP id z4-v6mr5054504wrs.75.1540130517805; Sun, 21 Oct 2018 07:01:57 -0700 (PDT) Received: from tait.lan.virginwifi.ie ([31.185.52.13]) by smtp.gmail.com with ESMTPSA id 63-v6sm7427946wmj.39.2018.10.21.07.01.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Oct 2018 07:01:56 -0700 (PDT) From: Mark Corbin To: buildroot@buildroot.org Date: Sun, 21 Oct 2018 15:00:58 +0100 Message-Id: <20181021140100.19155-1-mark.corbin@embecosm.com> X-Mailer: git-send-email 2.17.1 Subject: [Buildroot] [PATCH v3 1/3] arch: add support for RISC-V 32-bit (riscv32) architecture 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: Mark Corbin MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" This enables a riscv32 system to be built with a Buildroot generated toolchain (gcc >= 7.x, binutils >= 2.30, glibc only). This requires a custom version of glibc 2.26 from the riscv-glibc repository. Note that there are no tags in this repository, so the glibc version just consists of the 40 character commit id string. Thanks to Fabrice Bellard for pointing me towards the 32-bit glibc repository and for providing the necessary patch to get it to build. Signed-off-by: Mark Corbin --- Changes v2 -> v3: - updated the autobuild configuration for RISC-V 64-bit as the default RISC-V configuration is now 32-bit. Changes v1 -> v2: - regenerated the glibc patch correctly (Romain) - modified the conditional test for RISC-V 32-bit in glibc.mk to use the more consistent style for multiple variables (Romain) --- arch/Config.in.riscv | 23 +++++++- arch/arch.mk.riscv | 4 +- configs/qemu_riscv64_virt_defconfig | 1 + ...C-V-32-bit-build-of-riscv-glibc-2.26.patch | 59 +++++++++++++++++++ .../glibc.hash | 7 +++ package/glibc/glibc.mk | 7 +++ .../br-riscv64-internal-glibc.config | 1 + 7 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/0001-Fix-RISC-V-32-bit-build-of-riscv-glibc-2.26.patch create mode 100644 package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/glibc.hash diff --git a/arch/Config.in.riscv b/arch/Config.in.riscv index 4361890bf4..4615f3c797 100644 --- a/arch/Config.in.riscv +++ b/arch/Config.in.riscv @@ -66,13 +66,26 @@ config BR2_RISCV_ISA_CUSTOM_RVC endif config BR2_RISCV_64 - bool - default y + bool "64-bit" + default n select BR2_ARCH_IS_64 choice prompt "Target ABI" - default BR2_RISCV_ABI_LP64 + default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64 + default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64 + +config BR2_RISCV_ABI_ILP32 + bool "ilp32" + depends on !BR2_ARCH_IS_64 + +config BR2_RISCV_ABI_ILP32F + bool "ilp32f" + depends on !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + +config BR2_RISCV_ABI_ILP32D + bool "ilp32d" + depends on !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD config BR2_RISCV_ABI_LP64 bool "lp64" @@ -88,12 +101,16 @@ config BR2_RISCV_ABI_LP64D endchoice config BR2_ARCH + default "riscv32" if !BR2_ARCH_IS_64 default "riscv64" if BR2_ARCH_IS_64 config BR2_ENDIAN default "LITTLE" config BR2_GCC_TARGET_ABI + default "ilp32" if BR2_RISCV_ABI_ILP32 + default "ilp32f" if BR2_RISCV_ABI_ILP32F + default "ilp32d" if BR2_RISCV_ABI_ILP32D default "lp64" if BR2_RISCV_ABI_LP64 default "lp64f" if BR2_RISCV_ABI_LP64F default "lp64d" if BR2_RISCV_ABI_LP64D diff --git a/arch/arch.mk.riscv b/arch/arch.mk.riscv index 022d1a6809..f3bf2b3467 100644 --- a/arch/arch.mk.riscv +++ b/arch/arch.mk.riscv @@ -5,8 +5,10 @@ ifeq ($(BR2_riscv),y) -ifeq ($(BR2_ARCH_IS_64),y) +ifeq ($(BR2_RISCV_64),y) GCC_TARGET_ARCH := rv64i +else +GCC_TARGET_ARCH := rv32i endif ifeq ($(BR2_RISCV_ISA_RVM),y) diff --git a/configs/qemu_riscv64_virt_defconfig b/configs/qemu_riscv64_virt_defconfig index 59343ee98f..e15f804341 100644 --- a/configs/qemu_riscv64_virt_defconfig +++ b/configs/qemu_riscv64_virt_defconfig @@ -1,5 +1,6 @@ # Architecture BR2_riscv=y +BR2_RISCV_64=y # System BR2_SYSTEM_DHCP="eth0" diff --git a/package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/0001-Fix-RISC-V-32-bit-build-of-riscv-glibc-2.26.patch b/package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/0001-Fix-RISC-V-32-bit-build-of-riscv-glibc-2.26.patch new file mode 100644 index 0000000000..0596587ac5 --- /dev/null +++ b/package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/0001-Fix-RISC-V-32-bit-build-of-riscv-glibc-2.26.patch @@ -0,0 +1,59 @@ +From 4909cfbbe8dd512b8fc0892859549c26e1b14d30 Mon Sep 17 00:00:00 2001 +From: Mark Corbin +Date: Sun, 21 Oct 2018 10:38:18 +0100 +Subject: [PATCH 1/1] Fix RISC-V 32-bit build of riscv-glibc 2.26 + +This patch fixes two build errors with the 32-bit version of +glibc-2.26 from the riscv-glibc repository. + +A void reference to 'refsym' has been added to dl-runtime.c to avoid +an 'unused variable' error when building with '-Werror'. + +Some data types were hard-coded for 64-bit in ldsodefs.h. These have +been modified to allow 32-bit builds. + +This patch was provided by Fabrice Bellard as part of his RISC-V +Buildroot development source. + +Signed-off-by: Mark Corbin +--- + elf/dl-runtime.c | 1 + + sysdeps/riscv/ldsodefs.h | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c +index 51d3819d4a..e728e8907e 100644 +--- a/elf/dl-runtime.c ++++ b/elf/dl-runtime.c +@@ -146,6 +146,7 @@ _dl_fixup ( + if (__glibc_unlikely (GLRO(dl_bind_not))) + return value; + ++ (void)refsym; + return elf_machine_fixup_plt (l, result, refsym, sym, reloc, rel_addr, value); + } + +diff --git a/sysdeps/riscv/ldsodefs.h b/sysdeps/riscv/ldsodefs.h +index db993df80a..91e7a8c88f 100644 +--- a/sysdeps/riscv/ldsodefs.h ++++ b/sysdeps/riscv/ldsodefs.h +@@ -25,14 +25,14 @@ struct La_riscv_regs; + struct La_riscv_retval; + + #define ARCH_PLTENTER_MEMBERS \ +- Elf64_Addr (*riscv_gnu_pltenter) (Elf64_Sym *, unsigned int, \ ++ ElfW(Addr) (*riscv_gnu_pltenter) (ElfW(Sym) *, unsigned int, \ + uintptr_t *, uintptr_t *, \ + const struct La_riscv_regs *, \ + unsigned int *, const char *name, \ + long int *framesizep); + + #define ARCH_PLTEXIT_MEMBERS \ +- unsigned int (*riscv_gnu_pltexit) (Elf64_Sym *, unsigned int, \ ++ unsigned int (*riscv_gnu_pltexit) (ElfW(Sym) *, unsigned int, \ + uintptr_t *, uintptr_t *, \ + const struct La_riscv_regs *, \ + struct La_riscv_retval *, \ +-- +2.17.1 + diff --git a/package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/glibc.hash b/package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/glibc.hash new file mode 100644 index 0000000000..3eb5e04e96 --- /dev/null +++ b/package/glibc/4e2943456e690d89f48e6e710757dd09404b0c9a/glibc.hash @@ -0,0 +1,7 @@ +# Locally calculated (fetched from Github) +sha256 a40f908125135bad2cf92c18d07ad25b3091b161b3a5d3aea46c23ffd2ac90b8 glibc-4e2943456e690d89f48e6e710757dd09404b0c9a.tar.gz + +# Hashes for license files +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING +sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB +sha256 61abdd6930c9c599062d89e916b3e7968783879b6be0ee1c6229dd6169def431 LICENSES diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk index 708c22f723..408711bfb7 100644 --- a/package/glibc/glibc.mk +++ b/package/glibc/glibc.mk @@ -7,6 +7,9 @@ ifeq ($(BR2_arc),y) GLIBC_VERSION = arc-2018.03-release GLIBC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,glibc,$(GLIBC_VERSION)) +else ifeq ($(BR2_riscv):$(BR2_RISCV_64),y:) +GLIBC_VERSION = 4e2943456e690d89f48e6e710757dd09404b0c9a +GLIBC_SITE = $(call github,riscv,riscv-glibc,$(GLIBC_VERSION)) else # Generate version string using: # git describe --match 'glibc-*' --abbrev=40 origin/release/MAJOR.MINOR/master @@ -79,7 +82,11 @@ GLIBC_CONF_ENV = \ # Override the default library locations of /lib64/ and # /usr/lib64// for RISC-V. ifeq ($(BR2_riscv),y) +ifeq ($(BR2_RISCV_64),y) GLIBC_CONF_ENV += libc_cv_slibdir=/lib64 libc_cv_rtlddir=/lib +else +GLIBC_CONF_ENV += libc_cv_slibdir=/lib32 libc_cv_rtlddir=/lib +endif endif # Even though we use the autotools-package infrastructure, we have to diff --git a/support/config-fragments/autobuild/br-riscv64-internal-glibc.config b/support/config-fragments/autobuild/br-riscv64-internal-glibc.config index 75aa5dd915..d952c73a86 100644 --- a/support/config-fragments/autobuild/br-riscv64-internal-glibc.config +++ b/support/config-fragments/autobuild/br-riscv64-internal-glibc.config @@ -1,2 +1,3 @@ BR2_riscv=y +BR2_RISCV_64=y BR2_TOOLCHAIN_BUILDROOT_GLIBC=y From patchwork Sun Oct 21 14:00:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Corbin X-Patchwork-Id: 987312 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=none (p=none dis=none) header.from=embecosm.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=embecosm.com header.i=@embecosm.com header.b="cLgVN2s+"; 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 42dLtq3sHgz9sCQ for ; Mon, 22 Oct 2018 01:02:11 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 8736E3069B; Sun, 21 Oct 2018 14:02:08 +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 SxGwYjUJKTde; Sun, 21 Oct 2018 14:02:06 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id DF17225CA8; Sun, 21 Oct 2018 14:02:06 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id D0F861BF38B for ; Sun, 21 Oct 2018 14:02:05 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id CE7A6870F8 for ; Sun, 21 Oct 2018 14:02:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RqxcxAu-DnGy for ; Sun, 21 Oct 2018 14:02:04 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 5ED10870EA for ; Sun, 21 Oct 2018 14:02:04 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id 193-v6so7727373wme.3 for ; Sun, 21 Oct 2018 07:02:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/jP+gz5FpPAmMlhIhCOxEgt3/YLzppHPavDmghsDZD0=; b=cLgVN2s+CH0K6+DvOBk5YQ/4ajbcV5bkGQcYt1EcsyzvJoXsEvxovyPBm7Tpl9hahK fX1LnfCoiyDunX2Be9pjWas/G2wH4XMTkfxP5P68eXPV3u/3lY9jxtQv8LIeK/AP6BTB EZuizArHjkebq4aJ3SUi9iy4BqFlpi9ztXB3SPGDAnDmSCMpTWhFlkJlHifZ87hnvapR UoQvVVYcBQxa/gzJHdCPbCAAFeqSnZqq4kkj0iGeIOqU+5d7mXvnDhMQLXw9s623yR9Y WjenRuGA/ot1zqmtmuf5dew/GESQubCn1hFOE/kT6+DdDUGbVwVhqVkgYN/eYP90kpyA 65Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/jP+gz5FpPAmMlhIhCOxEgt3/YLzppHPavDmghsDZD0=; b=EiTqeMpjikZ2MDVdT+PRJpg6aNnJIqxHPGOuLPWn9VPiG1Pi9XFyrqiOy6VFtoqCzC oRb+6mLMNCdwDbZNSmzakS8LSITlB7JENkNyhbx4H/KL5lZZAMXBobGtHOvL4YoK39WZ C2AOngFwXQri771FcqqIqOtrI0wdDJWZfghkpnVjZTST3xYzmDssCYKIXM1vBCKs6m11 Xyb1anFv2oj2X62T851z9zC49RsvwEbs137bwl7rO4QrI2JoQwrXjrAcSPfpFMuHsXo7 hUhaGx7kzGvUIQyMMfYuGE5P4nACjI4IaEYcXQ8EAiiA6yEHdrSCnX+XcecGz5xqBVfN BWIw== X-Gm-Message-State: ABuFfoiaTQGSDQKeHeUm+w6fwOPFwZPjY+q6thCS5/z9UZC3ER5u8NIr IA3J17u1DC3rFDItNNhko5R2IJc4o+o= X-Google-Smtp-Source: ACcGV63fVgxtr4vYJ1T0P4iDBFtKmMnamsoXzJyTNoTssCy+r0Jwqh9pn3nMOxAs6JyZh8IppddaUw== X-Received: by 2002:a1c:9a4a:: with SMTP id c71-v6mr12031091wme.71.1540130522350; Sun, 21 Oct 2018 07:02:02 -0700 (PDT) Received: from tait.lan.virginwifi.ie ([31.185.52.13]) by smtp.gmail.com with ESMTPSA id 63-v6sm7427946wmj.39.2018.10.21.07.02.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Oct 2018 07:02:01 -0700 (PDT) From: Mark Corbin To: buildroot@buildroot.org Date: Sun, 21 Oct 2018 15:00:59 +0100 Message-Id: <20181021140100.19155-2-mark.corbin@embecosm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181021140100.19155-1-mark.corbin@embecosm.com> References: <20181021140100.19155-1-mark.corbin@embecosm.com> Subject: [Buildroot] [PATCH v3 2/3] configs/qemu: add qemu_riscv32_virt_defconfig 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: Mark Corbin MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Add RISC-V 32-bit defconfig for QEMU virt machine. Tested with QEMU 2.12.1 Signed-off-by: Mark Corbin Tested-by: Matt Weber --- board/qemu/riscv32-virt/linux.config | 23 +++++++++++++++++++++++ board/qemu/riscv32-virt/readme.txt | 7 +++++++ configs/qemu_riscv32_virt_defconfig | 24 ++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 board/qemu/riscv32-virt/linux.config create mode 100644 board/qemu/riscv32-virt/readme.txt create mode 100644 configs/qemu_riscv32_virt_defconfig diff --git a/board/qemu/riscv32-virt/linux.config b/board/qemu/riscv32-virt/linux.config new file mode 100644 index 0000000000..c25583f768 --- /dev/null +++ b/board/qemu/riscv32-virt/linux.config @@ -0,0 +1,23 @@ +CONFIG_ARCH_RV32I=y +CONFIG_SMP=y +CONFIG_NR_CPUS=8 +CONFIG_PCI=y +CONFIG_SYSVIPC=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_WIRELESS is not set +CONFIG_VIRTIO_BLK=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +# CONFIG_ETHERNET is not set +# CONFIG_WLAN is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VIRTIO_MMIO=y +CONFIG_EXT2_FS=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y diff --git a/board/qemu/riscv32-virt/readme.txt b/board/qemu/riscv32-virt/readme.txt new file mode 100644 index 0000000000..2da99580e5 --- /dev/null +++ b/board/qemu/riscv32-virt/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-riscv32 -M virt -kernel output/images/bbl -append "root=/dev/vda ro console=ttyS0" -drive file=output/images/rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=net0 -device virtio-net-device,netdev=net0 -nographic + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.12.1 diff --git a/configs/qemu_riscv32_virt_defconfig b/configs/qemu_riscv32_virt_defconfig new file mode 100644 index 0000000000..aec85e4639 --- /dev/null +++ b/configs/qemu_riscv32_virt_defconfig @@ -0,0 +1,24 @@ +# Architecture +BR2_riscv=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Linux headers same as kernel, a 4.15 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/riscv/riscv-linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="fe92d7905c6ea0ebeabeb725b8040754ede7c220" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/riscv32-virt/linux.config" + +# Bootloader +BR2_TARGET_RISCV_PK=y From patchwork Sun Oct 21 14:01:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Corbin X-Patchwork-Id: 987313 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=none (p=none dis=none) header.from=embecosm.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=embecosm.com header.i=@embecosm.com header.b="XMmT2fwB"; 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 42dLtw1clnz9sBj for ; Mon, 22 Oct 2018 01:02:16 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id E30488875D; Sun, 21 Oct 2018 14:02:11 +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 7pQtqjt52FOD; Sun, 21 Oct 2018 14:02:10 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 9665A88761; Sun, 21 Oct 2018 14:02:10 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 56DFA1BF38B for ; Sun, 21 Oct 2018 14:02:09 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 4DF5830645 for ; Sun, 21 Oct 2018 14:02:09 +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 zVTf0aMJlrgx for ; Sun, 21 Oct 2018 14:02:08 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by silver.osuosl.org (Postfix) with ESMTPS id BD082221AF for ; Sun, 21 Oct 2018 14:02:07 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id y140-v6so7291504wmd.0 for ; Sun, 21 Oct 2018 07:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=onh35CHv98TWKMKSHjWnwFPVdMolSTjMWKJ/aI7HHJU=; b=XMmT2fwB9ByOQY8B843QnmKu+ChGutDDsMls854hm5jZjOkASFPEZwjMvy4FknjnJy 0O3k6tyrgt1Q0GmPkK8qWTzxXMCf1LQigxm6N8uERfQJtQi7bXAAm/Qf2t1l8YU2CtE9 QW8YBJcXJa6W0rUyrlIL4HHDjl2h2VT3qzHscN8H/rSdftUa28UfeIfi9tQe4DJ9QZdJ S9AN/JqTvNgdz33d5mMN2O7K6/iMiq9CqQIV0ieYQvi87X8e6bCN9vUmSRBt6YhkhgvA EnDOqEjtj0xRsc/twxHgw/ntSvcR0/mwwBddF25IWvCh6R21IO9JCZp6Z+6XQCJGewxh KqOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=onh35CHv98TWKMKSHjWnwFPVdMolSTjMWKJ/aI7HHJU=; b=kLzjarGHHTg5Rs9VgdZYHSmdMbSlzz7u59XMwPegPQKV2KVBbosDG7r/m52DSSetWD cXWNrVAGoZGWCvKW7UW11izXH15aJpBfOtOEK5OwEj6R259pMrvEJ5taAW2QvlmPpyTa BWjBaJYWennN9DiF3lFxLf1nU2TXJx5zDMdTAcnVQwIRtqPcS/xkrxZyd0SCIxjpZgbf Rxl73yFNbGQqDw7RPRIJsbFnsPMQoAgV7gCB41LVYpRE7Y+lT/jePl+93Y2NvRLZt4Fq phLCp6jVNPygMHP+6PSGi0fZiSmP9e1Xidkb4zA+WZdcp3ePH+W9jm82LWWlNjPgAv2A EQnw== X-Gm-Message-State: ABuFfohxYnnetotrbKtgg/dkKT1u//0U0Y71ruDF7ad93BCNEJlK4Rw2 OI9wjIJpPdiBmxpqucpMFl4Yin0eAjs= X-Google-Smtp-Source: ACcGV63Ms/THV526M2rtQMahhk/mMgW7qePZ3HSpIRJVdzxTkymFCsbgL+UohpIAUU+Ybv1FeOiJSQ== X-Received: by 2002:a1c:607:: with SMTP id 7-v6mr12012948wmg.103.1540130525971; Sun, 21 Oct 2018 07:02:05 -0700 (PDT) Received: from tait.lan.virginwifi.ie ([31.185.52.13]) by smtp.gmail.com with ESMTPSA id 63-v6sm7427946wmj.39.2018.10.21.07.02.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Oct 2018 07:02:04 -0700 (PDT) From: Mark Corbin To: buildroot@buildroot.org Date: Sun, 21 Oct 2018 15:01:00 +0100 Message-Id: <20181021140100.19155-3-mark.corbin@embecosm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181021140100.19155-1-mark.corbin@embecosm.com> References: <20181021140100.19155-1-mark.corbin@embecosm.com> Subject: [Buildroot] [PATCH v3 3/3] support/config-fragments: add RISC-V 32-bit to autobuild configs 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: Mark Corbin MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Add a minimal RISC-V 32-bit autobuild configuration for the internal toolchain with glibc. Signed-off-by: Mark Corbin --- .../config-fragments/autobuild/br-riscv32-internal-glibc.config | 2 ++ support/config-fragments/autobuild/toolchain-configs.csv | 1 + 2 files changed, 3 insertions(+) create mode 100644 support/config-fragments/autobuild/br-riscv32-internal-glibc.config diff --git a/support/config-fragments/autobuild/br-riscv32-internal-glibc.config b/support/config-fragments/autobuild/br-riscv32-internal-glibc.config new file mode 100644 index 0000000000..75aa5dd915 --- /dev/null +++ b/support/config-fragments/autobuild/br-riscv32-internal-glibc.config @@ -0,0 +1,2 @@ +BR2_riscv=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y diff --git a/support/config-fragments/autobuild/toolchain-configs.csv b/support/config-fragments/autobuild/toolchain-configs.csv index f24ec9ced0..3681bc519f 100644 --- a/support/config-fragments/autobuild/toolchain-configs.csv +++ b/support/config-fragments/autobuild/toolchain-configs.csv @@ -51,6 +51,7 @@ support/config-fragments/autobuild/br-powerpc64le-power8-glibc.config,x86_64 support/config-fragments/autobuild/br-powerpc64-power7-glibc.config,x86_64 support/config-fragments/autobuild/br-powerpc-e500mc-full.config,x86_64 support/config-fragments/autobuild/br-powerpc-internal-full.config,any +support/config-fragments/autobuild/br-riscv32-internal-glibc.config,any support/config-fragments/autobuild/br-riscv64-internal-glibc.config,any support/config-fragments/autobuild/br-sh4-full.config,x86_64 support/config-fragments/autobuild/br-sparc-uclibc.config,x86_64