All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tiejun Chen <tiejun.chen@intel.com>
To: JBeulich@suse.com, ian.jackson@eu.citrix.com,
	stefano.stabellini@eu.citrix.com, ian.campbell@citrix.com,
	yang.z.zhang@intel.com, kevin.tian@intel.com
Cc: xen-devel@lists.xen.org
Subject: [RFC][PATCH 1/5] xen:x86: record RMRR mappings
Date: Thu,  7 Aug 2014 19:02:47 +0800	[thread overview]
Message-ID: <1407409371-31728-2-git-send-email-tiejun.chen@intel.com> (raw)
In-Reply-To: <1407409371-31728-1-git-send-email-tiejun.chen@intel.com>

We will expose RMRR mappings to VM so need to record all
RMRR mappings firstly.

Signed-off-by: Tiejun Chen <tiejun.chen@intel.com>
---
 xen/arch/x86/e820.c                |  2 ++
 xen/drivers/passthrough/vtd/dmar.c | 15 +++++++++++++++
 xen/include/asm-x86/e820.h         |  1 +
 3 files changed, 18 insertions(+)

diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index 55fe0d6..53bb2cf 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -34,6 +34,8 @@ static bool_t __initdata e820_verbose;
 boolean_param("e820-verbose", e820_verbose);
 
 struct e820map e820;
+/* Used to record RMRR mapping. */
+struct e820map rmrr_e820;
 
 /*
  * This function checks if the entire range <start,end> is mapped with type.
diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
index 1152c3a..245a6cc 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -29,6 +29,7 @@
 #include <xen/pci.h>
 #include <xen/pci_regs.h>
 #include <asm/string.h>
+#include <asm/e820.h>
 #include "dmar.h"
 #include "iommu.h"
 #include "extern.h"
@@ -80,6 +81,19 @@ static int __init acpi_register_rmrr_unit(struct acpi_rmrr_unit *rmrr)
     return 0;
 }
 
+/* Record RMRR mapping to ready expose VM. */
+static int __init rmrr_e820_register(struct acpi_rmrr_unit *rmrr)
+{
+    static int i = 0;
+
+    rmrr_e820.map[i].addr = rmrr->base_address;
+    rmrr_e820.map[i].size = rmrr->end_address - rmrr->base_address;
+    rmrr_e820.map[i].type = E820_RESERVED;
+    rmrr_e820.nr_map = i;
+    i++;
+    return 0;
+}
+
 static void __init disable_all_dmar_units(void)
 {
     struct acpi_drhd_unit *drhd, *_drhd;
@@ -675,6 +689,7 @@ acpi_parse_one_rmrr(struct acpi_dmar_header *header)
                         " end_address %"PRIx64"\n",
                         rmrru->base_address, rmrru->end_address);
             acpi_register_rmrr_unit(rmrru);
+            rmrr_e820_register(rmrru);
         }
     }
 
diff --git a/xen/include/asm-x86/e820.h b/xen/include/asm-x86/e820.h
index 08b413d..8418fc4 100644
--- a/xen/include/asm-x86/e820.h
+++ b/xen/include/asm-x86/e820.h
@@ -32,6 +32,7 @@ extern int e820_add_range(
     struct e820map *, uint64_t s, uint64_t e, uint32_t type);
 extern unsigned long init_e820(const char *, struct e820entry *, int *);
 extern struct e820map e820;
+extern struct e820map rmrr_e820;
 
 /* These symbols live in the boot trampoline. */
 extern struct e820entry e820map[];
-- 
1.9.1

  reply	other threads:[~2014-08-07 11:02 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-07 11:02 [RFC][PATCH 0/5] xen: reserve RMRR to avoid conflicting MMIO/RAM Tiejun Chen
2014-08-07 11:02 ` Tiejun Chen [this message]
2014-08-08 15:36   ` [RFC][PATCH 1/5] xen:x86: record RMRR mappings Jan Beulich
2014-08-11  3:04     ` Chen, Tiejun
2014-08-11  6:51       ` Jan Beulich
2014-08-11  7:00         ` Chen, Tiejun
2014-08-11  8:42           ` Jan Beulich
2014-08-07 11:02 ` [RFC][PATCH 2/5] xen:x86: introduce a new hypercall to get " Tiejun Chen
2014-08-08 15:45   ` Jan Beulich
2014-08-12 10:55     ` Chen, Tiejun
2014-08-12 12:19       ` Jan Beulich
2014-08-13  0:40         ` Chen, Tiejun
2014-08-13 18:21           ` Tian, Kevin
2014-08-14  1:07             ` Chen, Tiejun
2014-08-14 16:51               ` Jan Beulich
2014-08-15  6:13                 ` Chen, Tiejun
2014-08-07 11:02 ` [RFC][PATCH 3/5] tools:libxc: remove mmio BAR out of " Tiejun Chen
2014-08-08 15:49   ` Jan Beulich
2014-08-08 21:33     ` Tian, Kevin
2014-08-12 10:56       ` Chen, Tiejun
2014-08-12 12:21         ` Jan Beulich
2014-08-12 10:55     ` Chen, Tiejun
2014-08-07 11:02 ` [RFC][PATCH 4/5] tools:firmware:hvmloader: reserve RMRR mappings in e820 Tiejun Chen
2014-08-07 12:03   ` Andrew Cooper
2014-08-08  2:11     ` Chen, Tiejun
2014-08-08  6:42       ` Jan Beulich
2014-08-08  7:30         ` Chen, Tiejun
2014-08-08  7:43           ` Jan Beulich
2014-08-08  8:39             ` Chen, Tiejun
2014-08-08  9:01               ` Jan Beulich
2014-08-08  9:28                 ` Chen, Tiejun
2014-08-08 15:53   ` Jan Beulich
2014-08-08 15:58     ` Andrew Cooper
2014-08-11  6:48       ` Jan Beulich
2014-08-12  7:59     ` Chen, Tiejun
2014-08-08 21:47   ` Tian, Kevin
2014-08-11  6:53     ` Jan Beulich
2014-08-11 16:00       ` Tian, Kevin
2014-08-12 10:59         ` Chen, Tiejun
2014-08-12 12:25           ` Jan Beulich
2014-08-13  0:57             ` Chen, Tiejun
2014-08-13 19:10               ` Tian, Kevin
2014-08-14  3:03                 ` Chen, Tiejun
2014-08-14 23:11                   ` Tian, Kevin
2014-08-15  8:21                     ` Chen, Tiejun
2014-08-12 10:56       ` Chen, Tiejun
2014-08-12 12:22         ` Jan Beulich
2014-08-12 10:56     ` Chen, Tiejun
2014-08-07 11:02 ` [RFC][PATCH 5/5] xen:vtd: make USB RMRR mapping safe Tiejun Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1407409371-31728-2-git-send-email-tiejun.chen@intel.com \
    --to=tiejun.chen@intel.com \
    --cc=JBeulich@suse.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=kevin.tian@intel.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=yang.z.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.