From patchwork Tue Nov 17 09:40:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shannon Zhao X-Patchwork-Id: 7634471 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 6AB8A9F1C2 for ; Tue, 17 Nov 2015 09:48:30 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7F1A82047D for ; Tue, 17 Nov 2015 09:48:29 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9B27720465 for ; Tue, 17 Nov 2015 09:48:28 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZycqF-0001jW-0B; Tue, 17 Nov 2015 09:46:23 +0000 Received: from mail-wm0-x231.google.com ([2a00:1450:400c:c09::231]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZycnU-00062X-7u for linux-arm-kernel@lists.infradead.org; Tue, 17 Nov 2015 09:43:40 +0000 Received: by wmdw130 with SMTP id w130so146654018wmd.0 for ; Tue, 17 Nov 2015 01:43:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro_org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/yLnizAmun0gAdZYHqIZQoS/owqzEc0VxHPg9K5o7iA=; b=eJdiwRYq76HY0oi5LqilkvYo3KpfuncVVMDCWGoz+o+obHlJzC3ZkU8YyYSwiJ2N9Q /98wTt4yyMiUOlWxpKWGB2ggHCS1bfV6MIzjldH/ErZPANr9DCsElujWhhRnldZhVkve YUczoiE2fVCjdpMKaIi1wZWWo3+FOYvagsIQsHqxOKdnr4w6mMKKEKc8uKYLx6YSrKkh r865vEWWdWUOTqUHo3eeT0tJdDFM1VnKGZB3m0QBYIZZU42o41zIy/o2xnCpi6PexJKR PUgSGxq4iJ+0N2fE7H1yfVFy2Gkuk16qGCI/PUb07hTbCuTbvZ5Xkgi0WQI94OIVmx5k zsHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/yLnizAmun0gAdZYHqIZQoS/owqzEc0VxHPg9K5o7iA=; b=UCL24MFtSCxKLNSagUja2EZ2vo7i8bsQbt9UvPZZI+tJlsKOHBe6PVYeprm3i2Tjix 8lHghCeMa4ohXCtI1mB/kcQiIU3jZJ52SHDaq7TQIup1xTZM8NkJzk66krwf8IuJNGuW BSMZ2Q5o/EVg0HWh0LUL2E76RuS2RpMz3ixStbJ88S+AKWfZgyI6mBxFfONdklmwCyaq GynAPcdxFDPvVFCQ0zjKCPFMXGMhu7el1kpBRN8TDbQF8nwhDTIxl7UKU0vlEmzZLaPR xA+uHcxMFb4T4iINmUeASCTLcwj2OpEa2cRBZnnKyxXfHsRsTw3Fvlwi8FWShsG1YCTQ pYnw== X-Gm-Message-State: ALoCoQnOObkPIpHCvYeCaBsKJ6VNdUG+supiSmGYMp3bmz4OVoADCXbZvZUpVdvtphX4RzdhwnCT X-Received: by 10.194.91.234 with SMTP id ch10mr48973505wjb.69.1447753390745; Tue, 17 Nov 2015 01:43:10 -0800 (PST) Received: from localhost ([78.129.251.54]) by smtp.gmail.com with ESMTPSA id t5sm23042049wmt.1.2015.11.17.01.43.08 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 17 Nov 2015 01:43:10 -0800 (PST) From: shannon.zhao@linaro.org To: ian.campbell@citrix.com, stefano.stabellini@citrix.com, keir@xen.org, jbeulich@suse.com, andrew.cooper3@citrix.com, julien.grall@citrix.com, xen-devel@lists.xen.org Subject: [PATCH v3 14/62] arm/acpi: Add Generic Interrupt and Distributor struct Date: Tue, 17 Nov 2015 17:40:13 +0800 Message-Id: <1447753261-7552-15-git-send-email-shannon.zhao@linaro.org> X-Mailer: git-send-email 1.9.5.msysgit.1 In-Reply-To: <1447753261-7552-1-git-send-email-shannon.zhao@linaro.org> References: <1447753261-7552-1-git-send-email-shannon.zhao@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151117_014333_039244_2703811A X-CRM114-Status: GOOD ( 12.26 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, hangaohuai@huawei.com, ard.biesheuvel@linaro.org, shannon.zhao@linaro.org, christoffer.dall@linaro.org, peter.huangpeng@huawei.com, david.vrabel@citrix.com, zhaoshenglong@huawei.com, linux-arm-kernel@lists.infradead.org, roger.pau@citrix.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Shannon Zhao Add Generic Interrupt and Distributor (ACPI 5.0) structure. Add new features for MADT introduced by ACPI 5.1. Comment on the GIC ID field of the GIC structure which is replaced by CPU Interface Number. Add new fields: Redistributor Base Address, GICV, GICH, and MPIDR. Add new structures for GIC MSI frame and GICR. Add flag definition for GICC flags. Signed-off-by: Tomasz Nowicki Signed-off-by: Hanjun Guo Signed-off-by: Naresh Bhat Signed-off-by: Shannon Zhao Acked-by: Stefano Stabellini --- xen/include/acpi/actbl1.h | 69 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/xen/include/acpi/actbl1.h b/xen/include/acpi/actbl1.h index 9311e3a..2fb2ad7 100644 --- a/xen/include/acpi/actbl1.h +++ b/xen/include/acpi/actbl1.h @@ -639,7 +639,11 @@ enum acpi_madt_type { ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, ACPI_MADT_TYPE_LOCAL_X2APIC = 9, ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, - ACPI_MADT_TYPE_RESERVED = 11 /* 11 and greater are reserved */ + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_RESERVED = 15 /* 15 and greater are reserved */ }; /* @@ -760,11 +764,72 @@ struct acpi_madt_local_x2apic_nmi { u8 reserved[3]; }; +/* 11: Generic Interrupt (ACPI 5.0) */ + +struct acpi_madt_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; /* reserved - must be zero */ + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; +}; + +/* Masks for Flags field above */ + +/* ACPI_MADT_ENABLED (1) Processor is usable if set */ +#define ACPI_MADT_PERFORMANCE_IRQ_MODE (1<<1) /* 01: Performance Interrupt Mode */ +#define ACPI_MADT_VGIC_IRQ_MODE (1<<2) /* 02: VGIC Maintenance Interrupt mode */ + +/* 12: Generic Distributor (ACPI 5.0) */ + +struct acpi_madt_generic_distributor { + struct acpi_subtable_header header; + u16 reserved; /* reserved - must be zero */ + u32 gic_id; + u64 base_address; + u32 global_irq_base; + u32 reserved2; /* reserved - must be zero */ +}; + +/* 13: GIC MSI Frame (ACPI 5.1) */ + +struct acpi_madt_generic_msi_frame { + struct acpi_subtable_header header; + u16 reserved; /* reserved - must be zero */ + u32 msi_frame_id; + u64 base_address; + u32 flags; + u16 spi_count; + u16 spi_base; +}; + +/* Masks for Flags field above */ + +#define ACPI_MADT_OVERRIDE_SPI_VALUES (1) + +/* 14: GIC Redistributor (ACPI 5.1) */ + +struct acpi_madt_generic_redistributor { + struct acpi_subtable_header header; + u16 reserved; /* reserved - must be zero */ + u64 base_address; + u32 length; +}; + /* * Common flags fields for MADT subtables */ -/* MADT Local APIC flags (lapic_flags) */ +/* MADT Local APIC flags */ #define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */