From nobody Sat Apr 27 21:40:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621866880; cv=none; d=zohomail.com; s=zohoarc; b=O9oRTrUpl479M5CVcGh6BIpixRNITY401o9XcKQGOc0/O2UstkUxtGo0i23PkoFUNplpEELpsTcAmdfw6OTfNioLlDVkJ+IRwezGeCMF8l+iWmmTIcbq9Xk0s4FkJpYZ/rIpZxtOqtfhP1tgfZv85DDeyiQAJoe0g0eiURSDqwo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621866880; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2sOrZe5bNOUYq7hgK+U1znFwa5rrkIKkNIboxtn+L9M=; b=Pnae0SbFlX7ZLTp61FwXI48JwF7qeOaKbcalqLCJS32zCtyKpXZ+4thAwWjIjKZhkbr8X8JcpFfPmdBrKKj+neM7wJ18VJp6mNZ3RFqTNoESHAd+7M2ns+tJb5rCfo+M6hWQxU93RWAy8b+Zb00oM0fev+SQDGCGCpG6k946wzk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621866880982466.0641744027964; Mon, 24 May 2021 07:34:40 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.131791.246144 (Exim 4.92) (envelope-from ) id 1llBem-0006H0-GM; Mon, 24 May 2021 14:34:12 +0000 Received: by outflank-mailman (output) from mailman id 131791.246144; Mon, 24 May 2021 14:34:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBem-0006Gt-CQ; Mon, 24 May 2021 14:34:12 +0000 Received: by outflank-mailman (input) for mailman id 131791; Mon, 24 May 2021 14:34:11 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBel-0005zC-5X for xen-devel@lists.xenproject.org; Mon, 24 May 2021 14:34:11 +0000 Received: from mail-oi1-x22e.google.com (unknown [2607:f8b0:4864:20::22e]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1c99d4de-3ba0-40f8-a9dd-0629675e6e51; Mon, 24 May 2021 14:34:07 +0000 (UTC) Received: by mail-oi1-x22e.google.com with SMTP id c3so27217128oic.8 for ; Mon, 24 May 2021 07:34:07 -0700 (PDT) Received: from localhost.localdomain (142-79-211-230.starry-inc.net. [142.79.211.230]) by smtp.gmail.com with ESMTPSA id p22sm2840564oop.7.2021.05.24.07.34.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 May 2021 07:34:07 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1c99d4de-3ba0-40f8-a9dd-0629675e6e51 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2sOrZe5bNOUYq7hgK+U1znFwa5rrkIKkNIboxtn+L9M=; b=liBlJJdT9IQFayphoQ9LiGylFPUQJJ9Hg3ZjBg+o3ODXfwDihgspY00McxaVXSPuHL 9elBHtA8L/MPH7er9ChFvpGR7BIhImU/ltwyABaqJEmd9XFLDg/ZJQn0xpXF8aCa8L6M XNVj6SakXgxORS+T/Aw+xjtgle4zfwagVa8ikuJZGXMycauN2HD1+xDip6G8jerGlBrw oXWQ26wCtcmCCC3Uj7x9BCTC8pCZae6s0WhDXpAYEA+WHhVrWzJSQCAmFv0JNrQeZ7xI vJmTSyVLwnxup5vamxxQ3RlbXeHmt4Mvbn9CDx2g48M/e112BRaqwHu2PPAqH3pA7QFy Edsg== 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:mime-version:content-transfer-encoding; bh=2sOrZe5bNOUYq7hgK+U1znFwa5rrkIKkNIboxtn+L9M=; b=UAlI5l66mD2phq/rD6bw2M38DXB/pRfYo+GCX0haClg9nBr6oX+Pmz/Fg9jteZNSyg GI7NVhN+OSHhKk5CmeM2xux2NwIskmgjbrTc6zfxl2VYLidIUTbLH4Pf4gI5eTuZmSfV WQbaAUXLgz1oKQx0z1zWc6jYyJyT9C4zp4TpzZMum4WR7eJL3DTGKZV+qY5vQKt2pVO2 VNeQeAQEzsfG8aix9Dx3fGx8gqW57/nZUYQOEPkEzWdO7DfnwO8pT+wbIAWlTXGmiElS OpEODE6zAiEw7zyeEOD/ylolDytD/kRp6mlaX06NNhXW/pQgZRpSX+H73pl4EnFCUQiK txYQ== X-Gm-Message-State: AOAM5327NEUuUxLokXuxFI04Yk9Uj8RuQGiHyi3uhSRylMEALgpLvcOE jsvj2zf9YRDTDFEZegxFrhkquysxgQ14Iw== X-Google-Smtp-Source: ABdhPJyhmWVfRrGIBU252wYHKyGOHu0QebZeNgiFtFSkhzEwr7qNY5bc4lnG0fnebbcYFIo7gPTrSw== X-Received: by 2002:aca:494d:: with SMTP id w74mr11026457oia.47.1621866847260; Mon, 24 May 2021 07:34:07 -0700 (PDT) From: Connor Davis To: xen-devel@lists.xenproject.org Cc: Bobby Eshleman , Alistair Francis , Connor Davis , Andrew Cooper , George Dunlap , Ian Jackson , Jan Beulich , Julien Grall , Stefano Stabellini , Wei Liu , Alistair Francis Subject: [PATCH v4 1/4] xen/char: Default HAS_NS16550 to y only for X86 and ARM Date: Mon, 24 May 2021 08:34:25 -0600 Message-Id: <2a8329da33d2af0eab8581a01e3098e8360bda87.1621712830.git.connojdavis@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Defaulting to yes only for X86 and ARM reduces the requirements for a minimal build when porting new architectures. Signed-off-by: Connor Davis Reviewed-by: Alistair Francis Acked-by: Jan Beulich --- xen/drivers/char/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig index b572305657..2ff5b288e2 100644 --- a/xen/drivers/char/Kconfig +++ b/xen/drivers/char/Kconfig @@ -1,5 +1,6 @@ config HAS_NS16550 bool "NS16550 UART driver" if ARM + default n if RISCV default y help This selects the 16550-series UART support. For most systems, say Y. --=20 2.31.1 From nobody Sat Apr 27 21:40:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621866876; cv=none; d=zohomail.com; s=zohoarc; b=U2PbeXItXY+ssinwzHE37oaqc69kY1fR6bbn7+w1uK0ebmrPXhI3prxdRzqKhf0CELqmW04o1Ew+REboDaQbx+fAFuKSQrHfgt561LHCZa+HCpJOppDIv67Ntsg3YmtbNwp7lx43M6u9WxAwQK3bxFKFQUdBEmN77B1GKOgjvoQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621866876; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KDIsJWwedO49iEv9YVCuj+jt8d4VmFrWYbJWRHeDs+U=; b=KMkAWLf/3EkqpQQ7FUKtiOtszsP5M1EC5mq5Y6DivsMlWO/63Sx2rY+1ZBPEsaMagT0sL77EMfJp/eHGgyNo8mM/LJ2mWlNkC9JZWkFVX/BFb/Bes0J/1hy/Se6vEm8zcsJbRc/exMgf4aduGjjotJDXo/Xz/CeQv4WNZzPayoc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621866876287275.5524576944565; Mon, 24 May 2021 07:34:36 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.131792.246155 (Exim 4.92) (envelope-from ) id 1llBer-0006ai-PQ; Mon, 24 May 2021 14:34:17 +0000 Received: by outflank-mailman (output) from mailman id 131792.246155; Mon, 24 May 2021 14:34:17 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBer-0006aZ-LL; Mon, 24 May 2021 14:34:17 +0000 Received: by outflank-mailman (input) for mailman id 131792; Mon, 24 May 2021 14:34:16 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBeq-0005zC-5d for xen-devel@lists.xenproject.org; Mon, 24 May 2021 14:34:16 +0000 Received: from mail-ot1-x334.google.com (unknown [2607:f8b0:4864:20::334]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 74edadd2-c31c-444e-bd36-81b0bd7c7b2f; Mon, 24 May 2021 14:34:09 +0000 (UTC) Received: by mail-ot1-x334.google.com with SMTP id u25-20020a0568302319b02902ac3d54c25eso25430402ote.1 for ; Mon, 24 May 2021 07:34:09 -0700 (PDT) Received: from localhost.localdomain (142-79-211-230.starry-inc.net. [142.79.211.230]) by smtp.gmail.com with ESMTPSA id p22sm2840564oop.7.2021.05.24.07.34.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 May 2021 07:34:08 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 74edadd2-c31c-444e-bd36-81b0bd7c7b2f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KDIsJWwedO49iEv9YVCuj+jt8d4VmFrWYbJWRHeDs+U=; b=Yh7vBBBU5OVB5ZSt8Zkl1ivh9VVDN84H7CvJXSSqYXgBNb9/qi/NFOcimfilfGx5DN rj2k1kDAP80gbtLGAQqltBvMeKD2610eSGLAShM4NbC5AgXNRyTbP0w29celQ65HIDkC c4UXNnOij/i9ZOl9GrwmP2yoqhYyShlP2+YzMkjpMkjVlC3/oE+VWj+aDIVEP9F+jE0A /DtKviQhW+WALICKHanjH6fwb/Ot6YA5980VlQNQmMzrqE0Q3JpovLBzYK0RYR65R5Zh uqvImHq0RQjgFG3kjeM1om8zzvdKzUkQXSBFi7EalKUZ/zX5rearK+386mplelwabxLX OQ2w== 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:mime-version:content-transfer-encoding; bh=KDIsJWwedO49iEv9YVCuj+jt8d4VmFrWYbJWRHeDs+U=; b=YO0oqy2LePJvoJ9jMV0m/4nooW/9hKs+PkJj6grie3JlfHcEUp5r2u5ZY09RYAzPoT cu6Li4Oyz6hqSUpM/v2zWq6QitFqqySlPZO6x/Lrc3Wo6TVcxN9vC6FZXBwpF/Y1EMlr Jdhvm2my/RIWX1DfZn2x/jr+re064+UpPGH4d7d0s8TLuQvZvbQ37iL1E3T4yzqozFgy D0iHVM9ulQZ/S30Lv+slne+DZqC9SN4eb5YlENfSye5o0AbIZURrQKaDuLbi5pPkvp1O GioRrKOmfLdMXrzMM06QtiOv/Wn77fH8DW+ZBdbsNREI626ftRxj+AfC7AHCgWD8H88j CC0w== X-Gm-Message-State: AOAM532pbcgB42VVzZFTCSTqbUlJlYc4rAdlLiU+3jTUqV3agTyFpdjK F1E0bdqQYe3rsglZz0wfmcsPVE7cfJvjpw== X-Google-Smtp-Source: ABdhPJx1K+5syu74ayMih8RaFCc1VU+YarG3lhylzhElWyrmdpxlimkDUFSXTgl1VRbzNh28REIuiA== X-Received: by 2002:a9d:7cd8:: with SMTP id r24mr19213213otn.90.1621866848860; Mon, 24 May 2021 07:34:08 -0700 (PDT) From: Connor Davis To: xen-devel@lists.xenproject.org Cc: Bobby Eshleman , Alistair Francis , Connor Davis , Andrew Cooper , George Dunlap , Ian Jackson , Jan Beulich , Julien Grall , Stefano Stabellini , Wei Liu , Paul Durrant Subject: [PATCH v4 2/4] xen/common: Guard iommu symbols with CONFIG_HAS_PASSTHROUGH Date: Mon, 24 May 2021 08:34:26 -0600 Message-Id: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" The variables iommu_enabled and iommu_dont_flush_iotlb are defined in drivers/passthrough/iommu.c and are referenced in common code, which causes the link to fail when !CONFIG_HAS_PASSTHROUGH. Guard references to these variables in common code so that xen builds when !CONFIG_HAS_PASSTHROUGH. Signed-off-by: Connor Davis Acked-by: Jan Beulich --- xen/common/memory.c | 10 ++++++++++ xen/include/xen/iommu.h | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/xen/common/memory.c b/xen/common/memory.c index b5c70c4b85..72a6b70cb5 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -294,7 +294,9 @@ int guest_remove_page(struct domain *d, unsigned long g= mfn) p2m_type_t p2mt; #endif mfn_t mfn; +#ifdef CONFIG_HAS_PASSTHROUGH bool *dont_flush_p, dont_flush; +#endif int rc; =20 #ifdef CONFIG_X86 @@ -385,13 +387,17 @@ int guest_remove_page(struct domain *d, unsigned long= gmfn) * Since we're likely to free the page below, we need to suspend * xenmem_add_to_physmap()'s suppressing of IOMMU TLB flushes. */ +#ifdef CONFIG_HAS_PASSTHROUGH dont_flush_p =3D &this_cpu(iommu_dont_flush_iotlb); dont_flush =3D *dont_flush_p; *dont_flush_p =3D false; +#endif =20 rc =3D guest_physmap_remove_page(d, _gfn(gmfn), mfn, 0); =20 +#ifdef CONFIG_HAS_PASSTHROUGH *dont_flush_p =3D dont_flush; +#endif =20 /* * With the lack of an IOMMU on some platforms, domains with DMA-capab= le @@ -839,11 +845,13 @@ int xenmem_add_to_physmap(struct domain *d, struct xe= n_add_to_physmap *xatp, xatp->gpfn +=3D start; xatp->size -=3D start; =20 +#ifdef CONFIG_HAS_PASSTHROUGH if ( is_iommu_enabled(d) ) { this_cpu(iommu_dont_flush_iotlb) =3D 1; extra.ppage =3D &pages[0]; } +#endif =20 while ( xatp->size > done ) { @@ -868,6 +876,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_= add_to_physmap *xatp, } } =20 +#ifdef CONFIG_HAS_PASSTHROUGH if ( is_iommu_enabled(d) ) { int ret; @@ -894,6 +903,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_= add_to_physmap *xatp, if ( unlikely(ret) && rc >=3D 0 ) rc =3D ret; } +#endif =20 return rc; } diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h index 460755df29..904cdf725d 100644 --- a/xen/include/xen/iommu.h +++ b/xen/include/xen/iommu.h @@ -51,9 +51,15 @@ static inline bool_t dfn_eq(dfn_t x, dfn_t y) return dfn_x(x) =3D=3D dfn_x(y); } =20 -extern bool_t iommu_enable, iommu_enabled; +extern bool_t iommu_enable; extern bool force_iommu, iommu_quarantine, iommu_verbose; =20 +#ifdef CONFIG_HAS_PASSTHROUGH +extern bool iommu_enabled; +#else +#define iommu_enabled false +#endif + #ifdef CONFIG_X86 extern enum __packed iommu_intremap { /* --=20 2.31.1 From nobody Sat Apr 27 21:40:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621866879; cv=none; d=zohomail.com; s=zohoarc; b=csbQmCW+NKjP1CjWbOI4yHc6qzxp++cZ56PIBXVogFvKngWeNbhIu6GhPTjLjEOx6dZlTQepFwJfMFji6tknkDD4BvSqUpZqEN/KvPFwrrR8hLZhQQ/GQKpFqIYPj8p/h3Mo7Lo47tRckFWrylg+zch7i94ZGe6D8uWQiEbJnws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621866879; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Z03iMc+ZiqkEReP0ZHr/r/QRsiH4nGo1RN/qJx+zcmg=; b=GunElp/Q+rs9YVU+xhC9XRviTsdax4dtfZRxJ7/SECd89HglWLnfbUhn3vjBcf3aDM5AYi9nDw/+jBHUhP8l/dspCm9NyRdvQBJYFDABAftxrGsYLDbSCYXffM3B9n6mxDPp+EEUZ2OeFDOj+nmxKhcN4FUzRyEDZTgOg2oIuHs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621866879602830.5406783574584; Mon, 24 May 2021 07:34:39 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.131793.246166 (Exim 4.92) (envelope-from ) id 1llBex-0006xB-2P; Mon, 24 May 2021 14:34:23 +0000 Received: by outflank-mailman (output) from mailman id 131793.246166; Mon, 24 May 2021 14:34:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBew-0006x0-U5; Mon, 24 May 2021 14:34:22 +0000 Received: by outflank-mailman (input) for mailman id 131793; Mon, 24 May 2021 14:34:21 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBev-0005zC-5n for xen-devel@lists.xenproject.org; Mon, 24 May 2021 14:34:21 +0000 Received: from mail-oi1-x234.google.com (unknown [2607:f8b0:4864:20::234]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b94264e8-3989-4a34-abd9-b21143b6886e; Mon, 24 May 2021 14:34:11 +0000 (UTC) Received: by mail-oi1-x234.google.com with SMTP id d21so27198680oic.11 for ; Mon, 24 May 2021 07:34:11 -0700 (PDT) Received: from localhost.localdomain (142-79-211-230.starry-inc.net. [142.79.211.230]) by smtp.gmail.com with ESMTPSA id p22sm2840564oop.7.2021.05.24.07.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 May 2021 07:34:10 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b94264e8-3989-4a34-abd9-b21143b6886e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z03iMc+ZiqkEReP0ZHr/r/QRsiH4nGo1RN/qJx+zcmg=; b=PlzWCYrOTrOYfnUWI9YFPX7BO+qCPijYAuG8H5Wr40Y4V+Yd/aFM7Q8AOyrY8NHVhN mqIN7v8gkf+pdWQVJFlMviYtmWz40zZKBpc9s2vldsfhdVbyTGkbpDUHuyED78qO/iJd MFmLi2HL8AgUh1Be/Jqy6HWZQngz55KAuUV9yrXdH8z97I8OTISe79BqTilwy7Zt2++o vNBQ2nWW+whMEz710wigf3FVaehPdB9wX+nSyV3cmY+kjNIZnDxMT6A5+BQylfmql0og 163um5lk8iCAqyjoA1mAgrbriFrTPdxsujgtkrlD9CBemaZRJEAjwhlSmCPUpPnDcwwo 5jVg== 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:mime-version:content-transfer-encoding; bh=Z03iMc+ZiqkEReP0ZHr/r/QRsiH4nGo1RN/qJx+zcmg=; b=FHo9mh79HRDBy49DF4WMJU8iqOjdYUCpqiQrTYI+Hs0z2PcMaw8O+8RDkVkGWtwHUp 7Em8Gs0eXsEk5+nI7njglUHM+otKTzpCEWKfHW/U2aA81N8TPGKcX+xpPaaeLIxBJjd3 3kzITAqbBx3KYn85Cdgj5utWqUu6VLWeCO+xi/OmI7xeXUC3/6FhDyb+iaNIFrH+ZQ1u s+luSnuydIstpFIgpNmQ+nnQBujyhw8lCUebAC1WOw1Lk3CrBZ4aOVA+BOOIS64ZFADz Zj4nh3XaDHDAxu/wT3hq+lS0ZvIV7aBZ0Xg69atrudkBNng3SzkIj0E2VdW3S8rkmF1W Nkgw== X-Gm-Message-State: AOAM533B1XC62bXlBHHiqbZfBpZ3BAH1iWPaeanhxiyE/u/IH6L3hGjY Up+kLzaxVywFwSq0QiUT9ntPefWihFwvvg== X-Google-Smtp-Source: ABdhPJzEjFTW4jW83mjIZnAMaQ84d3qND0LGuVdB83a6CH2v/PsZ0iPrvuly6aa0XB0twH39/VrqyA== X-Received: by 2002:aca:4cc4:: with SMTP id z187mr10880438oia.157.1621866850389; Mon, 24 May 2021 07:34:10 -0700 (PDT) From: Connor Davis To: xen-devel@lists.xenproject.org Cc: Bobby Eshleman , Alistair Francis , Connor Davis , Andrew Cooper , George Dunlap , Ian Jackson , Jan Beulich , Julien Grall , Stefano Stabellini , Wei Liu Subject: [PATCH v4 3/4] xen: Add files needed for minimal riscv build Date: Mon, 24 May 2021 08:34:27 -0600 Message-Id: <88ca49cea8dc0c44604957d42722388bb3d9e3ff.1621712830.git.connojdavis@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Add arch-specific makefiles and configs needed to build for riscv. Also add a minimal head.S that is a simple infinite loop. head.o can be built with $ make XEN_TARGET_ARCH=3Driscv SUBSYSTEMS=3Dxen -C xen tiny64_defconfig $ make XEN_TARGET_ARCH=3Driscv SUBSYSTEMS=3Dxen -C xen TARGET=3Dhead.o No other TARGET is supported at the moment. Signed-off-by: Connor Davis --- config/riscv.mk | 4 +++ xen/Makefile | 8 +++-- xen/arch/riscv/Kconfig | 47 +++++++++++++++++++++++++ xen/arch/riscv/Kconfig.debug | 0 xen/arch/riscv/Makefile | 0 xen/arch/riscv/Rules.mk | 0 xen/arch/riscv/arch.mk | 14 ++++++++ xen/arch/riscv/asm-offsets.c | 0 xen/arch/riscv/configs/tiny64_defconfig | 13 +++++++ xen/arch/riscv/head.S | 6 ++++ xen/include/asm-riscv/config.h | 47 +++++++++++++++++++++++++ 11 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 config/riscv.mk create mode 100644 xen/arch/riscv/Kconfig create mode 100644 xen/arch/riscv/Kconfig.debug create mode 100644 xen/arch/riscv/Makefile create mode 100644 xen/arch/riscv/Rules.mk create mode 100644 xen/arch/riscv/arch.mk create mode 100644 xen/arch/riscv/asm-offsets.c create mode 100644 xen/arch/riscv/configs/tiny64_defconfig create mode 100644 xen/arch/riscv/head.S create mode 100644 xen/include/asm-riscv/config.h diff --git a/config/riscv.mk b/config/riscv.mk new file mode 100644 index 0000000000..2b2cc2e63a --- /dev/null +++ b/config/riscv.mk @@ -0,0 +1,4 @@ +CONFIG_RISCV :=3D y +CONFIG_RISCV_$(XEN_OS) :=3D y + +CONFIG_XEN_INSTALL_SUFFIX :=3D diff --git a/xen/Makefile b/xen/Makefile index 9f3be7766d..3a1ff0045b 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -26,7 +26,9 @@ MAKEFLAGS +=3D -rR EFI_MOUNTPOINT ?=3D $(BOOT_DIR)/efi =20 ARCH=3D$(XEN_TARGET_ARCH) -SRCARCH=3D$(shell echo $(ARCH) | sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)= /arm/g') +SRCARCH=3D$(shell echo $(ARCH) | \ + sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \ + -e s'/riscv.*/riscv/g') =20 # Don't break if the build process wasn't called from the top level # we need XEN_TARGET_ARCH to generate the proper config @@ -35,7 +37,8 @@ include $(XEN_ROOT)/Config.mk # Set ARCH/SUBARCH appropriately. export TARGET_SUBARCH :=3D $(XEN_TARGET_ARCH) export TARGET_ARCH :=3D $(shell echo $(XEN_TARGET_ARCH) | \ - sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/= g') + sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/= g' \ + -e s'/riscv.*/riscv/g') =20 # Allow someone to change their config file export KCONFIG_CONFIG ?=3D .config @@ -335,6 +338,7 @@ _clean: delete-unfresh-files $(MAKE) $(clean) xsm $(MAKE) $(clean) crypto $(MAKE) $(clean) arch/arm + $(MAKE) $(clean) arch/riscv $(MAKE) $(clean) arch/x86 $(MAKE) $(clean) test $(MAKE) -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=3D$(ARCH) SRCAR= CH=3D$(SRCARCH) clean diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig new file mode 100644 index 0000000000..bd8381c5e0 --- /dev/null +++ b/xen/arch/riscv/Kconfig @@ -0,0 +1,47 @@ +config RISCV + def_bool y + +config RISCV_64 + def_bool y + select 64BIT + +config ARCH_DEFCONFIG + string + default "arch/riscv/configs/tiny64_defconfig" + +menu "Architecture Features" + +source "arch/Kconfig" + +endmenu + +menu "ISA Selection" + +choice + prompt "Base ISA" + default RISCV_ISA_RV64IMA if RISCV_64 + help + This selects the base ISA extensions that Xen will target. + +config RISCV_ISA_RV64IMA + bool "RV64IMA" + help + Use the RV64I base ISA, plus the "M" and "A" extensions + for integer multiply/divide and atomic instructions, respectively. + +endchoice + +config RISCV_ISA_C + bool "Compressed extension" + help + Add "C" to the ISA subsets that the toolchain is allowed to + emit when building Xen, which results in compressed instructions + in the Xen binary. + + If unsure, say N. + +endmenu + +source "common/Kconfig" + +source "drivers/Kconfig" diff --git a/xen/arch/riscv/Kconfig.debug b/xen/arch/riscv/Kconfig.debug new file mode 100644 index 0000000000..e69de29bb2 diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile new file mode 100644 index 0000000000..e69de29bb2 diff --git a/xen/arch/riscv/Rules.mk b/xen/arch/riscv/Rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/xen/arch/riscv/arch.mk b/xen/arch/riscv/arch.mk new file mode 100644 index 0000000000..53dadb8975 --- /dev/null +++ b/xen/arch/riscv/arch.mk @@ -0,0 +1,14 @@ +######################################## +# RISCV-specific definitions + +CFLAGS-$(CONFIG_RISCV_64) +=3D -mabi=3Dlp64 + +riscv-march-$(CONFIG_RISCV_ISA_RV64IMA) :=3D rv64ima +riscv-march-$(CONFIG_RISCV_ISA_C) :=3D $(riscv-march-y)c + +# Note that -mcmodel=3Dmedany is used so that Xen can be mapped +# into the upper half _or_ the lower half of the address space. +# -mcmodel=3Dmedlow would force Xen into the lower half. + +CFLAGS +=3D -march=3D$(riscv-march-y) -mstrict-align -mcmodel=3Dmedany +CFLAGS +=3D -I$(BASEDIR)/include diff --git a/xen/arch/riscv/asm-offsets.c b/xen/arch/riscv/asm-offsets.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/xen/arch/riscv/configs/tiny64_defconfig b/xen/arch/riscv/confi= gs/tiny64_defconfig new file mode 100644 index 0000000000..3c9a2ff941 --- /dev/null +++ b/xen/arch/riscv/configs/tiny64_defconfig @@ -0,0 +1,13 @@ +# CONFIG_SCHED_CREDIT is not set +# CONFIG_SCHED_RTDS is not set +# CONFIG_SCHED_NULL is not set +# CONFIG_SCHED_ARINC653 is not set +# CONFIG_TRACEBUFFER is not set +# CONFIG_HYPFS is not set +# CONFIG_GRANT_TABLE is not set +# CONFIG_SPECULATIVE_HARDEN_ARRAY is not set + +CONFIG_RISCV_64=3Dy +CONFIG_DEBUG=3Dy +CONFIG_DEBUG_INFO=3Dy +CONFIG_EXPERT=3Dy diff --git a/xen/arch/riscv/head.S b/xen/arch/riscv/head.S new file mode 100644 index 0000000000..0dbc27ba75 --- /dev/null +++ b/xen/arch/riscv/head.S @@ -0,0 +1,6 @@ +#include + + .text + +ENTRY(start) + j start diff --git a/xen/include/asm-riscv/config.h b/xen/include/asm-riscv/config.h new file mode 100644 index 0000000000..e2ae21de61 --- /dev/null +++ b/xen/include/asm-riscv/config.h @@ -0,0 +1,47 @@ +#ifndef __RISCV_CONFIG_H__ +#define __RISCV_CONFIG_H__ + +#if defined(CONFIG_RISCV_64) +# define LONG_BYTEORDER 3 +# define ELFSIZE 64 +# define MAX_VIRT_CPUS 128u +#else +# error "Unsupported RISCV variant" +#endif + +#define BYTES_PER_LONG (1 << LONG_BYTEORDER) +#define BITS_PER_LONG (BYTES_PER_LONG << 3) +#define POINTER_ALIGN BYTES_PER_LONG + +#define BITS_PER_LLONG 64 + +/* xen_ulong_t is always 64 bits */ +#define BITS_PER_XEN_ULONG 64 + +#define CONFIG_RISCV_L1_CACHE_SHIFT 6 +#define CONFIG_PAGEALLOC_MAX_ORDER 18 +#define CONFIG_DOMU_MAX_ORDER 9 +#define CONFIG_HWDOM_MAX_ORDER 10 + +#define OPT_CONSOLE_STR "dtuart" +#define INVALID_VCPU_ID MAX_VIRT_CPUS + +/* Linkage for RISCV */ +#ifdef __ASSEMBLY__ +#define ALIGN .align 2 + +#define ENTRY(name) \ + .globl name; \ + ALIGN; \ + name: +#endif + +#endif /* __RISCV_CONFIG_H__ */ +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ --=20 2.31.1 From nobody Sat Apr 27 21:40:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621866879; cv=none; d=zohomail.com; s=zohoarc; b=W0evXlRbnwthBCX/0zAdoH03XLqVAMrRBG/rSTPtbTFZHbcPKncDotkOMXeHFZK96zGqtPPzrLEE7y/BTri6kGnbyzqM39X2vyFMkJ/P3waUUV5uca+6CtNQMV1WiCNBH4OGjgpm/uvwAgL9EkJ2aycw/2eC/fZux4Ygj2Us7Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621866879; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RTdpcVmRCgop2NexjHiymnhaCvkDQbmbyYol6ymHZ0c=; b=WpN6AFQ9Gt9chVFpFe7s03NIsCBadXQffYPE9SNTK3wQEqeaKq0fhh5cUp2kCgc1iVqJTWFSOKVb4/KcJv2Qdnb0PjRkuqdk4tEYYGj0Q4qzfkcVaJV+KYk3bw2P2xcP3OnuCxmml8iRmZIAD96hk0Fyj2CAQ95QTMlnqdOBmbQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621866879013409.2361540806728; Mon, 24 May 2021 07:34:39 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.131795.246177 (Exim 4.92) (envelope-from ) id 1llBf1-0007Mi-CU; Mon, 24 May 2021 14:34:27 +0000 Received: by outflank-mailman (output) from mailman id 131795.246177; Mon, 24 May 2021 14:34:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBf1-0007MR-8V; Mon, 24 May 2021 14:34:27 +0000 Received: by outflank-mailman (input) for mailman id 131795; Mon, 24 May 2021 14:34:26 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llBf0-0005zC-61 for xen-devel@lists.xenproject.org; Mon, 24 May 2021 14:34:26 +0000 Received: from mail-ot1-x329.google.com (unknown [2607:f8b0:4864:20::329]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id a12a2de7-aaba-43cb-bf74-89ba5790a82e; Mon, 24 May 2021 14:34:12 +0000 (UTC) Received: by mail-ot1-x329.google.com with SMTP id 66-20020a9d02c80000b02903615edf7c1aso3513289otl.13 for ; Mon, 24 May 2021 07:34:12 -0700 (PDT) Received: from localhost.localdomain (142-79-211-230.starry-inc.net. [142.79.211.230]) by smtp.gmail.com with ESMTPSA id p22sm2840564oop.7.2021.05.24.07.34.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 May 2021 07:34:11 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a12a2de7-aaba-43cb-bf74-89ba5790a82e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RTdpcVmRCgop2NexjHiymnhaCvkDQbmbyYol6ymHZ0c=; b=DSO2OyD5D9kLgCVqNzrAi7JG6GGuxr2HFfxpL5r9b2U1dLCDw+K6qYCC5CA6jdM1QV KI0AtKZHzIbGrpzw/Z2yIt9hJe1t9Q0LJb+mo2MHSIs7abKua9k1oSktcEt4+D2qzgFa lG+iMQfclCjhF7I052CgVYvUBArqF4qtDTEtS2xGOe67G24wcX8dtX1uaLzlwDN2Gitk ddTg5Fnf1TXMXDh8DnLIAVVw/c1E1iwgDwQOJh5dqc8c+h88iWDVeusXfQU/zXNFASSE gsvIFMePrNIYTKIkkumGyURco4W3DZQ9r2Vm1tLtzsDx4qFf/LOfqtE9njEc1VIFzpwK oAQQ== 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:mime-version:content-transfer-encoding; bh=RTdpcVmRCgop2NexjHiymnhaCvkDQbmbyYol6ymHZ0c=; b=EwrDXVKt/U8r59l6s11p1VK36r/AK6t5DhrABRWYyOV6lQ52bdKKScwSvggWOgmAdN UEjUBQnGBnyzOhP9vxtdT9ZMPk6pjRQd7a13Y6cwLKzZw02tmyJ9FMVGzS5HeaLoHFlL oUfgFMzxrfmlaxzwnBEwErWOvNm8dHjL23hBaRnP9Pk+R8lpD1yWELmn59k60a6kVgap BJXCuuIGUhYOBcnQWmxTOWihqqdhtqx6G3xq9fM39HtqK7hsNTyft3OyFy1fr4Q9FrUI qGIsmiECenFz9bLAwnUeZ03cCMx8JmSDeLqhM6NhOi4aSbuSfKIylLcIffIM4JWqJ4Pp UnQg== X-Gm-Message-State: AOAM532xv+6C2P6rcc8+K4GPWmRuDDTxvaCqYcZ3icngbxb5XFUYFD99 XkZ7ZBosO2MW3MQz3N0WB/gQohHwHOf+9g== X-Google-Smtp-Source: ABdhPJzGTihKkS6tM2uyS4Otw8RMydzhTSScHWdE1C1EXcQp6qQnRPQ5ke+MftA703SlnjRukwOfxQ== X-Received: by 2002:a9d:855:: with SMTP id 79mr18230805oty.36.1621866852191; Mon, 24 May 2021 07:34:12 -0700 (PDT) From: Connor Davis To: xen-devel@lists.xenproject.org Cc: Bobby Eshleman , Alistair Francis , Connor Davis , Doug Goldstein Subject: [PATCH v4 4/4] automation: Add container for riscv64 builds Date: Mon, 24 May 2021 08:34:28 -0600 Message-Id: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Add a container for cross-compiling xen to riscv64. This just includes the cross-compiler and necessary packages for building xen itself (packages for tools, stubdoms, etc., can be added later). Signed-off-by: Connor Davis --- automation/build/archlinux/riscv64.dockerfile | 19 +++++++++++++++++++ automation/scripts/containerize | 1 + 2 files changed, 20 insertions(+) create mode 100644 automation/build/archlinux/riscv64.dockerfile diff --git a/automation/build/archlinux/riscv64.dockerfile b/automation/bui= ld/archlinux/riscv64.dockerfile new file mode 100644 index 0000000000..ff8b2b955d --- /dev/null +++ b/automation/build/archlinux/riscv64.dockerfile @@ -0,0 +1,19 @@ +FROM archlinux +LABEL maintainer.name=3D"The Xen Project" \ + maintainer.email=3D"xen-devel@lists.xenproject.org" + +# Packages needed for the build +RUN pacman --noconfirm --needed -Syu \ + base-devel \ + git \ + inetutils \ + riscv64-linux-gnu-binutils \ + riscv64-linux-gnu-gcc \ + riscv64-linux-gnu-glibc + +# Add compiler path +ENV CROSS_COMPILE=3Driscv64-linux-gnu- + +RUN useradd --create-home user +USER user +WORKDIR /build diff --git a/automation/scripts/containerize b/automation/scripts/container= ize index b7c81559fb..59edf0ba40 100755 --- a/automation/scripts/containerize +++ b/automation/scripts/containerize @@ -26,6 +26,7 @@ BASE=3D"registry.gitlab.com/xen-project/xen" case "_${CONTAINER}" in _alpine) CONTAINER=3D"${BASE}/alpine:3.12" ;; _archlinux|_arch) CONTAINER=3D"${BASE}/archlinux:current" ;; + _riscv64) CONTAINER=3D"${BASE}/archlinux:riscv64" ;; _centos7) CONTAINER=3D"${BASE}/centos:7" ;; _centos72) CONTAINER=3D"${BASE}/centos:7.2" ;; _fedora) CONTAINER=3D"${BASE}/fedora:29";; --=20 2.31.1