Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp5394401imw; Wed, 20 Jul 2022 05:04:01 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vw/fTXpzJ74DwEHrieiZaVFifRg6HTPQZOdFg1KveDDatEIQ+/SWEFaehZsfPSCHceBKtN X-Received: by 2002:a17:907:3e9e:b0:72b:4d77:fd90 with SMTP id hs30-20020a1709073e9e00b0072b4d77fd90mr36023381ejc.726.1658318640869; Wed, 20 Jul 2022 05:04:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658318640; cv=none; d=google.com; s=arc-20160816; b=nfQW1IMeAmsQ4UIGj9XVNwx0sa0U/+qAtHo5LLlvXlhaCIqcLsU6D1FZE9JEWanPjT lzI3s8ob5HpW7DTFQvuv6HhHvyD1mXFemK76IjNgcw4FUfW4PBa0sjrs3jTBBNlpyLza W/tNQCCYJGHEndaXNMRhITFOg6Ws/8FmgRG/lqocJ2YyKXS0Ny7Yo9KCANKj/q9sj6TN zu/bmdgbV2asZ4/e5bkBrdSyN7mOr9LldhaNPq4C9Ffk/HJO7d/gYatwi9ABmgg9mUyc FfoyJvCD+nuz76TVcAxe0+WsWiQgwVSyYEfP8uko0r7fVPdRLHfZeP/vMK0A5Vi9gP0V K2hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:robot-unsubscribe :robot-id:message-id:mime-version:references:in-reply-to:cc:subject :to:reply-to:sender:from:dkim-signature:dkim-signature:date; bh=31EwgTSePEz//oaaW/kXUV7zURoej0/Uw2BQxz2bIgU=; b=Df7CWM+e/kAEM26kuj6CCbj8kp0PkSAL/pVd9Vi5yO3EJ+Qj/DrygeQ8j0j7HMJsaN yYiAZvIKAr2lgWTqXwqcvEuDl4uHc6znxwBUrbxzx+ieHiQOSStAgvs8nm3E6v6fieza wqKgqoelFTnBBtqmFqtxtauELln16jNLxGxXSNsnnMRtLFY4UF3aJh70p2xIYNFeGjiE rFWSdBr6pd9HlVxjYdfrl2HX6TX4VqKYvuYUmooPmmzCX5ZRkFtSQ17iyPbWnPxqfwQ0 aU/QyigB0mYgCXLCHDBv0UxlQrLUkQovjZY/G0O5f4UFIvLdwfeXe2cUodFjEPa9hQ77 xyQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=VebiumLG; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 21-20020a170906319500b00726323fa1c1si20589778ejy.384.2022.07.20.05.03.32; Wed, 20 Jul 2022 05:04:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=VebiumLG; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239877AbiGTL2g (ORCPT + 99 others); Wed, 20 Jul 2022 07:28:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37480 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240491AbiGTL1s (ORCPT ); Wed, 20 Jul 2022 07:27:48 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBA986D9EB for ; Wed, 20 Jul 2022 04:27:42 -0700 (PDT) Date: Wed, 20 Jul 2022 11:27:40 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1658316461; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=31EwgTSePEz//oaaW/kXUV7zURoej0/Uw2BQxz2bIgU=; b=VebiumLGMdO9dTP2oHSfP8beuVNsGYNl1i0qT/iRJv9io1zKV6uAjmYxMV+7S36ND9V98v cTbXU3QHQvN5/5wTwgqtX3RsMynXokDls/wiqV3lOnZ0UKLFQoWoPZ5Vuw83KLVjbwX1/u F4hisEzAphWDcGliKSBwtbG6p1jyJ4O+U8gXxREwaBN8kS6Nrit3EmnUAbW5WiN3u7Wku0 sKTw+HOmD82FWA47Y1Zdl3P8A45c4URViyJQDK6V5G/yZUYwjadzUmN8BEokzLlMekthrm 5MSRfbkPAFPuogIq/1Sh9PfWnaUt2sZCT3Fivyi/VLROkBzatl5eMu0SF1UTDA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1658316461; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=31EwgTSePEz//oaaW/kXUV7zURoej0/Uw2BQxz2bIgU=; b=scPm8djTkLHHF2WvvWkv4vDAmMyNPlJM8sJfQ54KKe1m5JUBn5RHS4JYgDDhd0lLHMDH/X eQEqm7kR8iCrsuCQ== From: "irqchip-bot for Marc Zyngier" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-kernel@vger.kernel.org Subject: [irqchip: irq/irqchip-next] LoongArch: Provisionally add ACPICA data structures Cc: Marc Zyngier , Jianmin Lv , tglx@linutronix.de In-Reply-To: <1658314292-35346-2-git-send-email-lvjianmin@loongson.cn> References: <1658314292-35346-2-git-send-email-lvjianmin@loongson.cn> MIME-Version: 1.0 Message-ID: <165831646020.15455.7763056129914310016.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the irq/irqchip-next branch of irqchip: Commit-ID: af6a1cfa6859dab4a843ea07f1c2f04938f1715b Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/af6a1cfa6859dab4a843ea07f1c2f04938f1715b Author: Marc Zyngier AuthorDate: Wed, 20 Jul 2022 18:51:20 +08:00 Committer: Marc Zyngier CommitterDate: Wed, 20 Jul 2022 12:05:17 +01:00 LoongArch: Provisionally add ACPICA data structures The LoongArch architecture is using ACPI, but the spec containing the required updates still is in an unreleased state. Instead of preventing the inclusion of the IRQ support into the kernel, add the missing bits to the arch-specific parts of the ACPICA support. Once the ACPICA bits are updated to the version that supports LoongArch, these bits can eventually be removed. Signed-off-by: Marc Zyngier Signed-off-by: Jianmin Lv Link: https://lore.kernel.org/r/1658314292-35346-2-git-send-email-lvjianmin@loongson.cn --- arch/loongarch/include/asm/acpi.h | 142 +++++++++++++++++++++++++++++- 1 file changed, 142 insertions(+) diff --git a/arch/loongarch/include/asm/acpi.h b/arch/loongarch/include/asm/acpi.h index 62044cd..c510821 100644 --- a/arch/loongarch/include/asm/acpi.h +++ b/arch/loongarch/include/asm/acpi.h @@ -31,6 +31,148 @@ static inline bool acpi_has_cpu_in_madt(void) extern struct list_head acpi_wakeup_device_list; +/* + * Temporary definitions until the core ACPICA code gets updated (see + * 1656837932-18257-1-git-send-email-lvjianmin@loongson.cn and its + * follow-ups for the "rationale"). + * + * Once the "legal reasons" are cleared and that the code is merged, + * this can be dropped entierely. + */ +#if (ACPI_CA_VERSION == 0x20220331 && !defined(LOONGARCH_ACPICA_EXT)) + +#define LOONGARCH_ACPICA_EXT 1 + +#define ACPI_MADT_TYPE_CORE_PIC 17 +#define ACPI_MADT_TYPE_LIO_PIC 18 +#define ACPI_MADT_TYPE_HT_PIC 19 +#define ACPI_MADT_TYPE_EIO_PIC 20 +#define ACPI_MADT_TYPE_MSI_PIC 21 +#define ACPI_MADT_TYPE_BIO_PIC 22 +#define ACPI_MADT_TYPE_LPC_PIC 23 + +/* Values for Version field above */ + +enum acpi_madt_core_pic_version { + ACPI_MADT_CORE_PIC_VERSION_NONE = 0, + ACPI_MADT_CORE_PIC_VERSION_V1 = 1, + ACPI_MADT_CORE_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +enum acpi_madt_lio_pic_version { + ACPI_MADT_LIO_PIC_VERSION_NONE = 0, + ACPI_MADT_LIO_PIC_VERSION_V1 = 1, + ACPI_MADT_LIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +enum acpi_madt_eio_pic_version { + ACPI_MADT_EIO_PIC_VERSION_NONE = 0, + ACPI_MADT_EIO_PIC_VERSION_V1 = 1, + ACPI_MADT_EIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +enum acpi_madt_ht_pic_version { + ACPI_MADT_HT_PIC_VERSION_NONE = 0, + ACPI_MADT_HT_PIC_VERSION_V1 = 1, + ACPI_MADT_HT_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +enum acpi_madt_bio_pic_version { + ACPI_MADT_BIO_PIC_VERSION_NONE = 0, + ACPI_MADT_BIO_PIC_VERSION_V1 = 1, + ACPI_MADT_BIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +enum acpi_madt_msi_pic_version { + ACPI_MADT_MSI_PIC_VERSION_NONE = 0, + ACPI_MADT_MSI_PIC_VERSION_V1 = 1, + ACPI_MADT_MSI_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +enum acpi_madt_lpc_pic_version { + ACPI_MADT_LPC_PIC_VERSION_NONE = 0, + ACPI_MADT_LPC_PIC_VERSION_V1 = 1, + ACPI_MADT_LPC_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */ +}; + +#pragma pack(1) + +/* Core Interrupt Controller */ + +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +}; + +/* Legacy I/O Interrupt Controller */ + +struct acpi_madt_lio_pic { + struct acpi_subtable_header header; + u8 version; + u64 address; + u16 size; + u8 cascade[2]; + u32 cascade_map[2]; +}; + +/* Extend I/O Interrupt Controller */ + +struct acpi_madt_eio_pic { + struct acpi_subtable_header header; + u8 version; + u8 cascade; + u8 node; + u64 node_map; +}; + +/* HT Interrupt Controller */ + +struct acpi_madt_ht_pic { + struct acpi_subtable_header header; + u8 version; + u64 address; + u16 size; + u8 cascade[8]; +}; + +/* Bridge I/O Interrupt Controller */ + +struct acpi_madt_bio_pic { + struct acpi_subtable_header header; + u8 version; + u64 address; + u16 size; + u16 id; + u16 gsi_base; +}; + +/* MSI Interrupt Controller */ + +struct acpi_madt_msi_pic { + struct acpi_subtable_header header; + u8 version; + u64 msg_address; + u32 start; + u32 count; +}; + +/* LPC Interrupt Controller */ + +struct acpi_madt_lpc_pic { + struct acpi_subtable_header header; + u8 version; + u64 address; + u16 size; + u8 cascade; +}; + +#pragma pack() + +#endif + #endif /* !CONFIG_ACPI */ #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT