From: Bhupinder Thakur <bhupinder.thakur@linaro.org>
To: xen-devel@lists.xenproject.org
Cc: Wei Liu <wei.liu2@citrix.com>,
Julien Grall <julien.grall@arm.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Ian Jackson <ian.jackson@eu.citrix.com>
Subject: [PATCH 05/10] xen/arm: vpl011: Allocate a new PFN in the toolstack for the virtual console
Date: Mon, 3 Apr 2017 15:14:28 +0530 [thread overview]
Message-ID: <1491212673-13476-6-git-send-email-bhupinder.thakur@linaro.org> (raw)
In-Reply-To: <1491212673-13476-1-git-send-email-bhupinder.thakur@linaro.org>
1. Allocate a new pfn and pass on to Xen using a hvm call.
2. Change in xc_hvm_param_deprecated_check () to allow new vpl011 HVM params,
which are reusing some deprecated x86 HVM params.
Signed-off-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
---
tools/libxc/include/xc_dom.h | 3 +++
tools/libxc/xc_dom_arm.c | 7 ++++++-
tools/libxc/xc_dom_boot.c | 3 +++
tools/libxc/xc_domain.c | 7 +++++++
4 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h
index 608cbc2..c93d98c 100644
--- a/tools/libxc/include/xc_dom.h
+++ b/tools/libxc/include/xc_dom.h
@@ -218,6 +218,9 @@ struct xc_dom_image {
/* Extra SMBIOS structures passed to HVMLOADER */
struct xc_hvm_firmware_module smbios_module;
+
+ /* Virtual console pfn. */
+ xen_pfn_t vconsole_pfn;
};
/* --- pluggable kernel loader ------------------------------------- */
diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
index a7e839e..157381e 100644
--- a/tools/libxc/xc_dom_arm.c
+++ b/tools/libxc/xc_dom_arm.c
@@ -26,10 +26,11 @@
#include "xg_private.h"
#include "xc_dom.h"
-#define NR_MAGIC_PAGES 3
+#define NR_MAGIC_PAGES 4
#define CONSOLE_PFN_OFFSET 0
#define XENSTORE_PFN_OFFSET 1
#define MEMACCESS_PFN_OFFSET 2
+#define VCONSOLE_PFN_OFFSET 3
#define LPAE_SHIFT 9
@@ -85,6 +86,7 @@ static int alloc_magic_pages(struct xc_dom_image *dom)
dom->console_pfn = base + CONSOLE_PFN_OFFSET;
dom->xenstore_pfn = base + XENSTORE_PFN_OFFSET;
+ dom->vconsole_pfn = base + VCONSOLE_PFN_OFFSET;
xc_clear_domain_page(dom->xch, dom->guest_domid, dom->console_pfn);
xc_clear_domain_page(dom->xch, dom->guest_domid, dom->xenstore_pfn);
@@ -95,6 +97,9 @@ static int alloc_magic_pages(struct xc_dom_image *dom)
dom->xenstore_pfn);
xc_hvm_param_set(dom->xch, dom->guest_domid, HVM_PARAM_MONITOR_RING_PFN,
base + MEMACCESS_PFN_OFFSET);
+ xc_hvm_param_set(dom->xch, dom->guest_domid, HVM_PARAM_VCONSOLE_PFN,
+ base + VCONSOLE_PFN_OFFSET);
+
/* allocated by toolstack */
xc_hvm_param_set(dom->xch, dom->guest_domid, HVM_PARAM_CONSOLE_EVTCHN,
dom->console_evtchn);
diff --git a/tools/libxc/xc_dom_boot.c b/tools/libxc/xc_dom_boot.c
index 791041b..ec91b15 100644
--- a/tools/libxc/xc_dom_boot.c
+++ b/tools/libxc/xc_dom_boot.c
@@ -227,6 +227,9 @@ int xc_dom_boot_image(struct xc_dom_image *dom)
if ( (rc = clear_page(dom, dom->xenstore_pfn)) != 0 )
return rc;
+ if ( (rc = clear_page(dom, dom->vconsole_pfn)) != 0 )
+ return rc;
+
/* start info page */
if ( dom->arch_hooks->start_info )
dom->arch_hooks->start_info(dom);
diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
index fa1daeb..8ac7d4f 100644
--- a/tools/libxc/xc_domain.c
+++ b/tools/libxc/xc_domain.c
@@ -1337,9 +1337,16 @@ static inline int xc_hvm_param_deprecated_check(uint32_t param)
{
switch ( param )
{
+ /*
+ * For Aarch64 the following three parameters are reused and hence this
+ * empty check to avoid returning an error.
+ */
+#if defined (__arm__) || defined(__aarch64__)
+#else
case HVM_PARAM_MEMORY_EVENT_CR0:
case HVM_PARAM_MEMORY_EVENT_CR3:
case HVM_PARAM_MEMORY_EVENT_CR4:
+#endif
case HVM_PARAM_MEMORY_EVENT_INT3:
case HVM_PARAM_MEMORY_EVENT_SINGLE_STEP:
case HVM_PARAM_MEMORY_EVENT_MSR:
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-04-03 9:45 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-03 9:44 [PATCH 00/10] pl011 emulation support in Xen Bhupinder Thakur
2017-04-03 9:44 ` [PATCH 01/10] xen/arm: vpl011: Add pl011 uart emulation " Bhupinder Thakur
2017-04-12 16:32 ` Wei Liu
2017-04-19 0:15 ` Stefano Stabellini
2017-04-19 7:28 ` Bhupinder Thakur
2017-04-19 8:36 ` Julien Grall
2017-04-19 18:40 ` Stefano Stabellini
2017-04-25 7:31 ` Bhupinder Thakur
2017-04-25 17:56 ` Stefano Stabellini
2017-04-26 7:49 ` Bhupinder Thakur
2017-04-26 8:13 ` Julien Grall
2017-04-26 17:03 ` Stefano Stabellini
2017-04-03 9:44 ` [PATCH 02/10] xen/arm: vpl011: Add new virtual console hvm params " Bhupinder Thakur
2017-04-19 0:22 ` Stefano Stabellini
2017-04-19 8:48 ` Bhupinder Thakur
2017-04-03 9:44 ` [PATCH 03/10] xen/arm: vpl011: Enable pl011 emulation for a guest domain " Bhupinder Thakur
2017-04-19 0:27 ` Stefano Stabellini
2017-04-03 9:44 ` [PATCH 04/10] xen/arm: vpl011: Provide a knob in libxl to enable/disable pl011 emulation Bhupinder Thakur
2017-04-12 16:32 ` Wei Liu
2017-04-13 8:19 ` Bhupinder Thakur
2017-04-13 8:37 ` Wei Liu
2017-04-19 0:29 ` Stefano Stabellini
2017-04-19 9:17 ` Bhupinder Thakur
2017-04-19 10:25 ` Wei Liu
2017-04-19 11:06 ` Julien Grall
2017-04-03 9:44 ` Bhupinder Thakur [this message]
2017-04-12 16:33 ` [PATCH 05/10] xen/arm: vpl011: Allocate a new PFN in the toolstack for the virtual console Wei Liu
2017-04-13 8:37 ` Bhupinder Thakur
2017-04-13 8:53 ` Wei Liu
2017-04-19 0:36 ` Stefano Stabellini
2017-04-19 10:28 ` Wei Liu
2017-04-19 11:01 ` Julien Grall
2017-04-19 13:05 ` Bhupinder Thakur
2017-04-19 13:35 ` Julien Grall
2017-04-03 9:44 ` [PATCH 06/10] xen/arm: vpl011: Add new parameters to xenstore " Bhupinder Thakur
2017-04-12 16:32 ` Wei Liu
2017-04-25 10:18 ` Bhupinder Thakur
2017-04-25 11:55 ` Wei Liu
2017-04-19 18:58 ` Stefano Stabellini
2017-04-03 9:44 ` [PATCH 07/10] xen/arm: vpl011: Add a new console type to domain structure in xenconsole Bhupinder Thakur
2017-04-12 16:33 ` Wei Liu
2017-04-13 9:49 ` Bhupinder Thakur
2017-04-19 19:09 ` Stefano Stabellini
2017-04-03 9:44 ` [PATCH 08/10] xen/arm: vpl011: Modify the APIs in xenconsole to acces both PV and VCON consoles Bhupinder Thakur
2017-04-12 16:33 ` Wei Liu
2017-04-24 14:52 ` Bhupinder Thakur
2017-04-03 9:44 ` [PATCH 09/10] xen/arm: vpl011: Add new virtual console to xenconsole client Bhupinder Thakur
2017-04-19 18:55 ` Stefano Stabellini
2017-04-03 9:44 ` [PATCH 10/10] xen/arm: vpl011: Add a pl011 uart DT node in the guest device tree Bhupinder Thakur
2017-04-19 18:53 ` Stefano Stabellini
2017-04-20 12:47 ` [PATCH 00/10] pl011 emulation support in Xen Julien Grall
2017-04-26 15:21 ` Bhupinder Thakur
2017-04-26 17:09 ` Stefano Stabellini
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=1491212673-13476-6-git-send-email-bhupinder.thakur@linaro.org \
--to=bhupinder.thakur@linaro.org \
--cc=ian.jackson@eu.citrix.com \
--cc=julien.grall@arm.com \
--cc=sstabellini@kernel.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.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).