From patchwork Wed Sep 7 06:56:12 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: 9318301 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 445F76077F for ; Wed, 7 Sep 2016 06:58:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 38C092909B for ; Wed, 7 Sep 2016 06:58:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2D4F42909D; Wed, 7 Sep 2016 06:58:34 +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=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, 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 CE6802909C for ; Wed, 7 Sep 2016 06:58:33 +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 1bhWmo-0000CD-Gs; Wed, 07 Sep 2016 06:56:42 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bhWmn-0000Ar-KW for xen-devel@lists.xen.org; Wed, 07 Sep 2016 06:56:41 +0000 Received: from [85.158.143.35] by server-6.bemta-6.messagelabs.com id 74/FA-11175-92ABFC75; Wed, 07 Sep 2016 06:56:41 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRWlGSWpSXmKPExsVyMfTAYV2NXef DDT6fULFY8nExiwOjx9Hdv5kCGKNYM/OS8isSWDOmtk9nLzgtUrF7RmID4wyBLkYuDiGBCYwS H/b8YgJxWAReskg0HtzJDuJICPSzSty4v5Gxi5ETyImRaJ52hA3CrpJonDsTLC4koC5x+t0ON ohR9xklvhyZxgySYBMwkdj75wETiC0iIC1x7fNlsAZmAV+JmzuPg8WFBQIlzre0AtkcQKtVJZ 58cAcxeQXcJRpPGkKskpM4eWwyK4jNKeAhMXP7S3aIte4Sez5NZZ7AKLCAkWEVo0ZxalFZapG ukbFeUlFmekZJbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkZgWDEAwQ7GP/MDDzFKcjApifJu nXQ+XIgvKT+lMiOxOCO+qDQntfgQowwHh5IEr+VOoJxgUWp6akVaZg4wwGHSEhw8SiK8s3cAp XmLCxJzizPTIVKnGC05tvy+tpaJY9nmO0By29R7a5mEWPLy81KlxHmNQeYJgDRklObBjYNF4S VGWSlhXkagA4V4ClKLcjNLUOVfMYpzMCoJ8yqATOHJzCuB2/oK6CAmoIPW7T4NclBJIkJKqoG xVS/VLLbMaqNdEssGp+2hfLntm3crf/P717l++p5z+p8tKwWMa2pVVZ3uS6n87tG/xZ1iPa1z ge6MJUon3rUqLpbl6vWpvXjzrPNSDwnmlOTZDa0iSyM9E/8nPBZmnf5Merry5qL/v+fLbPLS8 ZLO/fhQMlFGo+DPJh9R6XcXP192naJ+8LYSS3FGoqEWc1FxIgC6mcZ8vQIAAA== X-Env-Sender: edgar.iglesias@gmail.com X-Msg-Ref: server-5.tower-21.messagelabs.com!1473231399!31956381!1 X-Originating-IP: [209.85.192.195] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.84; banners=-,-,- X-VirusChecked: Checked Received: (qmail 17974 invoked from network); 7 Sep 2016 06:56:40 -0000 Received: from mail-pf0-f195.google.com (HELO mail-pf0-f195.google.com) (209.85.192.195) by server-5.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 7 Sep 2016 06:56:40 -0000 Received: by mail-pf0-f195.google.com with SMTP id 128so455823pfb.0 for ; Tue, 06 Sep 2016 23:56:40 -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=qNIjrcNFRYzxbiMHXK8jE6DPTTivUjuRyC+lO81HzEg=; b=UbX99iT/J6HS9+nrTQfq9eri1fjFFul33jtXiSuLvF0/mok2YIrcwzhvz1YnBgBhLW KEipL94RPF/CulDhSWPy4FoHdbdNHm6YxGkgvaNOZ2yTzaw0MmEu8yczxCJTK7jMsRET hJ2f5OIefgJAlrs8bUe6MXw550xAZGVV/l9z6H3JuRw+Gnz8Qb1fP8kTC2aFXMJ7KFkq Lxv76REG8LVq4gB92zBloiTZcOGBCibEOtJmmALyBVGhh9V4cZqXgCRlZlXb2SLohptR 7RgVY22RiF8yI0clejARK2RxL/O3zf478Pxwg21/OdWwT0yJieDGW5UmME1gUF+pnIKf yQBw== 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=qNIjrcNFRYzxbiMHXK8jE6DPTTivUjuRyC+lO81HzEg=; b=UUkj2aHEkLeqw3ZgZu3TxJRjFFCYtoO9qtsUmV9FdPr4uIQrr2kJGSQhMq18Pcj66I MHn1/DqkJWaH9oEjziXD558BATm8huCZmskLCxNPs/5iNfgkU8Ea8ARs6SJulhSAYOhP 3W6yAoruEYB7MWD7tNMIa7voELEO9aAQAKOYdzCD/iJh7+yyxNkJINzpirc2uLn1/GvM e9fJjVn6BWBvPiwuUC+qRev3NMXa++MxiMc+qK3hM65szt/bpZPi9MU2G2VOEGtiTNtK F93QVhLEIW/FGHSi2Kn/PGJn8qbALfcYDJ2QJLYvprkuC3E+t+l6ia5TcBHkswZlfZpr JAoA== X-Gm-Message-State: AE9vXwOm7dZ/97HfEKVoz8aMTItTdW7rUR6d6b00si2JKcOqojHf7RfW9joMqgc3qIAToQ== X-Received: by 10.98.34.156 with SMTP id p28mr18329001pfj.102.1473231383637; Tue, 06 Sep 2016 23:56:23 -0700 (PDT) Received: from localhost ([40.140.7.61]) by smtp.gmail.com with ESMTPSA id i7sm45915502paf.9.2016.09.06.23.56.22 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 06 Sep 2016 23:56:23 -0700 (PDT) From: "Edgar E. Iglesias" To: xen-devel@lists.xen.org Date: Wed, 7 Sep 2016 08:56:12 +0200 Message-Id: <1473231377-7800-2-git-send-email-edgar.iglesias@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1473231377-7800-1-git-send-email-edgar.iglesias@gmail.com> References: <1473231377-7800-1-git-send-email-edgar.iglesias@gmail.com> Cc: edgar.iglesias@xilinx.com, julien.grall@arm.com, sstabellini@kernel.org Subject: [Xen-devel] [PATCH v3 1/6] 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 --- xen/arch/arm/p2m.c | 18 ++++++++++++++++++ xen/include/asm-arm/p2m.h | 1 + xen/include/asm-arm/page.h | 1 + 3 files changed, 20 insertions(+) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index b648a9d..bfef77b 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -282,6 +282,7 @@ static void p2m_set_permission(lpae_t *e, p2m_type_t t, p2m_access_t a) /* First apply type permissions */ switch ( t ) { + case p2m_mem_nc: case p2m_ram_rw: e->p2m.xn = 0; e->p2m.write = 1; @@ -376,6 +377,23 @@ 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 sharability is ignored and explicitly treated as Outer + * Shareable for Normal Inner Non_cacheable, Outer Non-cacheable. + */ + case p2m_mem_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 53c4d78..b012d50 100644 --- a/xen/include/asm-arm/p2m.h +++ b/xen/include/asm-arm/p2m.h @@ -93,6 +93,7 @@ typedef enum { p2m_ram_ro, /* Read-only; writes are silently dropped */ 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_mem_nc, /* Read/write mapping of Non-cacheable Memory */ p2m_map_foreign, /* Ram pages from foreign domain */ p2m_grant_map_rw, /* Read/write grant mapping */ p2m_grant_map_ro, /* Read-only grant mapping */ diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h index 05d9f82..9adc973 100644 --- a/xen/include/asm-arm/page.h +++ b/xen/include/asm-arm/page.h @@ -73,6 +73,7 @@ * */ #define MATTR_DEV 0x1 +#define MATTR_MEM_NC 0x5 #define MATTR_MEM 0xf /* Flags for get_page_from_gva, gvirt_to_maddr etc */