From patchwork Fri Sep 23 18:53:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Edgar E. Iglesias" X-Patchwork-Id: 9348601 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BDFC9607D0 for ; Fri, 23 Sep 2016 18:55:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AAFF22AD6A for ; Fri, 23 Sep 2016 18:55:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9FEC32AD73; Fri, 23 Sep 2016 18:55:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 498A12AD53 for ; Fri, 23 Sep 2016 18:55:48 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnVbG-0005ZY-0n; Fri, 23 Sep 2016 18:53:30 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnVbE-0005Yf-DE for xen-devel@lists.xen.org; Fri, 23 Sep 2016 18:53:28 +0000 Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id 0C/6C-01945-72A75E75; Fri, 23 Sep 2016 18:53:27 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsXiVRvkoqte9TT cYOtsJoslHxezODB6HN39mymAMYo1My8pvyKBNeP/5jnsBWdEKz4cimxg7BLsYuTiEBKYyCjx eXcXG4jDIvCSRWLuir/MII6EQD+rxNK7U1m7GDmBnBiJH99XsUDYlRK/755iB7GFBNQlTr/bw QYxajqTxIXVv8Ea2ARMJPb+ecAEYosISEtc+3yZEcRmFvCVuLnzOFhcWCBQYtajNWBxFgFViY s7TjOD2LwCHhKXn5yGWiYncfNcJ1icU8BTYmP/BiaIxR4SP/b9Y5/AKLCAkWEVo0ZxalFZapG ukYVeUlFmekZJbmJmjq6hgbFebmpxcWJ6ak5iUrFecn7uJkZgaNUzMDDuYGw/4XeIUZKDSUmU V8ntabgQX1J+SmVGYnFGfFFpTmrxIUYZDg4lCV4HA6CcYFFqempFWmYOMMhh0hIcPEoivGKVQ Gne4oLE3OLMdIjUKUZdji1T761lEmLJy89LlRLn5QUpEgApyijNgxsBi7hLjLJSwryMDAwMQj wFqUW5mSWo8q8YxTkYlYR5hUCm8GTmlcBtegV0BBPQEd/uPAE5oiQRISXVwDg542Rk6bYSz3i X7RpL7hw4Ku+cW8GyIerpTZnloh3fJc4XVD5wUfYobzI98r+ouV+9zkLved+svWzHHAxNepy1 io4YGNbx8CipXysI2q/C8Kn/47u1J2YmR9VdNrZ1XXB2hu3V1+pfbxecXJ85y7qn6Jhl+OtzU YIPXzi+LdMzDQiW2avjp8RSnJFoqMVcVJwIAL+H4iKzAgAA X-Env-Sender: edgar.iglesias@gmail.com X-Msg-Ref: server-11.tower-31.messagelabs.com!1474656806!31512603!1 X-Originating-IP: [74.125.82.68] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.84; banners=-,-,- X-VirusChecked: Checked Received: (qmail 40072 invoked from network); 23 Sep 2016 18:53:27 -0000 Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com) (74.125.82.68) by server-11.tower-31.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 23 Sep 2016 18:53:27 -0000 Received: by mail-wm0-f68.google.com with SMTP id b184so4123855wma.3 for ; Fri, 23 Sep 2016 11:53:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qUdzYSZFePa0d3m+wEUO0Zh/OoBDDpjPC9PV1RogGMQ=; b=IqqBjZ8gEPB3WAbZBNhUvS1bLiQWrOxFS6zefDbpgAYEBMlWsLDbafaXzEsz4oN/Yh 29CKUG+TQTLjmsCpjjkSYZBmMEpFETTxxYM/4CnLE5EFFaE8IDf6oWeGIOO3DMwjn6ZK 4epWSnBGXIP/0MDaMhp3iZrQiHBv7hYb+feVeLvBOoFJ6DdlaGOuWModx4w1xgPMx9fz uyLdYfqBe1QVEPCF9awjwn0sK6Te1AtaNoe5N/SPCCI36cb8Hp3oUwlyffuDJ3+GRIjT wJ0U6ZpXV0tkMF4FHt97eovKqdo4fI4VqyO4iHJR6iQdltO2M83V9SjjCuhIWVzMn166 50fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qUdzYSZFePa0d3m+wEUO0Zh/OoBDDpjPC9PV1RogGMQ=; b=jXvevVpKqb6P4NVT+0anSqiyVDGi7rkvA99nuJ6f3w3kYMwFeKNRcCPT7JILzXS6Lx PJZYwMNFyqMvwxgeLWqpjerHRe3cCTYjtI/Iv1FBCN/Udli5Mfq/XA5INkJ+9ylqa6Q5 VFWnIetK1tlkBaq/F701bjP3lMNq085V3U+KMCPfPkyZWTPVPEImTLRK/pbXODZxhN5d JV+aHv8UjRXPBRSuST3UuB0yRjunbRjEp+e6+3K0+dR1K/X08hq7DJPooqAoGGQxiXIs r+cyQShDl09HLXzy5smmwn9fA1KpATukmXh1NigVfZqQn5YfX9MbGbK2vRZbljE9ZgMc I3wA== X-Gm-Message-State: AE9vXwOcu+6x5n4oh49j0OP49LkaFKsj1NM2nHCEEPWNxB02b9IIcKcce34ntnrS2VtthA== X-Received: by 10.194.234.69 with SMTP id uc5mr8135703wjc.76.1474656806629; Fri, 23 Sep 2016 11:53:26 -0700 (PDT) Received: from localhost (81-231-233-234-no56.tbcn.telia.com. [81.231.233.234]) by smtp.gmail.com with ESMTPSA id z4sm4400935wmg.19.2016.09.23.11.53.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Sep 2016 11:53:26 -0700 (PDT) From: "Edgar E. Iglesias" To: xen-devel@lists.xen.org Date: Fri, 23 Sep 2016 20:53:17 +0200 Message-Id: <1474656802-24081-3-git-send-email-edgar.iglesias@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1474656802-24081-1-git-send-email-edgar.iglesias@gmail.com> References: <1474656802-24081-1-git-send-email-edgar.iglesias@gmail.com> Cc: edgar.iglesias@xilinx.com, julien.grall@arm.com, sstabellini@kernel.org Subject: [Xen-devel] [PATCH v4 2/7] xen/arm: p2m: Add support for normal non-cacheable memory X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: "Edgar E. Iglesias" Add support for describing normal non-cacheable memory. Signed-off-by: Edgar E. Iglesias Acked-by: Julien Grall --- xen/arch/arm/p2m.c | 19 +++++++++++++++++++ xen/include/asm-arm/p2m.h | 1 + xen/include/asm-arm/page.h | 1 + 3 files changed, 21 insertions(+) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index c3b1233..9912658 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -296,6 +296,7 @@ static void p2m_set_permission(lpae_t *e, p2m_type_t t, p2m_access_t a) case p2m_map_foreign: case p2m_grant_map_rw: case p2m_mmio_direct_dev: + case p2m_mmio_direct_nc: case p2m_mmio_direct_c: e->p2m.xn = 1; e->p2m.write = 1; @@ -376,6 +377,24 @@ static lpae_t mfn_to_p2m_entry(mfn_t mfn, p2m_type_t t, p2m_access_t a) e.p2m.sh = LPAE_SH_OUTER; break; + /* + * ARM ARM: Overlaying the shareability attribute (DDI + * 0406C.b B3-1376 to 1377) + * + * A memory region with a resultant memory type attribute of Normal, + * and a resultant cacheability attribute of Inner Non-cacheable, + * Outer Non-cacheable, must have a resultant shareability attribute + * of Outer Shareable, otherwise shareability is UNPREDICTABLE. + * + * On ARMv8 shareability is ignored and explicitly treated as Outer + * Shareable for Normal Inner Non_cacheable, Outer Non-cacheable. + * See the note for table D4-40, in page 1788 of the ARM DDI 0487A.j. + */ + case p2m_mmio_direct_nc: + e.p2m.mattr = MATTR_MEM_NC; + e.p2m.sh = LPAE_SH_OUTER; + break; + default: e.p2m.mattr = MATTR_MEM; e.p2m.sh = LPAE_SH_INNER; diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h index b342122..9708fdc 100644 --- a/xen/include/asm-arm/p2m.h +++ b/xen/include/asm-arm/p2m.h @@ -92,6 +92,7 @@ typedef enum { p2m_ram_rw, /* Normal read/write guest RAM */ p2m_ram_ro, /* Read-only; writes are silently dropped */ p2m_mmio_direct_dev,/* Read/write mapping of genuine Device MMIO area */ + p2m_mmio_direct_nc, /* Read/write mapping of genuine MMIO area non-cacheable */ p2m_mmio_direct_c, /* Read/write mapping of genuine MMIO area cacheable */ p2m_map_foreign, /* Ram pages from foreign domain */ p2m_grant_map_rw, /* Read/write grant mapping */ diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h index 015ed63..f50fe60 100644 --- a/xen/include/asm-arm/page.h +++ b/xen/include/asm-arm/page.h @@ -84,6 +84,7 @@ * */ #define MATTR_DEV 0x1 +#define MATTR_MEM_NC 0x5 #define MATTR_MEM 0xf /* Flags for get_page_from_gva, gvirt_to_maddr etc */