From patchwork Wed Jan 24 14:35:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Przywara X-Patchwork-Id: 125674 Delivered-To: patch@linaro.org Received: by 10.46.66.141 with SMTP id h13csp457119ljf; Wed, 24 Jan 2018 06:37:50 -0800 (PST) X-Google-Smtp-Source: AH8x227wwtkawyH4VK/SjRypoUtPutnjpg3xlLVdvjq9QgBe/mAfiopCPqp4sBDkPlkd1nXlz/oR X-Received: by 10.36.87.83 with SMTP id u80mr9148706ita.140.1516804670665; Wed, 24 Jan 2018 06:37:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516804670; cv=none; d=google.com; s=arc-20160816; b=ACENNstFgmgUXhMtg5PnuvEX+8WDG1zAuejQtm0wx/M9McCVipO7kn9fjTPczVYDcP yjD+DYbm08GpQ0ou+tmLDFJ3WgddVSfx1S5ZDkC3Am4pTbqcJ3eywN1o1rdmHXLasWL7 SUafGHVxa6r38SLJGoMo8EOqw4zQyZHxVbIEyRVg/Nf6JlXc+lqCRWdt74rOKvog9Fx8 zkzLeNXq5lj209HDMSC9mpHmUrtDcazp2kWf9hxQ18SMWwcWh/Xtzbt2M/STjjZ74AMa syBdIL/O6V+Uuf6vxyN75xdVn5nkoLN2e16RNFCRiFZYpTQq404xFgs9j1LBTv+Kkina pK6g== 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=DHxsZ3ox2nFM3dhV593ZBrB6wxZEW2LajFv0S99fG0Y=; b=H1/4zpwLAV6VemQEbTAt6Lw79M7UDeIySfL8+fAEU7SIIFnzqm7eQpcWPKqIlR+Pk0 vuqQtFI/iNQFPk5l8VQlema1mVCgybULhSqwRsHZCSrx5hSr/MNfOFEUSZGvQjnOldPs k1L2ejyoDKbqQJPfvl6cPqlXU/gjTaUPTQqDByYrg12pZZ/ifbv3q6u6fUbb/gYqRk+O 8A/395t3lnzLl7bz/UpaMySCIfGCXQz1KRIeKuI/5cfFzCWIiQqmnZu4k3QaRHhkC1v+ wwDdSdUStGP7S4wP3erj+P2flg7yy+ECv9rtwO8pRptDyYQf4g4786cheaKcQo1RZSu6 AI1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Ai1CgRDF; spf=pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.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 e101si331769iod.0.2018.01.24.06.37.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Jan 2018 06:37:50 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) 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=Ai1CgRDF; spf=pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.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 1eeM96-0001A8-3s; Wed, 24 Jan 2018 14:35:24 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eeM94-00017u-8y for xen-devel@lists.xenproject.org; Wed, 24 Jan 2018 14:35:22 +0000 X-Inumbo-ID: cb5c777c-0113-11e8-ba59-bc764e045a96 Received: from mail-wm0-x241.google.com (unknown [2a00:1450:400c:c09::241]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id cb5c777c-0113-11e8-ba59-bc764e045a96; Wed, 24 Jan 2018 15:35:17 +0100 (CET) Received: by mail-wm0-x241.google.com with SMTP id f71so8870901wmf.0 for ; Wed, 24 Jan 2018 06:35:20 -0800 (PST) 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=vzpYhLOfLi5iKaLi/6cXcLbsxkPr1/lciFJ4EanI2/8=; b=Ai1CgRDFCp2GGrh2KkCw7txV9I01q7A07LwtCh8OjJWXjwkMIQAPkIcLrW64o/ajmx gxeYTamM/lO91eKDnJGz/t3iyA8+fIQKPzas+skhMkCYCh7MQrErLbgUuWBGRv1BItUe /fOgZlgcwZzuqznfKU1A4GH9pygQS7yr8moZ0= 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=vzpYhLOfLi5iKaLi/6cXcLbsxkPr1/lciFJ4EanI2/8=; b=GMrcs2CbqVeJ5dIOO3A3fcEk9WCLO5JDYHoDo265O2LhfHgHSG+IHUXJfEjt3zYj4h e3J1WQAEPmyd/DDrZD57FqYv9sr0FYUz5MO4mBCOM4vwj8pIlVeJL5WdShRoZePaVh45 acraj0k34W+rR1ZqwYmYJ5Nu/+JvuSObdYuuzGIehmLw7jgmdHh4z3gZm2jJcjN4zMIQ YsWslVhraCe1ErmwQvq4nE7cZ0tzV/VRFoNcRE+uGhzzLKVzYgNgwRGMna2OCn8O1BAb tT/j+IIY8iE0tkGmn+5CKj3L2eSMgDO7Y/ZlcghFp2YhXoPeOgCw7eoNGgY38AhHi8kH Vphw== X-Gm-Message-State: AKwxytc6kSGlcAlYI9SP+rPGWrkL6v1NwolHUwB8+cOSCzAKbe2+gIPm b3YuYole6/9RBrfrMdrahYkiN8+Z1Is= X-Received: by 10.28.159.7 with SMTP id i7mr5351043wme.57.1516804519405; Wed, 24 Jan 2018 06:35:19 -0800 (PST) Received: from e104803-lin.lan (mail.andrep.de. [217.160.17.100]) by smtp.gmail.com with ESMTPSA id l9sm3267923wrb.91.2018.01.24.06.35.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jan 2018 06:35:18 -0800 (PST) From: Andre Przywara To: Stefano Stabellini , Julien Grall Date: Wed, 24 Jan 2018 14:35:17 +0000 Message-Id: <20180124143517.18469-8-andre.przywara@linaro.org> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180124143517.18469-1-andre.przywara@linaro.org> References: <20180124143517.18469-1-andre.przywara@linaro.org> Cc: xen-devel@lists.xenproject.org Subject: [Xen-devel] [PATCH 7/7] ARM: vGICv3: remove rdist_stride from VGIC structure X-BeenThere: xen-devel@lists.xenproject.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.xenproject.org Sender: "Xen-devel" The last patch removed the usage of the hardware's redistributor-stride value from our (Dom0) GICv3 emulation. This means we no longer need to store this value in the VGIC data structure. Remove that variable and every code snippet that handled that, instead simply always use the architected value. Signed-off-by: Andre Przywara Acked-by: Julien Grall --- xen/arch/arm/gic-v3.c | 3 +-- xen/arch/arm/vgic-v3.c | 14 -------------- xen/include/asm-arm/domain.h | 1 - xen/include/asm-arm/vgic.h | 1 - xen/include/public/arch-arm.h | 2 -- 5 files changed, 1 insertion(+), 20 deletions(-) diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c index 1684d9cf1b..588fe94cab 100644 --- a/xen/arch/arm/gic-v3.c +++ b/xen/arch/arm/gic-v3.c @@ -1693,8 +1693,7 @@ static int __init gicv3_init(void) reg = readl_relaxed(GICD + GICD_TYPER); intid_bits = GICD_TYPE_ID_BITS(reg); - vgic_v3_setup_hw(dbase, gicv3.rdist_count, gicv3.rdist_regions, - gicv3.rdist_stride, intid_bits); + vgic_v3_setup_hw(dbase, gicv3.rdist_count, gicv3.rdist_regions, intid_bits); gicv3_init_v2(); spin_lock_init(&gicv3.lock); diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index b4159317dd..47856a0a73 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -58,21 +58,18 @@ static struct { /* Re-distributor regions */ unsigned int nr_rdist_regions; const struct rdist_region *regions; - uint32_t rdist_stride; /* Re-distributor stride */ unsigned int intid_bits; /* Number of interrupt ID bits */ } vgic_v3_hw; void vgic_v3_setup_hw(paddr_t dbase, unsigned int nr_rdist_regions, const struct rdist_region *regions, - uint32_t rdist_stride, unsigned int intid_bits) { vgic_v3_hw.enabled = true; vgic_v3_hw.dbase = dbase; vgic_v3_hw.nr_rdist_regions = nr_rdist_regions; vgic_v3_hw.regions = regions; - vgic_v3_hw.rdist_stride = rdist_stride; vgic_v3_hw.intid_bits = intid_bits; } @@ -1680,15 +1677,6 @@ static int vgic_v3_domain_init(struct domain *d) d->arch.vgic.dbase = vgic_v3_hw.dbase; - d->arch.vgic.rdist_stride = vgic_v3_hw.rdist_stride; - /* - * If the stride is not set, the default stride for GICv3 is 2 * 64K: - * - first 64k page for Control and Physical LPIs - * - second 64k page for Control and Generation of SGIs - */ - if ( !d->arch.vgic.rdist_stride ) - d->arch.vgic.rdist_stride = 2 * SZ_64K; - for ( i = 0; i < vgic_v3_hw.nr_rdist_regions; i++ ) { paddr_t size = vgic_v3_hw.regions[i].size; @@ -1708,8 +1696,6 @@ static int vgic_v3_domain_init(struct domain *d) { d->arch.vgic.dbase = GUEST_GICV3_GICD_BASE; - d->arch.vgic.rdist_stride = GUEST_GICV3_RDIST_STRIDE; - /* The first redistributor should contain enough space for all CPUs */ BUILD_BUG_ON((GUEST_GICV3_GICR0_SIZE / GICV3_GICR_SIZE) < MAX_VIRT_CPUS); d->arch.vgic.rdist_regions[0].base = GUEST_GICV3_GICR0_BASE; diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h index 4fe189b1c3..3eda7196ff 100644 --- a/xen/include/asm-arm/domain.h +++ b/xen/include/asm-arm/domain.h @@ -108,7 +108,6 @@ struct arch_domain unsigned int first_cpu; /* First CPU handled */ } *rdist_regions; int nr_regions; /* Number of rdist regions */ - uint32_t rdist_stride; /* Re-Distributor stride */ unsigned long int nr_lpis; uint64_t rdist_propbase; struct rb_root its_devices; /* Devices mapped to an ITS */ diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h index 2a93a7bef9..7919cc53f4 100644 --- a/xen/include/asm-arm/vgic.h +++ b/xen/include/asm-arm/vgic.h @@ -255,7 +255,6 @@ struct rdist_region; void vgic_v3_setup_hw(paddr_t dbase, unsigned int nr_rdist_regions, const struct rdist_region *regions, - uint32_t rdist_stride, unsigned int intid_bits); #endif diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h index ca79ab6284..3bca165fbf 100644 --- a/xen/include/public/arch-arm.h +++ b/xen/include/public/arch-arm.h @@ -401,8 +401,6 @@ typedef uint64_t xen_callback_t; #define GUEST_GICV3_GICD_BASE xen_mk_ullong(0x03001000) #define GUEST_GICV3_GICD_SIZE xen_mk_ullong(0x00010000) -#define GUEST_GICV3_RDIST_STRIDE xen_mk_ullong(0x00020000) - #define GUEST_GICV3_GICR0_BASE xen_mk_ullong(0x03020000) /* vCPU0..127 */ #define GUEST_GICV3_GICR0_SIZE xen_mk_ullong(0x01000000)