From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 899F4C5475B for ; Tue, 20 Feb 2024 13:58:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 031596B0072; Tue, 20 Feb 2024 08:58:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F22E36B0074; Tue, 20 Feb 2024 08:58:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC37B6B0078; Tue, 20 Feb 2024 08:58:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CA65A6B0072 for ; Tue, 20 Feb 2024 08:58:33 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 7B7971A0688 for ; Tue, 20 Feb 2024 13:58:33 +0000 (UTC) X-FDA: 81812337306.18.24C79ED Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf05.hostedemail.com (Postfix) with ESMTP id 910C3100018 for ; Tue, 20 Feb 2024 13:58:31 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; spf=pass (imf05.hostedemail.com: domain of jonathan.cameron@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708437511; h=from:from:sender: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=YjQRJrONE2k1dv4BfqjPReozxQeVausH6gWfFLXgyMY=; b=k9G4z2XHO72xY/1cZiARNG85G+8bELwbj+E51EvMhNPKgnEUmTzen+7GwNqjvHIP4bLtOS zKKnqDVtkQMu4I7lojn06UUgisuW6zUQTkLh2x50CJQWfrhVEnHBMZGv8dweVmAiGEH058 wpfAIdY7S6l6AW1TjSy23TSaJQ4CXBo= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; spf=pass (imf05.hostedemail.com: domain of jonathan.cameron@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708437511; a=rsa-sha256; cv=none; b=ZwhSOHlhvoFgm17u0UbMwQYTUQ9+UduZM804Z3naKiAoGwIC2sarDPfmzTVvuBzxVcZ5UT e+OfTzMo/mnoxCTVc0P3IlkFBcdwrUGz9rFEUYrmw2EMmB9XQ6IwvGwYstR8ScqonAAjfF 40rE5wHbZAT4ojo3ZkAofZVirUFWlp0= Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TfLVr44Qwz6K6LW; Tue, 20 Feb 2024 21:54:28 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 49F37140B30; Tue, 20 Feb 2024 21:58:28 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 20 Feb 2024 13:58:27 +0000 Date: Tue, 20 Feb 2024 13:58:26 +0000 From: Jonathan Cameron To: CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC PATCH v6 10/12] ACPICA: ACPI 6.5: Add support for RAS2 table Message-ID: <20240220135826.000005e9@Huawei.com> In-Reply-To: <20240215111455.1462-11-shiju.jose@huawei.com> References: <20240215111455.1462-1-shiju.jose@huawei.com> <20240215111455.1462-11-shiju.jose@huawei.com> Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.202.227.76] X-ClientProxiedBy: lhrpeml100005.china.huawei.com (7.191.160.25) To lhrpeml500005.china.huawei.com (7.191.163.240) X-Rspamd-Queue-Id: 910C3100018 X-Rspam-User: X-Stat-Signature: eng78qyjozzdtnz5m9k3qnk3xe3334ke X-Rspamd-Server: rspam01 X-HE-Tag: 1708437511-854069 X-HE-Meta: U2FsdGVkX1/z+Yw6uBg48ZXSB6naehtMNqXS+5qO+kzxQfOD5em/211X/4vmKpIKtvNfZpNYVCb+SehcUyirjbcfVI6qQSoa0cJ82ZMwBWnp7ommI+j8MuwUMGTQVlRrORo8UpyoxLTCBAAptAY54njZdJN3RFIsQy1ZuIsu1d+Y+0btBlUU0GnR9IkfT9cq5kWM8DVLfIFTflPo9XTNEN2XK+2+G57sBJz0FLFo5m3+NZGn0lx4A48h2Nuaq8BrmG82sdMvYf/Y/QKV6SxNeHGxnxD/k/Vd/w+PoNVWcvmH8EjFnUryjqZvmO788g78uIxpHtwNQY0kppqJdHnIStjOfyxnel2UxOZI/nI1lmPX6PoBF9YTEDDuWV6O5yxUqvR7VrFEOMJT4UGloImLNyvS2jXKcu0kZHy3XWlmejjLNFMhQAEZ/yrA4KuSIXHePxRJ+BaUbMsv1AtvHIy0A8ZTykNtMTlojhG/xfXYHJrUcruLUUF8Oe792QRgZf8JUN9tQiyPwG8vaddAdvG5QUT9JsG5JK3WFKq45lHww4byGT9pfVIZzXHWDyosnEXwkImhSNWNDevVAfcS2yJ+9wa9PGCWxXzw2I2tDHCKjIAphvbbMfWFw3Nm1IQLTNpgKnBKOaoAdneVwgXkaQ3CW8tSif/RRjEfi5UnQMsHGlVOh9TVvgNPeY73wWF0OSLHRs9lIoo2b8G0GvJlcmHvykHBKB25mJ3MiMpVqmKZtC0d/IBIjXszCLcISvVb99CCQ3k40aFP5C2SnrTcn8ogw03pGGzRZGGD0r0k8M1Qgnq5/V//Ec7KqM6P4y+1jOU7PAkcQg38Pmwgy4NnQY8AGGIFX4MSSGFW2BMrDbSMn9NrVpdmGYOWqmbAtaaYu6Iq X-Bogosity: Ham, tests=bogofilter, spamicity=0.000006, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, 15 Feb 2024 19:14:52 +0800 wrote: > From: Shiju Jose > > Add support for ACPI RAS2 feature table(RAS2) defined in the ACPI 6.5 > Specification & upwards revision, section 5.2.21. > > The RAS2 table provides interfaces for platform RAS features. RAS2 offers > the same services as RASF, but is more scalable than the latter. > RAS2 supports independent RAS controls and capabilities for a given RAS > feature for multiple instances of the same component in a given system. > The platform can support either RAS2 or RASF but not both. > > Link: https://github.com/acpica/acpica/pull/899 It merged in October. Rafael, can we get this into the kernel version so we don't have a dependency in this patch set? Thanks, Jonathan > Signed-off-by: Shiju Jose > --- > include/acpi/actbl2.h | 137 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 137 insertions(+) > > diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h > index 9775384d61c6..15c271657f9f 100644 > --- a/include/acpi/actbl2.h > +++ b/include/acpi/actbl2.h > @@ -47,6 +47,7 @@ > #define ACPI_SIG_PPTT "PPTT" /* Processor Properties Topology Table */ > #define ACPI_SIG_PRMT "PRMT" /* Platform Runtime Mechanism Table */ > #define ACPI_SIG_RASF "RASF" /* RAS Feature table */ > +#define ACPI_SIG_RAS2 "RAS2" /* RAS2 Feature table */ > #define ACPI_SIG_RGRT "RGRT" /* Regulatory Graphics Resource Table */ > #define ACPI_SIG_RHCT "RHCT" /* RISC-V Hart Capabilities Table */ > #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ > @@ -2751,6 +2752,142 @@ enum acpi_rasf_status { > #define ACPI_RASF_ERROR (1<<2) > #define ACPI_RASF_STATUS (0x1F<<3) > > +/******************************************************************************* > + * > + * RAS2 - RAS2 Feature Table (ACPI 6.5) > + * Version 2 > + * > + * > + ******************************************************************************/ > + > +struct acpi_table_ras2 { > + struct acpi_table_header header; /* Common ACPI table header */ > + u16 reserved; > + u16 num_pcc_descs; > +}; > + > +/* > + * RAS2 Platform Communication Channel Descriptor > + */ > + > +struct acpi_ras2_pcc_desc { > + u8 channel_id; > + u16 reserved; > + u8 feature_type; > + u32 instance; > +}; > + > +/* > + * RAS2 Platform Communication Channel Shared Memory Region > + */ > + > +struct acpi_ras2_shared_memory { > + u32 signature; > + u16 command; > + u16 status; > + u16 version; > + u8 features[16]; > + u8 set_capabilities[16]; > + u16 num_parameter_blocks; > + u32 set_capabilities_status; > +}; > + > +/* RAS2 Parameter Block Structure Header */ > + > +struct acpi_ras2_parameter_block { > + u16 type; > + u16 version; > + u16 length; > +}; > + > +/* > + * RAS2 Parameter Block Structure for PATROL_SCRUB > + */ > + > +struct acpi_ras2_patrol_scrub_parameter { > + struct acpi_ras2_parameter_block header; > + u16 patrol_scrub_command; > + u64 requested_address_range[2]; > + u64 actual_address_range[2]; > + u32 flags; > + u32 scrub_params_out; > + u32 scrub_params_in; > +}; > + > +/* Masks for Flags field above */ > + > +#define ACPI_RAS2_SCRUBBER_RUNNING 1 > + > +/* > + * RAS2 Parameter Block Structure for LA2PA_TRANSLATION > + */ > + > +struct acpi_ras2_la2pa_translation_parameter { > + struct acpi_ras2_parameter_block header; > + u16 addr_translation_command; > + u64 sub_instance_id; > + u64 logical_address; > + u64 physical_address; > + u32 status; > +}; > + > +/* Channel Commands */ > + > +enum acpi_ras2_commands { > + ACPI_RAS2_EXECUTE_RAS2_COMMAND = 1 > +}; > + > +/* Platform RAS2 Features */ > + > +enum acpi_ras2_features { > + ACPI_RAS2_PATROL_SCRUB_SUPPORTED = 0, > + ACPI_RAS2_LA2PA_TRANSLATION = 1 > +}; > + > +/* RAS2 Patrol Scrub Commands */ > + > +enum acpi_ras2_patrol_scrub_commands { > + ACPI_RAS2_GET_PATROL_PARAMETERS = 1, > + ACPI_RAS2_START_PATROL_SCRUBBER = 2, > + ACPI_RAS2_STOP_PATROL_SCRUBBER = 3 > +}; > + > +/* RAS2 LA2PA Translation Commands */ > + > +enum acpi_ras2_la2pa_translation_commands { > + ACPI_RAS2_GET_LA2PA_TRANSLATION = 1 > +}; > + > +/* RAS2 LA2PA Translation Status values */ > + > +enum acpi_ras2_la2pa_translation_status { > + ACPI_RAS2_LA2PA_TRANSLATION_SUCCESS = 0, > + ACPI_RAS2_LA2PA_TRANSLATION_FAIL = 1 > +}; > + > +/* Channel Command flags */ > + > +#define ACPI_RAS2_GENERATE_SCI (1<<15) > + > +/* Status values */ > + > +enum acpi_ras2_status { > + ACPI_RAS2_SUCCESS = 0, > + ACPI_RAS2_NOT_VALID = 1, > + ACPI_RAS2_NOT_SUPPORTED = 2, > + ACPI_RAS2_BUSY = 3, > + ACPI_RAS2_FAILED = 4, > + ACPI_RAS2_ABORTED = 5, > + ACPI_RAS2_INVALID_DATA = 6 > +}; > + > +/* Status flags */ > + > +#define ACPI_RAS2_COMMAND_COMPLETE (1) > +#define ACPI_RAS2_SCI_DOORBELL (1<<1) > +#define ACPI_RAS2_ERROR (1<<2) > +#define ACPI_RAS2_STATUS (0x1F<<3) > + > /******************************************************************************* > * > * RGRT - Regulatory Graphics Resource Table