Received: by 2002:a05:7412:cfc7:b0:fc:a2b0:25d7 with SMTP id by7csp1744245rdb; Tue, 20 Feb 2024 05:58:45 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUA+wFEBUTBB70gwZWoPAUbzB011ZmT8J+8T+Ul+pFS22pSCN6j6sxtAbbRWpnXks7oo+7X/1Fmhy5UoCE6S+0Hkxd2y4fL40ZVSvWuhQ== X-Google-Smtp-Source: AGHT+IG0Z9gXb2t7EYIHKXyGeHqfubr67gau3Vdk+/tEsecv1jvTgMUKMJfisV8eBj8JxVFF/OdT X-Received: by 2002:a05:620a:843:b0:787:777c:c138 with SMTP id u3-20020a05620a084300b00787777cc138mr1888781qku.68.1708437524996; Tue, 20 Feb 2024 05:58:44 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708437524; cv=pass; d=google.com; s=arc-20160816; b=rTJiOfTJw/bBAXAbqcwqgF/Ckz5bRA0fWkde/Mq7DflxaKFfjuJEzMXD7DEHlC+1no w44fUkP5ne5AYSA5qH49jECX7v22yU/5qSB/mvR2Lmhcsoq7xozAihcc0LpdNrDnhKMR +OhH5lwSFbltwNPsHd3sGVqOf12inovQnlBOKFuDX8UIOvs60pgxusA6+tQPVPyhbWmn RAaazCAgQsB5RCA8PaLOah8HGdbA22ETFBoOeDEuPztS4BwD2P1F0pzZ9pkSAnZYKYgh p5tvdBysTQl5Svotr16JLYCQ4P7HluTxn94f0TW1RqquBsw3KrceFn9l5rre3RO1XOaD 1XPA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:organization:references :in-reply-to:message-id:subject:cc:to:from:date; bh=YjQRJrONE2k1dv4BfqjPReozxQeVausH6gWfFLXgyMY=; fh=ehmdxMaNn1e64k03FAUDGH5ufF0BMazsqKtQWl0yC7M=; b=NmTNdtI2ycPk3As6B30FAckApYZtO2zDZuETOGDsNLG/Udqq6pKMwbYJ62Ei2QKtkx gr8MUvFtaoImuFjKg5e51r7Dq8WfHmdptCR0ZwBYan7XK8pIKIn57ErBP/Rdm7KsAT4X olS+qGhlGqznOHAGaxxrqEraJGVvvMdJx9eZCQutZMjgyG4X81lWYJqikReBsyva7k5C REPa+/0C5PPE4Dpkx+0UJIvey5Ka8aYJRePZH9/Puz0b0EBGbiYKKyXQ8KwzCUDiWr4F 3VIYW0voY7R9oFVSJhmQMqf2fVhjX837gx8uR7lG0R0q29Ejw4VRwEVo7Ac92pzqVRlq BSSw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=huawei.com dmarc=pass fromdomain=huawei.com); spf=pass (google.com: domain of linux-kernel+bounces-73129-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-73129-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d22-20020a05620a167600b00787236ce511si8642561qko.179.2024.02.20.05.58.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Feb 2024 05:58:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-73129-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=huawei.com dmarc=pass fromdomain=huawei.com); spf=pass (google.com: domain of linux-kernel+bounces-73129-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-73129-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id AE97E1C21022 for ; Tue, 20 Feb 2024 13:58:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CE43A6A32C; Tue, 20 Feb 2024 13:58:33 +0000 (UTC) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04F3B5F875; Tue, 20 Feb 2024 13:58:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.176.79.56 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708437513; cv=none; b=RlRdQ7k5CiDKTMztOLnVKXasHo3XCVHvMVRBOdz5CzYrajtX6KhI0pfs18hSQsoXTGLHlXrTf+Tv30+xVyTHScZhxJEO3v15JvD+ylfeFhYk11doMBajEPG119aMz3f/HKyihQNQ6C7CplOE+ytYHwbRffjX7IEJmagrEyGY+Ag= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708437513; c=relaxed/simple; bh=2jZ1Zn0GEruFDEKcPjM7bIQpXDdfiaGStAVOT5f5KoA=; h=Date:From:To:CC:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Vlc4SqojyjfkklmAXNfa0MzMNp37prDOWpzCfEMf+4qJhhHLDEe1+lUfpxYxe51cznQ19ADAoih0JN0Ce/d624YbI+6pZaLpzkzSyubd21crwIHUrHvkgd5+aOddSS0ahjGOrTGhMZAtz6TGmK+bG7n/hMhRnnvo8FKUfYdL+to= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=Huawei.com; spf=pass smtp.mailfrom=huawei.com; arc=none smtp.client-ip=185.176.79.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=Huawei.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=huawei.com 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) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: lhrpeml100005.china.huawei.com (7.191.160.25) To lhrpeml500005.china.huawei.com (7.191.163.240) 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