From patchwork Thu Jul 24 12:59:16 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanjun Guo X-Patchwork-Id: 4617701 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 71DEEC0514 for ; Thu, 24 Jul 2014 13:03:23 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 790DE201DC for ; Thu, 24 Jul 2014 13:03:21 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C1256201E4 for ; Thu, 24 Jul 2014 13:03:16 +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 1XAIdE-0006x2-CZ; Thu, 24 Jul 2014 13:00:24 +0000 Received: from mail-pd0-f174.google.com ([209.85.192.174]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XAIdB-0005kQ-JD for linux-arm-kernel@lists.infradead.org; Thu, 24 Jul 2014 13:00:22 +0000 Received: by mail-pd0-f174.google.com with SMTP id fp1so3626465pdb.19 for ; Thu, 24 Jul 2014 06:00:00 -0700 (PDT) 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=+IGmbdBSN56OCDBN55H39RQ6Q7UsLFb9uSXmIpJkn9Q=; b=YgFHTnXQkH8eOw6i0RdI+40QjczBeKbIuCUptiFizhWuAMdaO8WT97yjjiobxic9q/ +cU+Iu6/XTUsxWO/ABO96l1d1llnmtgT+7P6qHpyc5v6Uz4pLKHS7jPJLvnMmsdJ2y5i fQY4SJ5J1mYoIcnwkaaI1uyqurp7CTJso1Jbv51IZjSdiqvpR4eTvZMSggKY+g75EAxT IkqUZNKMh09D5DYiwJAofY3P4ZwJMiEjFQjPWmoCkpvQ3lpC4d5rulmOv0y3pcvj5ZFA gaJh0LY8wlG/ts//XGVPY5w9+1+eF/2ZIVb85sEA6CaSe1YLkLTpvSpzU55qJ2byZBgv LzmA== X-Gm-Message-State: ALoCoQlUKMGQLJEJw7BNUByorLj0Rgpr2nVMJHwmpyYRpPn9CcrjODMXfh6s7nUojx1OovMaa1Xc X-Received: by 10.68.69.46 with SMTP id b14mr10171879pbu.70.1406206800130; Thu, 24 Jul 2014 06:00:00 -0700 (PDT) Received: from localhost ([183.247.163.231]) by mx.google.com with ESMTPSA id k9sm7367399pdo.28.2014.07.24.05.59.53 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Thu, 24 Jul 2014 05:59:59 -0700 (PDT) From: Hanjun Guo To: Catalin Marinas , "Rafael J. Wysocki" , Mark Rutland Subject: [PATCH 2/3] ACPI / ACPICA: Add new features for MADT which introduced by ACPI 5.1 Date: Thu, 24 Jul 2014 20:59:16 +0800 Message-Id: <1406206757-15512-3-git-send-email-hanjun.guo@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1406206757-15512-1-git-send-email-hanjun.guo@linaro.org> References: <1406206757-15512-1-git-send-email-hanjun.guo@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140724_060021_671175_EA94DE29 X-CRM114-Status: GOOD ( 13.56 ) X-Spam-Score: -0.7 (/) Cc: Mark Brown , Liviu Dudau , Lv Zheng , Lorenzo Pieralisi , Daniel Lezcano , Robert Moore , linux-acpi@vger.kernel.org, Grant Likely , Charles.Garcia-Tobin@arm.com, Robert Richter , Jason Cooper , Arnd Bergmann , Marc Zyngier , Will Deacon , Tomasz Nowicki , linaro-acpi-private@linaro.org, Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, Graeme Gregory , Randy Dunlap , linux-kernel@vger.kernel.org, Hanjun Guo , Sudeep Holla X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD, 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: Tomasz Nowicki Add new features for MADT which 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 --- include/acpi/actbl1.h | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index 9613e8e..8c91ad6 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h @@ -671,7 +671,9 @@ enum acpi_madt_type { ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, - ACPI_MADT_TYPE_RESERVED = 13 /* 13 and greater are reserved */ + ACPI_MADT_TYPE_GIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_RESERVED = 15 /* 15 and greater are reserved */ }; /* @@ -792,18 +794,23 @@ struct acpi_madt_local_x2apic_nmi { u8 reserved[3]; /* reserved - must be zero */ }; -/* 11: Generic Interrupt (ACPI 5.0) */ +/* 11: Generic Interrupt (ACPI 5.1) */ struct acpi_madt_generic_interrupt { struct acpi_subtable_header header; u16 reserved; /* reserved - must be zero */ - u32 gic_id; + u32 gic_id; /* it was renamed to cpu interface number in ACPI 5.1 */ 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_maintenance_interrupt; + u64 redist_base_address; + u64 mpidr; }; /* 12: Generic Distributor (ACPI 5.0) */ @@ -817,13 +824,36 @@ struct acpi_madt_generic_distributor { u32 reserved2; /* reserved - must be zero */ }; +/* 13: GIC MSI Frame (ACPI 5.1) */ + +struct acpi_madt_gic_msi_frame { + struct acpi_subtable_header header; + u16 reserved; /* reserved - must be zero */ + u32 gic_msi_frame_id; + u64 base_address; +}; + +/* 14: GIC Redistributor (ACPI 5.1) */ + +struct acpi_madt_gic_redistributor { + struct acpi_subtable_header header; + u16 reserved; /* reserved - must be zero */ + u64 base_address; + u32 region_size; +}; + /* * Common flags fields for MADT subtables */ -/* MADT Local APIC flags (lapic_flags) and GIC flags */ +/* MADT Local APIC flags (lapic_flags) and GICC flags */ + +#define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */ + +/* MADT GICC flags only */ -#define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */ +#define ACPI_MADT_PERF_INT_MODE (1<<1) /* 01: Performance Interrupt Mode */ +#define ACPI_MADT_VGIC (1<<2) /* 02: VGIC Maintenance interrupt mode */ /* MADT MPS INTI flags (inti_flags) */