From patchwork Tue Jun 6 10:04:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bhupinder Thakur X-Patchwork-Id: 103155 Delivered-To: patch@linaro.org Received: by 10.182.29.35 with SMTP id g3csp1186487obh; Tue, 6 Jun 2017 03:07:05 -0700 (PDT) X-Received: by 10.107.27.21 with SMTP id b21mr24743326iob.65.1496743625738; Tue, 06 Jun 2017 03:07:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496743625; cv=none; d=google.com; s=arc-20160816; b=SivcVUNcUrPZXyDof7c8UnFt2dXJNi7xeF3GQd6nwiRdp1zYtMqfchkQdF04rJ6bQY VJ4Mcb6uYwyZ1cpoYqeCTfGXG2bXLorHJQr6PQ8SHTwg67dlHau2P9Kb1xn78Hbh5B9g 4zYqb6nvOisvkCmIVWgy0oN06WDlsbzvuV/nFL8Me0WEfx+UAnuZbATuZwwADVTdS+Bo k6v3B4aTSD1tgvDtsubOE0NH2dxpvszr1W2v5e+w08m+74R2htpeuT6aW007g6PwVII9 X27SVMqtYgPvC3UzTYVtNMVpazRKsm3rVF+YhsrB/33lbgjoWAlMYhGxV3u77HwjnL0Q fU9Q== 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:message-id:date:to:from:dkim-signature :arc-authentication-results; bh=KlV9Ar5ydY3AIUG6Uc3+C7Y7HhO8Z3SB9ABxo8HuHu4=; b=fRy/2vIwS3Pc5vd/pNIx+6iMQKYnWa/ra2qERYtnbXfB+RChMQyzTwJD0iqE1fGy9k 6PaD9hm2x4k4thcZBV1Pz1OFUJUZEcygt6M5uBWGgoHJbDrmKkYXC18o8WgG3E5av5P9 9Yq244w8v18aP66QzAFnWdSerfYVxKyg8XpfTcTMPhy8J8+/lfNzvyPK0RqPqBKbP4od WuEvDIdya6IQEDzRobkR55iE/AQGbKxpUUe76jNdLXx08Xd84mF7Ql1Nmz4b9ORWqLiN MDLahMsWG0BpXUSOsEk16QSawkRgPnJBscOn1lk39KP8Inp8zEln2hWvKJvrk7THv5i5 T7bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org; 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 b189si33102790iob.220.2017.06.06.03.07.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Jun 2017 03:07:05 -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; 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 1dIBMJ-0004S2-Nq; Tue, 06 Jun 2017 10:05:07 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIBMH-0004Qw-QS for xen-devel@lists.xenproject.org; Tue, 06 Jun 2017 10:05:05 +0000 Received: from [193.109.254.147] by server-9.bemta-6.messagelabs.com id 84/F2-03557-15E76395; Tue, 06 Jun 2017 10:05:05 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpjkeJIrShJLcpLzFFi42Lxqg3W0w2oM4s 06OvXsfi+ZTKTA6PH4Q9XWAIYo1gz85LyKxJYMya/XMNY8E+uYt/t6AbGB+JdjFwcQgLTGCW2 LOhgBnFYBNqZJR48OMAC4kgIvGOR2DThJFsXIyeQkybxZt1rZgi7SmLu5ofsILaQgJbE0VOzW SFG7WOS2LxsN1MXIwcHm4CJxKwOCZAaEQEliXurJjOB1DALzGeUaJrUywZSIywQIzFtjRqIyS KgKjH3VhZIOa+At8TCX2vYIVbJSdw818k8gZFvASPDKkaN4tSistQiXWMjvaSizPSMktzEzBx dQwMzvdzU4uLE9NScxKRiveT83E2MwDBhAIIdjKfXBR5ilORgUhLlrU0wixTiS8pPqcxILM6I LyrNSS0+xCjDwaEkwStQC5QTLEpNT61Iy8wBBixMWoKDR0mEV7kSKM1bXJCYW5yZDpE6xajLM enA9i9MQix5+XmpUuK8lSAzBECKMkrz4EbAoucSo6yUMC8j0FFCPAWpRbmZJajyrxjFORiVhH m/1QBN4cnMK4Hb9AroCCagI/gumYAcUZKIkJJqYFS/dva+cPKtYM/pcf3bpK6XcnkEpMq4y01 WnCHp7VtWtGub7vrd9va7tvMvPS8Xsefnj0lPLMPZTrvv9dv6O6Tvgu7ixedvzzCr6/TYkFb2 /v4Nt7LjddptcXYbtxvlX29OLd0qfcnI4b7bH4FfaxqUp78yfzHFJiE0Ue60opPhkda9D7+6t iuxFGckGmoxFxUnAgCh8AKXmQIAAA== X-Env-Sender: bhupinder.thakur@linaro.org X-Msg-Ref: server-12.tower-27.messagelabs.com!1496743503!104791364!1 X-Originating-IP: [74.125.83.46] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 58756 invoked from network); 6 Jun 2017 10:05:04 -0000 Received: from mail-pg0-f46.google.com (HELO mail-pg0-f46.google.com) (74.125.83.46) by server-12.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 6 Jun 2017 10:05:04 -0000 Received: by mail-pg0-f46.google.com with SMTP id k71so331079pgd.2 for ; Tue, 06 Jun 2017 03:05:04 -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; bh=8gNw9nN/0JI8jAKP7+JSrgJRr/oVvhOoOekKUm2EABo=; b=kEIYFQIgpOqZkd7jFtDeAKdo4REcRMSxqJ7iEgqsvF1WmOmiKPScg+bLcR+1Tds2JJ QHhnvFZxPgf65tIJyUg2evB9GdE0iGAOz30SnQHZLSUw0KgXWqVT5pJZ0v7hpOeMdMJ9 j/vtDAcb/NN4g6Y/pZQbxU/AgfJiwr1lZSsn0= 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; bh=8gNw9nN/0JI8jAKP7+JSrgJRr/oVvhOoOekKUm2EABo=; b=lRsJeWj7I3NtArDlnG9Tpuy4rq/ld51CUr9/PjXcgZ6RzbzoxEgqsGDJSadCKJAALB hR/R8IqQ5RHOBh7F8z8jSd6QaW+USROQrVcuuR4A9jSpE9H2fzq/JBGJGJ41Eyze/hFa KDm1VVViLA66hM1AtP9KoSQv+V1Yszjx2IxCCs12myMPWvxzsbyQfg3EJmWk/vAW+63X ErP+1eldSay99fX4Ylu7SUiTULVEpY9SakcrxUOx0Okj/knpLd2+fmlQ6G9qPyec+qJI 8zrX2MihuUuA4qoI8fYC2nL+HiBkhKGs4nU9Am/lBTXsEHm7OW/uA/tnIwyLaTZWMlxS pGpA== X-Gm-Message-State: AODbwcDyxr6PpkjHHv1RhqN/lLz8xo8dBxEMWFt64LWJ1GnYtJ7eLyh2 EU2lOp1XM7KiDFqb8Cr5IQ== X-Received: by 10.98.49.198 with SMTP id x189mr24163797pfx.65.1496743502959; Tue, 06 Jun 2017 03:05:02 -0700 (PDT) Received: from blr-ubuntu-linaro.wlan.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id g23sm55221109pfb.54.2017.06.06.03.05.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Jun 2017 03:05:02 -0700 (PDT) From: Bhupinder Thakur To: xen-devel@lists.xenproject.org Date: Tue, 6 Jun 2017 15:34:57 +0530 Message-Id: <1496743497-16087-1-git-send-email-bhupinder.thakur@linaro.org> X-Mailer: git-send-email 2.7.4 Cc: Wei Liu , Julien Grall , Stefano Stabellini , Ian Jackson Subject: [Xen-devel] [PATCH 13/14 v4] xen/arm: vpl011: Add a pl011 uart DT node in the guest device tree 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" The SBSA uart node format is as specified in Documentation/devicetree/bindings/serial/arm_sbsa_uart.txt and given below: ARM SBSA defined generic UART ------------------------------ This UART uses a subset of the PL011 registers and consequently lives in the PL011 driver. It's baudrate and other communication parameters cannot be adjusted at runtime, so it lacks a clock specifier here. Required properties: - compatible: must be "arm,sbsa-uart" - reg: exactly one register range - interrupts: exactly one interrupt specifier - current-speed: the (fixed) baud rate set by the firmware Currently the baud rate of 115200 has been selected as a default value, which is one of the valid baud rate setttings. Higher baud rate was selected since an emulated pl011 can support any valid baud rate without any limitation of the hardware. Signed-off-by: Bhupinder Thakur Reviewed-by: Stefano Stabellini --- tools/libxl/libxl_arm.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/tools/libxl/libxl_arm.c b/tools/libxl/libxl_arm.c index b60dfa9..b59fd9f 100644 --- a/tools/libxl/libxl_arm.c +++ b/tools/libxl/libxl_arm.c @@ -44,10 +44,22 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc, uint32_t nr_spis = 0; unsigned int i; + /* + * If pl011 vuart is enabled then increment the nr_spis to allow allocation + * of SPI VIRQ for pl011. + */ + if (d_config->b_info.arch_arm.vuart) + nr_spis += (GUEST_VPL011_SPI - 32) + 1; + for (i = 0; i < d_config->b_info.num_irqs; i++) { uint32_t irq = d_config->b_info.irqs[i]; uint32_t spi; + if (d_config->b_info.arch_arm.vuart && (irq == GUEST_VPL011_SPI)) { + LOG(ERROR, "Physical IRQ %u conflicting with pl011 SPI\n", irq); + return ERROR_FAIL; + } + if (irq < 32) continue; @@ -149,9 +161,10 @@ static struct arch_info { const char *guest_type; const char *timer_compat; const char *cpu_compat; + const char *uart_compat; } arch_info[] = { - {"xen-3.0-armv7l", "arm,armv7-timer", "arm,cortex-a15" }, - {"xen-3.0-aarch64", "arm,armv8-timer", "arm,armv8" }, + {"xen-3.0-armv7l", "arm,armv7-timer", "arm,cortex-a15", "arm,sbsa-uart" }, + {"xen-3.0-aarch64", "arm,armv8-timer", "arm,armv8", "arm,sbsa-uart" }, }; /* @@ -609,6 +622,38 @@ static int make_hypervisor_node(libxl__gc *gc, void *fdt, return 0; } +static int make_vpl011_uart_node(libxl__gc *gc, void *fdt, + const struct arch_info *ainfo, + struct xc_dom_image *dom) +{ + int res; + gic_interrupt intr; + + res = fdt_begin_node(fdt, "sbsa-pl011"); + if (res) return res; + + res = fdt_property_compat(gc, fdt, 1, ainfo->uart_compat); + if (res) return res; + + res = fdt_property_regs(gc, fdt, ROOT_ADDRESS_CELLS, ROOT_SIZE_CELLS, + 1, + GUEST_PL011_BASE, GUEST_PL011_SIZE); + if (res) return res; + + set_interrupt(intr, GUEST_VPL011_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH); + + res = fdt_property_interrupts(gc, fdt, &intr, 1); + if (res) return res; + + /* Use a default baud rate of 115200. */ + fdt_property_u32(fdt, "current-speed", 115200); + + res = fdt_end_node(fdt); + if (res) return res; + + return 0; +} + static const struct arch_info *get_arch_info(libxl__gc *gc, const struct xc_dom_image *dom) { @@ -908,6 +953,9 @@ next_resize: FDT( make_timer_node(gc, fdt, ainfo, xc_config->clock_frequency) ); FDT( make_hypervisor_node(gc, fdt, vers) ); + if (info->arch_arm.vuart) + FDT( make_vpl011_uart_node(gc, fdt, ainfo, dom) ); + if (pfdt) FDT( copy_partial_fdt(gc, fdt, pfdt) );