From patchwork Mon Sep 18 10:31:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bhupinder Thakur X-Patchwork-Id: 112880 Delivered-To: patch@linaro.org Received: by 10.140.106.117 with SMTP id d108csp3501065qgf; Mon, 18 Sep 2017 03:34:45 -0700 (PDT) X-Received: by 10.36.2.204 with SMTP id 195mr15630752itu.35.1505730885687; Mon, 18 Sep 2017 03:34:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505730885; cv=none; d=google.com; s=arc-20160816; b=JEDFlk2PjZ/FjtDrxqOQ0MVVsUUqll0n20Oqa8YxlciClBX2y04Ujm0dwlc6cVhWYO y8Z/k7NUujvvf6xgU8EY4Zq3jA200D6805zypfvrLrI6kaejRr1PFpDmJ6b+2OJMHbbH k3RmFbiMl0+o5AhLlVKt1/gwPGO6y42Pd1d7O+UgM5D1V7P3TSRkN+Unpl5rCP0YpTrW ypRAIYkNrVfrP1h5ZbTT1QKIYbrrm9Ezv/DZtArb4SQ28T+NFZkyTytRwg1Nb139EKm7 jcd/dlLSSlAj3jTYNY0wlEXiOH3hJ3NmDkFRxiXop7OkPpWSp/lZfZCJbFM/A14xhQFo Dyyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-unsubscribe:list-id :precedence:subject:cc:references:in-reply-to:message-id:date:to :from:dkim-signature:arc-authentication-results; bh=O+oBwHQ33Jd8/GMgkAPDx+ojvzRxx3lXxGI8dDDCH2I=; b=ai1Zab/0nSyXKRRxaUe0hpxKOl1lP4JcdgopsoB5k+SnRSxh2rOtGNgkVMX2q9/TVx BdwDrLhCNdWlCHb5FONAutVVaV8eCnJFXPVKh/P719/VC76uY3HwzmxZtyuy1OFyM2A2 kQ6Qt5FwIoCZ24gwKG9Sc5EVF3g4wvSTB6f0wXWUaaHG9j8wPRaI+4iAAlNCHnrwrKRc 35k2aO9YbGGDFOa81PnHJw9G1X5bOazddz6oKdiVn5dfvMxhQ/pmfKk9IBmaUu2dJ29i KBD6OkPXZueijymmJkKAMUoGfU78083EHohyvOv3lVsEydk6EzLx8k0FDDdpGlk4bDnh vXVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=e9UmXPkP; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id i62si5499480ioa.45.2017.09.18.03.34.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Sep 2017 03:34:45 -0700 (PDT) Received-SPF: neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) client-ip=192.237.175.120; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=e9UmXPkP; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dttLy-0001gO-9t; Mon, 18 Sep 2017 10:32:38 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dttLx-0001ef-3N for xen-devel@lists.xenproject.org; Mon, 18 Sep 2017 10:32:37 +0000 Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id D2/DF-00743-4C0AFB95; Mon, 18 Sep 2017 10:32:36 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrGIsWRWlGSWpSXmKPExsXiVRusrXtgwf5 Igx3TNC2+b5nM5MDocfjDFZYAxijWzLyk/IoE1oxT/esYCzaYVLydeYSxgfGcZhcjJ4eQwDRG id1b/bsYuThYBOYxS0w4PJMZJCEh0M8q8eAMP4SdJvGoYyYbjP3/72UmCLtKYsmrRUwQg7Qkj p6azQoySEhgB5PEq4eTGbsYOTjYBEwkZnVIgNSICChJ3Fs1mQmkhllgPqNE06ResKHCAp4Sx9 ZMAlvMIqAq8XE3RJxXwFti0qZljBDL5CRunusEq+EU8JE4v/4BK8Rib4l5v64wTmAUXMDIsIp RvTi1qCy1SNdSL6koMz2jJDcxM0fX0MBULze1uDgxPTUnMalYLzk/dxMjMNwYgGAH49pW50OM khxMSqK8opH7I4X4kvJTKjMSizPii0pzUosPMcpwcChJ8K6eD5QTLEpNT61Iy8wBBj5MWoKDR 0mEdx1Imre4IDG3ODMdInWK0ZLj2KbLf5g49u25BSQ7bt79wyTEkpeflyolzlsH0iAA0pBRmg c3DhadlxhlpYR5GYEOFOIpSC3KzSxBlX/FKM7BqCTM+whkCk9mXgnc1ldABzEBHdSyYw/IQSW JCCmpBsaimeKGAZ/Zfe8JPzn7vtzep55louQ1n8gNkRNNw5dsv1jyLP/u8StmQi+v/Vn19/H8 1AfXmQ+VOwbysiw7xne54qXinJOuT4KmrjwgaMolw1TTJHV+2ZL6r8/iMsTecBXsX2fTsL83Z 5vM/5uq/2I+5NT/al6gcv306WcdPjNT5RlDJm2/4JmsxFKckWioxVxUnAgADAPQQskCAAA= X-Env-Sender: bhupinder.thakur@linaro.org X-Msg-Ref: server-7.tower-206.messagelabs.com!1505730751!109152286!1 X-Originating-IP: [74.125.83.43] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 52146 invoked from network); 18 Sep 2017 10:32:32 -0000 Received: from mail-pg0-f43.google.com (HELO mail-pg0-f43.google.com) (74.125.83.43) by server-7.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 18 Sep 2017 10:32:32 -0000 Received: by mail-pg0-f43.google.com with SMTP id k193so27395pgc.8 for ; Mon, 18 Sep 2017 03:32:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6Sv3zXfkR3omwBhjdz2GaCKZZGwz+PiMk3NDVeEtWV0=; b=e9UmXPkP5nvY5vRKdvVn+agvZcoCEhwfWl+CFYfjmSWgYSLHLEnI1IzlBvKp2c32RA xkL9YKxuzE630hqNCTtLsubY+qPUD4iR6dlBrKr93tcYSBk5wvuHSeO9C53zmUPyo74t YqXIGUbxwFhA7cJEqq8N5eViWc7swFlqQejEo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6Sv3zXfkR3omwBhjdz2GaCKZZGwz+PiMk3NDVeEtWV0=; b=XT40XzTg+MXOC5VRMuJWaEgNtKgjLA9kitXpsBxFeEF94eZ4J0FCq9H8FJcFIFbMmG gvSbWL3gFIASbjmrX4qZIFRo7204MVLGLLNOLn86B14iMDhCHJf06h7CT5xsKHL0BfIi o4gkWSac8V1YItnJQQD4AU5d3EJXQrIIXxCpAgmnfD2QDb060YEigrMKOZFMOiwTvixX yLWI0v7hsnjmawldagjstL8fWYMMt405tKMo6jANA51vWItn1pePxDApaBOlTbTIOvKo z/ZVc+PUtbK3xs3PY3IpL0TWaNV22mPSq3UWB0my4obu0uFuQSDcEoUag67iZngKWgEv D05Q== X-Gm-Message-State: AHPjjUgE/M5bHEObQyVvJxsWNT8OCJHjCH8hY8SdSLRd/xBuZqqDalOU ErC7RC550+sELVE/pKVHsw== X-Google-Smtp-Source: ADKCNb4itgoUfFdFUyVpEK/6zOtRIOenlAYdUqaBIsEkTuNGLcLNPKzGhIhTsMFxwlgGDBVSi4GxIA== X-Received: by 10.101.68.130 with SMTP id l2mr31937167pgq.346.1505730750742; Mon, 18 Sep 2017 03:32:30 -0700 (PDT) Received: from blr-ubuntu-linaro.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id b7sm12937845pge.79.2017.09.18.03.32.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Sep 2017 03:32:30 -0700 (PDT) From: Bhupinder Thakur To: xen-devel@lists.xenproject.org Date: Mon, 18 Sep 2017 16:01:48 +0530 Message-Id: <1505730731-10947-5-git-send-email-bhupinder.thakur@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1505730731-10947-1-git-send-email-bhupinder.thakur@linaro.org> References: <1505730731-10947-1-git-send-email-bhupinder.thakur@linaro.org> Cc: Wei Liu , Julien Grall , Stefano Stabellini , Ian Jackson Subject: [Xen-devel] [PATCH 04/27 v9] xen/arm: vpl011: Add support for vuart in libxl 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" An option is provided in libxl to enable/disable SBSA vuart while creating a guest domain. Libxl now supports a generic vuart console and SBSA uart is a specific type. In future support can be added for multiple vuart of different types. User can enable SBSA vuart by adding the following line in the guest configuration file: vuart = "sbsa_uart" Signed-off-by: Bhupinder Thakur Acked-by: Stefano Stabellini Acked-by: Wei Liu --- CC: Ian Jackson CC: Wei Liu CC: Stefano Stabellini CC: Julien Grall Changes since v4: - Renamed "pl011" to "sbsa_uart". Changes since v3: - Added a new config option CONFIG_VUART_CONSOLE to enable/disable vuart console support. - Moved libxl_vuart_type to arch-arm part of libxl_domain_build_info - Updated xl command help to mention new console type - vuart. Changes since v2: - Defined vuart option as an enum instead of a string. - Removed the domain creation flag defined for vuart and the related code to pass on the information while domain creation. Now vpl011 is initialized independent of domain creation through new DOMCTL APIs. tools/libxl/libxl.h | 7 +++++++ tools/libxl/libxl_console.c | 3 +++ tools/libxl/libxl_dom.c | 1 + tools/libxl/libxl_internal.h | 3 +++ tools/libxl/libxl_types.idl | 7 +++++++ tools/xl/xl_cmdtable.c | 2 +- tools/xl/xl_console.c | 5 ++++- tools/xl/xl_parse.c | 8 ++++++++ 8 files changed, 34 insertions(+), 2 deletions(-) diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 91408b4..3b54e80 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -308,9 +308,16 @@ /* * LIBXL_HAVE_P9S indicates that the p9 field in IDL has been changed to p9s */ + #define LIBXL_HAVE_P9S 1 /* + * LIBXL_HAVE_BUILDINFO_ARM_VUART indicates that the toolstack supports virtual UART + * for ARM. + */ +#define LIBXL_HAVE_BUILDINFO_ARM_VUART 1 + +/* * libxl ABI compatibility * * The only guarantee which libxl makes regarding ABI compatibility diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c index 446e766..853be15 100644 --- a/tools/libxl/libxl_console.c +++ b/tools/libxl/libxl_console.c @@ -67,6 +67,9 @@ int libxl_console_exec(libxl_ctx *ctx, uint32_t domid, int cons_num, case LIBXL_CONSOLE_TYPE_SERIAL: cons_type_s = "serial"; break; + case LIBXL_CONSOLE_TYPE_VUART: + cons_type_s = "vuart"; + break; default: goto out; } diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index f54fd49..e0f0d78 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -803,6 +803,7 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid, if (xc_dom_translated(dom)) { state->console_mfn = dom->console_pfn; state->store_mfn = dom->xenstore_pfn; + state->vuart_gfn = dom->vuart_gfn; } else { state->console_mfn = xc_dom_p2m(dom, dom->console_pfn); state->store_mfn = xc_dom_p2m(dom, dom->xenstore_pfn); diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 7247509..6b38453 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -1139,6 +1139,9 @@ typedef struct { uint32_t num_vmemranges; xc_domain_configuration_t config; + + xen_pfn_t vuart_gfn; + evtchn_port_t vuart_port; } libxl__domain_build_state; _hidden int libxl__build_pre(libxl__gc *gc, uint32_t domid, diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index 173d70a..87e025a 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -105,6 +105,7 @@ libxl_console_type = Enumeration("console_type", [ (0, "UNKNOWN"), (1, "SERIAL"), (2, "PV"), + (3, "VUART"), ]) libxl_disk_format = Enumeration("disk_format", [ @@ -240,6 +241,11 @@ libxl_checkpointed_stream = Enumeration("checkpointed_stream", [ (2, "COLO"), ]) +libxl_vuart_type = Enumeration("vuart_type", [ + (0, "unknown"), + (1, "sbsa_uart"), + ]) + # # Complex libxl types # @@ -581,6 +587,7 @@ libxl_domain_build_info = Struct("domain_build_info",[ ("arch_arm", Struct(None, [("gic_version", libxl_gic_version), + ("vuart", libxl_vuart_type), ])), # Alternate p2m is not bound to any architecture or guest type, as it is # supported by x86 HVM and ARM support is planned. diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c index 5cfc7e8..0583b34 100644 --- a/tools/xl/xl_cmdtable.c +++ b/tools/xl/xl_cmdtable.c @@ -133,7 +133,7 @@ struct cmd_spec cmd_table[] = { &main_console, 0, 0, "Attach to domain's console", "[options] \n" - "-t console type, pv or serial\n" + "-t console type, pv , serial or vuart\n" "-n console number" }, { "vncviewer", diff --git a/tools/xl/xl_console.c b/tools/xl/xl_console.c index 0508dda..4e65d73 100644 --- a/tools/xl/xl_console.c +++ b/tools/xl/xl_console.c @@ -27,6 +27,7 @@ int main_console(int argc, char **argv) uint32_t domid; int opt = 0, num = 0; libxl_console_type type = 0; + char *console_names = "pv, serial, vuart"; SWITCH_FOREACH_OPT(opt, "n:t:", NULL, "console", 1) { case 't': @@ -34,8 +35,10 @@ int main_console(int argc, char **argv) type = LIBXL_CONSOLE_TYPE_PV; else if (!strcmp(optarg, "serial")) type = LIBXL_CONSOLE_TYPE_SERIAL; + else if (!strcmp(optarg, "vuart")) + type = LIBXL_CONSOLE_TYPE_VUART; else { - fprintf(stderr, "console type supported are: pv, serial\n"); + fprintf(stderr, "console type supported are: %s\n", console_names); return EXIT_FAILURE; } break; diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c index 02ddd2e..239460b 100644 --- a/tools/xl/xl_parse.c +++ b/tools/xl/xl_parse.c @@ -918,6 +918,14 @@ void parse_config_data(const char *config_source, if (!xlu_cfg_get_long (config, "maxvcpus", &l, 0)) b_info->max_vcpus = l; + if (!xlu_cfg_get_string(config, "vuart", &buf, 0)) { + if (libxl_vuart_type_from_string(buf, &b_info->arch_arm.vuart)) { + fprintf(stderr, "ERROR: invalid value \"%s\" for \"vuart\"\n", + buf); + exit(1); + } + } + parse_vnuma_config(config, b_info); /* Set max_memkb to target_memkb and max_vcpus to avail_vcpus if