From: Ian Campbell <ian.campbell@citrix.com>
To: tim@xen.org, stefano.stabellini@eu.citrix.com,
julien.grall@linaro.org, ian.jackson@eu.citrix.com
Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
Subject: [PATCH v5 8/9] tools: arm: support up to (almost) 1TB of guest RAM
Date: Thu, 22 May 2014 10:46:43 +0100 [thread overview]
Message-ID: <1400752004-9731-8-git-send-email-ian.campbell@citrix.com> (raw)
In-Reply-To: <1400751582.11409.46.camel@kazak.uk.xensource.com>
This creates a second bank of RAM starting at 8GB and potentially
extending to the 1TB boundary, which is the limit imposed by our
current use of a 3 level p2m with 2 pages at level 0 (2^40 bits).
I've deliberately left a gap between the two banks just to
exercise those code paths.
The second bank is 1016GB in size which plus the 3GB below 4GB is
1019GB maximum guest RAM. At the point where the fact that this
is slightly less than a full TB starts to become an issue for
people then we can switch to a 4 level p2m, which would be needed
to support guests larger than 1TB anyhow.
Tested on 32-bit with 1, 4 and 6GB guests. Anything more than
~3GB requires an LPAE enabled kernel, or a 64-bit guest.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
v5: Use GUEST_RAM_BANK_{SIZE,BASE}S.
v4: Significantly reworked (simplified) due to changes in earlier patches.
Removed existing Acks.
v3: remove inadvertent whitespace change
---
xen/include/public/arch-arm.h | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index ea74295..fd30782 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -375,17 +375,20 @@ typedef uint64_t xen_callback_t;
#define GUEST_MAGIC_BASE 0x39000000ULL
#define GUEST_MAGIC_SIZE 0x01000000ULL
-#define GUEST_RAM_BANKS 1
+#define GUEST_RAM_BANKS 2
-#define GUEST_RAM0_BASE 0x40000000ULL /* 3GB of RAM @ 1GB */
+#define GUEST_RAM0_BASE 0x40000000ULL /* 3GB of low RAM @ 1GB */
#define GUEST_RAM0_SIZE 0xc0000000ULL
+#define GUEST_RAM1_BASE 0x0200000000ULL /* 1016GB of RAM @ 8GB */
+#define GUEST_RAM1_SIZE 0xfe00000000ULL
+
#define GUEST_RAM_BASE GUEST_RAM0_BASE /* Lowest RAM address */
/* Largest amount of actual RAM, not including holes */
-#define GUEST_RAM_MAX (GUEST_RAM0_SIZE)
+#define GUEST_RAM_MAX (GUEST_RAM0_SIZE + GUEST_RAM1_SIZE)
/* Suitable for e.g. const uint64_t ramfoo[] = GUEST_RAM_BANK_FOOS; */
-#define GUEST_RAM_BANK_BASES { GUEST_RAM0_BASE }
-#define GUEST_RAM_BANK_SIZES { GUEST_RAM0_SIZE }
+#define GUEST_RAM_BANK_BASES { GUEST_RAM0_BASE, GUEST_RAM1_BASE }
+#define GUEST_RAM_BANK_SIZES { GUEST_RAM0_SIZE, GUEST_RAM1_SIZE }
/* Interrupts */
#define GUEST_TIMER_VIRT_PPI 27
--
1.7.10.4
next prev parent reply other threads:[~2014-05-22 9:46 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-22 9:39 [PATCH v5 0/9] xen: arm: support up to (almost) 1TB of guest RAM Ian Campbell
2014-05-22 9:46 ` [PATCH v5 1/9] tools: libxl: use uint64_t not unsigned long long for addresses Ian Campbell
2014-05-22 9:46 ` [PATCH v5 2/9] tools: arm: report an error if the guest RAM is too large Ian Campbell
2014-07-02 15:06 ` Ian Jackson
2014-05-22 9:46 ` [PATCH v5 3/9] tools: arm: move magic pfns out of guest RAM region Ian Campbell
2014-05-22 9:46 ` [PATCH v5 4/9] tools: arm: rearrange guest physical address space to increase max RAM Ian Campbell
2014-05-22 9:46 ` [PATCH v5 5/9] tools: arm: refactor code to setup guest p2m and fill it with RAM Ian Campbell
2014-05-22 16:50 ` Ian Jackson
2014-05-22 9:46 ` [PATCH v5 6/9] tools: arm: prepare domain builder for multiple banks of guest RAM Ian Campbell
2014-05-22 10:18 ` Julien Grall
2014-05-22 16:52 ` Ian Jackson
2014-05-22 9:46 ` [PATCH v5 7/9] tools: arm: prepare guest FDT building for multiple RAM banks Ian Campbell
2014-05-22 10:22 ` Julien Grall
2014-05-22 16:55 ` Ian Jackson
2014-05-23 8:43 ` Ian Campbell
2014-05-22 9:46 ` Ian Campbell [this message]
2014-05-22 10:25 ` [PATCH v5 8/9] tools: arm: support up to (almost) 1TB of guest RAM Julien Grall
2014-05-22 16:55 ` Ian Jackson
2014-05-22 9:46 ` [PATCH v5 9/9] tools: arm: increase size of region set aside for guest grant table Ian Campbell
2014-06-02 14:42 ` [PATCH v5 0/9] xen: arm: support up to (almost) 1TB of guest RAM Ian Campbell
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=1400752004-9731-8-git-send-email-ian.campbell@citrix.com \
--to=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=julien.grall@linaro.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).