From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: [V9 PATCH 8/8] pvh dom0: add opt_dom0pvh to setup.c Date: Tue, 15 Apr 2014 17:12:52 -0700 Message-ID: <1397607172-32065-9-git-send-email-mukesh.rathor@oracle.com> References: <1397607172-32065-1-git-send-email-mukesh.rathor@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WaDTc-0002q6-0G for xen-devel@lists.xenproject.org; Wed, 16 Apr 2014 00:13:20 +0000 In-Reply-To: <1397607172-32065-1-git-send-email-mukesh.rathor@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: George.Dunlap@eu.citrix.com, keir.xen@gmail.com, tim@xen.org, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org A pvh dom0 is booted by adding dom0pvh to grub xen command line. Signed-off-by: Mukesh Rathor --- docs/misc/pvh-readme.txt | 2 ++ xen/arch/x86/setup.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/misc/pvh-readme.txt b/docs/misc/pvh-readme.txt index 9fea137..c5b3de4 100644 --- a/docs/misc/pvh-readme.txt +++ b/docs/misc/pvh-readme.txt @@ -37,6 +37,8 @@ supported. Phase I patches are broken into three parts: - tools changes for creating a PVH guest - boot of 64bit dom0 in PVH mode. +To boot 64bit dom0 in PVH mode, add dom0pvh to grub xen command line. + Following fixme's exist in the code: - arch/x86/time.c: support more tsc modes. diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index e9c2c51..bd35f65 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -61,6 +61,10 @@ integer_param("maxcpus", max_cpus); static bool_t __initdata disable_smep; invbool_param("smep", disable_smep); +/* Boot dom0 in pvh mode */ +static bool_t __initdata opt_dom0pvh; +boolean_param("dom0pvh", opt_dom0pvh); + /* **** Linux config option: propagated to domain0. */ /* "acpi=off": Sisables both ACPI table parsing and interpreter. */ /* "acpi=force": Override the disable blacklist. */ @@ -541,7 +545,7 @@ void __init noreturn __start_xen(unsigned long mbi_p) { char *memmap_type = NULL; char *cmdline, *kextra, *loader; - unsigned int initrdidx; + unsigned int initrdidx, domcr_flags = 0; multiboot_info_t *mbi = __va(mbi_p); module_t *mod = (module_t *)__va(mbi->mods_addr); unsigned long nr_pages, raw_max_page, modules_headroom, *module_map; @@ -1337,8 +1341,10 @@ void __init noreturn __start_xen(unsigned long mbi_p) if ( !tboot_protect_mem_regions() ) panic("Could not protect TXT memory regions"); - /* Create initial domain 0. */ - dom0 = domain_create(0, DOMCRF_s3_integrity, 0); + /* Create initial domain 0. */ + domcr_flags = (opt_dom0pvh ? DOMCRF_pvh | DOMCRF_hap : 0); + domcr_flags |= DOMCRF_s3_integrity; + dom0 = domain_create(0, domcr_flags, 0); if ( IS_ERR(dom0) || (alloc_dom0_vcpu0() == NULL) ) panic("Error creating domain 0"); -- 1.8.3.1