From patchwork Tue Mar 12 21:26:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zaid Alali X-Patchwork-Id: 779792 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2126.outbound.protection.outlook.com [40.107.237.126]) (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 E42C5143736; Tue, 12 Mar 2024 21:26:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.126 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278805; cv=fail; b=Gd6a3X66dve3rljdvoAnIgPOJivTgI6fCM+/YQqbAUgv2RCxNA7AhWqQvqdwIgM1mLFNUFKPG5Fx0xIExlw3NTij7oCTNsoDo+v0EnAOVUlek6ANvswpe/4fKx7bkOsjBQa+P9nTDCnMYGDiGxYlA864GiqG5sACOWtEoBhL6XY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278805; c=relaxed/simple; bh=jy2Nbs7wx3OEKREZuBRlgCIg3NMfGpVhAbidgcXQoxc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Jm3tVUyCfA/z6T7zHQxo8WJbVPw8joogHFQR2EZKVdIx368KfH7ZXwE3sURYSU22PSo1N+BF2rus5xrkIx8u0cbBswWcgtd0AzwllWG7i504SzR/CkfY1rAUSGxVMVYsSP7A3+S0UoOTQPXtQtiEBiagtWwp6nVR24qQT4GiRhM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com; spf=pass smtp.mailfrom=os.amperecomputing.com; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b=u29DjRRv; arc=fail smtp.client-ip=40.107.237.126 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b="u29DjRRv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h1eLP6o2JIKGDybAU1HxaV5cbE/CSz8c8waPHwmpuHesU3vmg0gPJngQKDf+io3Iy0AZYZzbwB9wvbdHkqe5Aa7K8glXh7VQ3Vn0IzeC4ulfCdF7ZfLNwZFxrdD95UUWBWQpGGcMQc310W380plpw5zer13bSWUgAM2j7Zmp5V/iOcmZVcIUH/bEg+eGo06NE+8GqDogMw9W4YMdRmFhe33pz+NaL4N52i+rbNF0pjU0DAcwi0oxIVBFMxbmgadrgVXaa6J9Spp4iZDBf0wNLm+834x01Ii4UU796BsN4KlDtex3ajrzd6QegJBV4l7SmYLARdeV3zWOHvOaoHqw/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PNfGY6PYHTNwvv3RKekdKVsmPafI2kCRy74YtRcvR5Q=; b=JEeAZ08Fjc2pp+AGKnQZU1wXVQ8hxOhTmkph1V9lWuZBKr6v0CoWRjvGhuaV5QA/R/xIf5Iwk58Vfg+rYiQk+EjZqBI/4rwO/Zv7qi4y5RhJ7BXuGMbVbYbtjbmBw7oqexjdJLz54ZKuNwg2OpV2WJomMAOzFLdHc5Y2TxuSlbDOQw3nD9oMxVir553btelmxH4G9GGaDTYdvt0UB4ywVxddkc5inJnVA5He/7UpsMpJ4QeF9lFmhwCjIJgjEr+9aqK4t+zYHZg7BaLD6P8OtWvPVVy9pbpEJcORNkT39D81ttFXJ8z0a512BRCodi82pvWiHE+wpGJ1lfxTMZzJsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PNfGY6PYHTNwvv3RKekdKVsmPafI2kCRy74YtRcvR5Q=; b=u29DjRRvDEOt2RYPNV606NTIaNkg36EoxbV1n1tkiw4t31KwGC2ZcJUin28jzjil9H4r46cPx+Lpgkz1D5oiqwdZJxQWli91xTa+JgCA3DxK7wELQHrJk+UZS3zJsaJG3WT5WTnmTQ7jKQnTo5GoGstu9tUKaH6A8fiAXcsL9Gw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) by SJ2PR01MB8102.prod.exchangelabs.com (2603:10b6:a03:4fd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 21:26:38 +0000 Received: from SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd]) by SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd%6]) with mapi id 15.20.7362.031; Tue, 12 Mar 2024 21:26:38 +0000 From: Zaid Alali To: zaidal@os.amperecomputing.com, lenb@kernel.org, james.morse@arm.com, tony.luck@intel.com, bp@alien8.de, robert.moore@intel.com, Avadhut.Naik@amd.com, xueshuai@linux.alibaba.com Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, acpica-devel@lists.linux.dev Subject: [RFC PATCH 1/5] ACPI: APEI: EINJ: Enable the discovery of EINJv2 capabilities Date: Tue, 12 Mar 2024 14:26:22 -0700 Message-Id: <20240312212626.29007-2-zaidal@os.amperecomputing.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312212626.29007-1-zaidal@os.amperecomputing.com> References: <20240312212626.29007-1-zaidal@os.amperecomputing.com> X-ClientProxiedBy: MW2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:907::18) To SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR01MB7903:EE_|SJ2PR01MB8102:EE_ X-MS-Office365-Filtering-Correlation-Id: 3e1ed599-288f-45df-ba07-08dc42db1a13 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sCU3T+uOjb2IpKqBXGrEhhD9R7ajTRmPLvr4kMV8eo4wceGRzrxuYTHg0M9zT63t4bt+M5foED/GJzWEXmdjXt1m/eUYzqGa/yEWTGNdlq2gPoLMqggd1yxM/OICOyveExC0V51V4Qkvst5TMtftkdGtWm55eexzi4LYHu4MUykA6jCylDSzqyN1IfP2gYtN7byl74svgYA665Ob54m0rCLRd5f3hzoyvNn64brckpPoNaGdpnJuYzeOiLcaVy3eop6nRJysRn1pgJTP/HW8PWFVHLGvAUNitP5dSsyGiAoXVforXa8T1TLc2BJvPhEJTqxK/KMgsIcNN1bzO76eOUg5gd2KvDtrG9KaY1xfqdTmEBCYHZcN3p2SWx7TRnC8vJN+1htFABc7me8DkGvy/F2TtvBqnAuK1ChxY4L4V2zTEbY5Aw3Kg/xafjQujEL+ZRt5lR/XvwkQwF/844ZSgzFsOns/vnEBlpsYHiCE4hjP9YSakBEXE4KgLe+RPqU71qNaiPbH/dqsiTlrNRpHUTXeNQqxjF30Jj/US0Lcyo5Nzdra7S1pppVKa6uAl0N/CVzDIxo/4l60lNp/lza5mkDgUDgUOMxTOxDIjDw6MeMFFDqE2KZY35BuMhYOwDXGVFHITV9JHDudRwacVwsP3fVUA9a+9LMFGrqiyLH5PQLksv0+S8bH/VZcmDkZUQISgsNBoR1B2ySey0FFjEBzRqsFOUTmVTtEKImh/wWdvwY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR01MB7903.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(7416005)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +FIXpn1KDn2NJmm0vQwplmjCqaukPSBmXcOqBCwNM7jKWAW+NUQzblazBouqg4KskdTBPkK9GVYeKbuodTFVFtajIstCSbVpZDJ84gT8+QuHERFF2/jLMIFfJBxl9nbMGN+OcIrg33piqdzhsNi0Kbjf4KDgsn6B0x0UpQclKBrskITHirCHLN6gim2wFpvymiAzbRBAd7S2L3SnZkMkp+CHIpHsf9JuK3D1ps74SPo87yLXQfhbgSDFJCIvKmHvVLXsbh3KBOOFzkOWqGsSoqJqcrqsa/UBBAO19Epm3Dn2CnWLi5jmSIVO62c017EbYxEgZ7dKEAm+QfbgSZa8ioFUFcTcnzhqYd6AthcX6O/O0Me3XOxzw7JQFAkiPmsEzaHtkYRQv3Xx/anCT7b/i4HwDIr9WJW3Jc/tRGu6Rj7RoFaQLkV2QAqzEsuHyYePdUfquk8cZhWcmQRGlU9Tay0SumjgpOOd7N/B4UB1cOKAKhC7r7V4cqx4d8vzl6UA8bamkg7HK38bcc9rjuY7hq5UXOq3O1k3ZzdnhZZ0pr1sNCNqh7D6macfHxb2TJfaz0I4XFZkDIaaqfGOenThPsMD8MptpbUr0Fa/YkMmwdeUVQ9UKYjVBfDTdDbP0lY5i9eJlsqWZL5M86M2ne1a1hefXM5T3u+3EDQ1O0xaUp/u/gswwaiAFj98HwC0pSxvLAP0yl03/cD6Qq2BS/8OwWWRYxZAqMTWMuu68/UJMXnY8Cps8uODMVO15KIjg4mAYuTsY6KKRuYnQoX5PxgnCfgrW3M/8s+5v5FOGiklrcyUrb769Qkh9+DTAvc9sacxaKez1twBE9x6B7XnXP8R15W0ic0XHbd8Bqn169QUa/1Tjs7LpX5Z78qMZYa3hLRp7cAOJRl3QzpmrHgQuGFfMa4IEIe1f4qQ7M3WjFpqb+Fu6+Y10cOAQxQ0HfTUlTiI8+/WwuZbVFbTYitVeYZ96eeHCOnDkxm9jADSyoXsFSE5o03MKbOHY0HKJRA/02EVB2MBsbcKlve8Q81bH2lVW1YcHGUQcaymfDnA1pydvtNRyPoaqXv+ghA5FItwKyer8de7B0jd2tr8J47t0FmJ0sUn0sQePKyvxeT+DeWXRECXUTL+7ZsDawXqZX3jcTvNS7ChqWnE+KllCjHCSjXX+fx+J+smBH9asA2Vnx1h/idkZ4wh/iLi8Ye7q5z0zaXMnqnJLnwHwUB67CnjbVzBbPDXdBZst8+6Mc5NLw4JN6ZBDSoYLgMHxqBJrlL6oqkZMc36lkn0Uq6gmuX2FB1IGuDb5AtEctOW49BMfr760u2sQhzi+NTq+AP95XaV7Ddqw/SsJ/4kU3OXPYHSpJlfcEGCrfVW02FHND/qa7A3APJfndmOsR0HqdHMZnVExbStB529xI00qI6jK+iafHmuPkAel90IpDjaoEi5Fb1r/udCDnPWrOmWs/Jh9mhgUfuDQ99F0GpOq8YBVezL1gcNfekoNYZbbRk2xUnAr342JlTE3Yn/5dysfyt5RFBpUsaxoqn+0j6/cmNhJcqNfi/jMxdrRmaTsoZG94g66GM6Qw5iQDKfluDoUKrbzOX35iGBBpLKWU2LIRbdc7c1HSa09siA7QOIMp30L8qJNFI8zes= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e1ed599-288f-45df-ba07-08dc42db1a13 X-MS-Exchange-CrossTenant-AuthSource: SN7PR01MB7903.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 21:26:38.3472 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: onH7Re8X/I/yjCB0utQ5u4/mIHMYyBc0rr9OImmHwmCRnFr33RNJ1b8bb8f22kgsZXOhISTdC9c//VwxVIQ1U2lAyYAyvOJ+GNUqGDaZbW7dUCIpximBgqyPfowVVZ+6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR01MB8102 EINJv2 capabilities can be discovered by checking the return value of get_error_type, where bit 30 set indicates EINJv2 support. This commit enables the driver to show all supported error injections for EINJ and EINJv2 at the same time. Signed-off-by: Zaid Alali --- drivers/acpi/apei/einj.c | 37 ++++++++++++++++++++++++++++++------- include/acpi/actbl1.h | 1 + 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 89fb9331c611..90efbcbf6b54 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -32,6 +32,7 @@ #define SLEEP_UNIT_MAX 5000 /* 5ms */ /* Firmware should respond within 1 seconds */ #define FIRMWARE_TIMEOUT (1 * USEC_PER_SEC) +#define ACPI65_EINJV2_SUPP BIT(30) #define ACPI5_VENDOR_BIT BIT(31) #define MEM_ERROR_MASK (ACPI_EINJ_MEMORY_CORRECTABLE | \ ACPI_EINJ_MEMORY_UNCORRECTABLE | \ @@ -145,13 +146,13 @@ static void einj_exec_ctx_init(struct apei_exec_context *ctx) EINJ_TAB_ENTRY(einj_tab), einj_tab->entries); } -static int __einj_get_available_error_type(u32 *type) +static int __einj_get_available_error_type(u32 *type, int version) { struct apei_exec_context ctx; int rc; einj_exec_ctx_init(&ctx); - rc = apei_exec_run(&ctx, ACPI_EINJ_GET_ERROR_TYPE); + rc = apei_exec_run(&ctx, version); if (rc) return rc; *type = apei_exec_ctx_get_output(&ctx); @@ -160,12 +161,12 @@ static int __einj_get_available_error_type(u32 *type) } /* Get error injection capabilities of the platform */ -static int einj_get_available_error_type(u32 *type) +static int einj_get_available_error_type(u32 *type, int version) { int rc; mutex_lock(&einj_mutex); - rc = __einj_get_available_error_type(type); + rc = __einj_get_available_error_type(type, version); mutex_unlock(&einj_mutex); return rc; @@ -221,9 +222,14 @@ static void check_vendor_extension(u64 paddr, static void *einj_get_parameter_address(void) { - int i; + int i, rc; u64 pa_v4 = 0, pa_v5 = 0; struct acpi_whea_header *entry; + u32 error_type = 0; + + rc = einj_get_available_error_type(&error_type, ACPI_EINJ_GET_ERROR_TYPE); + if (rc) + return NULL; entry = EINJ_TAB_ENTRY(einj_tab); for (i = 0; i < einj_tab->entries; i++) { @@ -615,19 +621,35 @@ static struct { u32 mask; const char *str; } const einj_error_type_string[] = { { BIT(17), "CXL.mem Protocol Uncorrectable fatal" }, { BIT(31), "Vendor Defined Error Types" }, }; +static struct { u32 mask; const char *str; } const einjv2_error_type_string[] = { + { BIT(0), "EINJV2 Processor Error" }, + { BIT(1), "EINJV2 Memory Error" }, + { BIT(2), "EINJV2 PCI Express Error" }, +}; static int available_error_type_show(struct seq_file *m, void *v) { int rc; u32 error_type = 0; - rc = einj_get_available_error_type(&error_type); + rc = einj_get_available_error_type(&error_type, ACPI_EINJ_GET_ERROR_TYPE); if (rc) return rc; for (int pos = 0; pos < ARRAY_SIZE(einj_error_type_string); pos++) if (error_type & einj_error_type_string[pos].mask) seq_printf(m, "0x%08x\t%s\n", einj_error_type_string[pos].mask, einj_error_type_string[pos].str); + if (error_type & ACPI65_EINJV2_SUPP) { + rc = einj_get_available_error_type(&error_type, ACPI_EINJV2_GET_ERROR_TYPE); + if (rc) + return rc; + seq_printf(m, "====================\n"); + for (int pos = 0; pos < ARRAY_SIZE(einjv2_error_type_string); pos++) + if (error_type & einjv2_error_type_string[pos].mask) + seq_printf(m, "0x%08x\t%s\n", einjv2_error_type_string[pos].mask, + einjv2_error_type_string[pos].str); + + } return 0; } @@ -662,7 +684,8 @@ static int error_type_set(void *data, u64 val) if (tval & (tval - 1)) return -EINVAL; if (!vendor) { - rc = einj_get_available_error_type(&available_error_type); + rc = einj_get_available_error_type(&available_error_type, + ACPI_EINJ_GET_ERROR_TYPE); if (rc) return rc; if (!(val & available_error_type)) diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index a33375e055ad..a07d564b0590 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h @@ -1030,6 +1030,7 @@ enum acpi_einj_actions { ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8, ACPI_EINJ_GET_EXECUTE_TIMINGS = 9, ACPI_EINJ_ACTION_RESERVED = 10, /* 10 and greater are reserved */ + ACPI_EINJV2_GET_ERROR_TYPE = 0x11, ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */ }; From patchwork Tue Mar 12 21:26:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zaid Alali X-Patchwork-Id: 780098 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2126.outbound.protection.outlook.com [40.107.237.126]) (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 DAA5B143753; Tue, 12 Mar 2024 21:26:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.126 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278807; cv=fail; b=egDLgQbT017cbFDkKIiTYBHJtsyR5q6IaknCXFNkgC1umXfJjrb+sfpzi/Lmi5GExAfroUe03Ch8R4xNA8dRbkZLR1+2xQfghhHwuiYrLak9e/rXD04mmMoNuZ+l2xypYzxz6Ds8khzGxftGAT+gQlUMNaKRqLpLyA1daSbtyoY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278807; c=relaxed/simple; bh=cUnYl5HsEIlXDXg+vIkOKJNE1eKXK/JVFJsV8tqfUYM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=WXCXxbdU9TSZ8ETy3wnfkyz93FvsALrBljrBupYzac2iBzr0QmO5Yxed6BgDgUb7ERsHtC2TYS0yiy5bMvcO1N9RtvAZj5L07o0mRnOtNd6oEmBIg12NjH9bZ45aM3m9BrKPNzDWl6TH23AQWwipDXmD7YMB5y1Qst5HsYx969o= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com; spf=pass smtp.mailfrom=os.amperecomputing.com; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b=Zptw8E2M; arc=fail smtp.client-ip=40.107.237.126 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b="Zptw8E2M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L6UcvlyUmjV1Dyp9DrmXv8yp/TPcybBNiAJGAe4AgRHif7bAicS4NKOrQ4QLbGh/UAdLos+As8qIxA4Iz2rATMv7nL2jJPRdzCIgr8X9orrhlaIEvQbbRJcM1AoQhelokeN5+MCnoJHEpHiPY72b+ZfbanC1AkaofDyvzVqH2k03Pid8JGNYaFYOZpBQQhaeBuQEFiiCz13fRkq8TtoTKH/0VSpcT47TkV7+l1Cp/BT0Cn8i0lIKrtA3vhPYB/VJmynG26Gu9BIa8t54CV2xklZbzWfxO2p051G9CefMLpcizLJclsOENkyx1W20vPJu/mijTAB0FnPG9maSE9R8LA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dgD+GvbHXc2pCRWJ/AHxDNTqAAK29oc8HnBBdYvGaeU=; b=cBo90QZvOWEuhxydYxuq0Euo5SxWbMbsV/kHoNozuz1ICHYNAXKv/iyneyvFZiNMPxdYeWlOILGY8DpdLNq4j+kzMM8eZet4/wILD3QHngieOZSJOXEQS2EtvU9taxmat0glrYNQPwMdoSLJ9ULZQglrZx1NqGqVSsi6LHRAG5uio0ngBFvNCgEPpA6tBniWjWJq1yNpYn4L3yByFeASVAZktEcIX/dzyXrVQtn2t1ez9EQkY64mSj0+IgoA+pGm3Y7CHB2/h0Jcuh10cC+cZiQnQXvr14jzy356NHwiXqwhJ0dmyUSRcIr8Yd6ZJdr0/CbxSVeqo2ldASWkyhtXKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dgD+GvbHXc2pCRWJ/AHxDNTqAAK29oc8HnBBdYvGaeU=; b=Zptw8E2MKIDxCeCL9GeEeXAdtu5WWqto/EmD5E0ZawnZYw32bQ5shME41qaWpUw2cS60szt6e/Re9og/5u+34XgfdUC1XobuFblZO1p7HAXRgvy1cJ5y1pbvF4uhnWjG0qKXp1CWWSTrbtThrmA9PDcDIfDPPX8qGSp4aii95+I= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) by SJ2PR01MB8102.prod.exchangelabs.com (2603:10b6:a03:4fd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 21:26:39 +0000 Received: from SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd]) by SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd%6]) with mapi id 15.20.7362.031; Tue, 12 Mar 2024 21:26:39 +0000 From: Zaid Alali To: zaidal@os.amperecomputing.com, lenb@kernel.org, james.morse@arm.com, tony.luck@intel.com, bp@alien8.de, robert.moore@intel.com, Avadhut.Naik@amd.com, xueshuai@linux.alibaba.com Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, acpica-devel@lists.linux.dev Subject: [RFC PATCH 2/5] ACPI: APEI: EINJ: Add einjv2 extension struct Date: Tue, 12 Mar 2024 14:26:23 -0700 Message-Id: <20240312212626.29007-3-zaidal@os.amperecomputing.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312212626.29007-1-zaidal@os.amperecomputing.com> References: <20240312212626.29007-1-zaidal@os.amperecomputing.com> X-ClientProxiedBy: MW2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:907::18) To SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR01MB7903:EE_|SJ2PR01MB8102:EE_ X-MS-Office365-Filtering-Correlation-Id: 1cb16d6e-5fe8-46cb-cb36-08dc42db1aaa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jd26rZsjQEn09HW0XVLpaIvY29gCdmBBjJsxW7FATtQRqJTkBRrblwKUnXDM0HP8zCu7WBzszBJO+tKMO1GXCvCJf7SXcYxTECSjKKSbhIIGK9uS+q4ojlxE2bZaJCbQUoNNuUE4XxLe1xvpUBvF+P21Lz3TuaaJTEmPB3sKyCp6vLWW5QD4XOw0WrqHBU3BsNmfZCYPt2D8MQbII6mO4PR+03HgzJdVeIYFC8QfExOrSwhjVnNnpZT+6JJ6ivrSVpOUeo8iNWlbpE672YX5h3a7t5qaEAEiHDB8N7egD+mAbX/Lu9YfYuf06o0clbtL8xWT6f0E8f4Ft6rW2gmmWddtYqP9kaBP6pvQiqpZ/zc296WBliIQxfkbmYfQHden9WSc3WecBFB7XSLK5cwIdb3pYJavMt4LV7zM3iwrwmYHAphsnicCGF7V5DohcbUy7UzgrHezRyS2Lz2Hjb2DxDADQ/+7veWo/Q16OViOji+j3oTVD/j0kvAOvyfhqwgE6O3jZcuMyRugE8lD5tbhZ/PtNi91I4dSaedOERn1daYpuOLDGbkNGrRTJKpzG4h+1GSEp+Vv30vglKAICDksW9AqzCuiYqtpj61hBvpNkppiF6aFQjMxgZBybX4PcXf6qzUsRihfWD5bKuCu0K/DEwOjqInG9byybpuxhqaqWic= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR01MB7903.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(7416005)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LKZbqkuinnkVAGzaRB5j278lPNBkVKXAWDdDBkNe8g2ZSn/DGVhSF4qsZYgqI/esl8Bf9XsRGfG/XhgpAE9Up5r9zObHuYj9Y3IBFhH9YuYU4X+N6vOnPbaP5mJaNbC7ELj+iPYDxCloh1jWcfoLrfvfsmrWJS0qpsR9Tdk950LgFnmCa13pvW/m6TwQXToYRxY+KdLCNJoAxHiOvkjhrE5u29OEdF1WpdPIqQGBJI+nSoPVCfqi8gAhKN3urpoRHDVM6xTjdZJPzHUG37OEktI+xkmaSLgHLhKhAQfZVnvVLEM/lL6jbsavtji+R37gYmXeX8m1CpZkDGx0KUiNBM7u/NtVQ2j2ZSEeoxxoyijBkA07XDmHBZvGV3fpoRAqnwhGaewlKcU6IML9Dap5htDm5YQXL+8R34TmkeDoMbo5ifd1X57fBwSXHD1h7va6JCKxQZbFaqjobrXpr3PbBzU6+ruY403WzCecjk2V8fHvDuXFnZIcpHWegXc8VS+batoKcM01i2KHkJ3VPtmwh34xiawAo59M2aKFH1dx+xWXcmHkHHgLd7JK5lKJ7iK1SELSwP2NREeWaNb8bpcV4AEjCErjDjsYrXqlX57algC/J91YYWay6KFyW3LV6y/2FMYjkUjGzUA8uTeUbmXaBmBKsH2pIgnBz9JDGobRPFSbgIaP8mFCjSA899wOe0NrZfYEG4PsOzJvQobjNTHhVrRa5WtKcfTPCM3IvKl8aiOE+MvJbY38KqQMQr3agnJwuOQ/3HzrwS4IqAhpDPK3dkQWqnGNMdD8imw63wmUAm+alxG8iz+7XNc+9CwYFNS2Zll0jleAPQRLctYrM2J5JxzTgAqFG/azTuNnZB5LrAcDn4blU52wBdzCV6ZUaUMKXTPt6YMCRWun/4Pdksafp1EvfurySd7edbViZo6mTua6KCslgsduWqM6780dZA5J1hn2mZcDUFi6r/74hz23hg/uy6aWXonvGgjrmtT+MH8Epg7P4NVCsqDSiLmNB1R6yFJhhUI+2Ry6bmo8m/pnXurVicRsoP2slx7jqDUP3jYHXCbvdj8TldxdusKiW0WrHWX3IjRdOzFA/uzElCwqxygPNnMCNWDhzruvdLaVENCrwZaaWx+kY/GokTiZ35HKfT5Kj/RBeM6HLI204+Qeq1N8cO2g9VhSBh9Ns31KpewtqbC7jJEhicf1rS5HsuqZFkqtAqPd30kjGWW2E2rzKeGMrOkO8Zkgm7FFSlKDy3icq570zNix5Ofq//Xqk3e3rxNfcRadr/IYqpi+BbNS9M4e/cYApZ7deEoeUPqcuVNZK1DBHLRLRKSf2GuVD/fquFr7bAIhH1S79AqgK1VgnPIr7hQMPoLCj66NQ7U9lH+zDFnkE6CpOpQAiW4/2YzQ03LWbpje3kM4EvXdMnk82w62phZB3rzDvGjwrkKqdPQJBzxPf3zUX+VrY1l3LLIThHQm1cp/cnTeasW2Lp64WYudxnZTTlKdDx9/sZprP4c/7nN9L2EuAOJPPh7kQ5H3n2AaHSbDrhrfEgiF4Y4DQG9Pe2TjweHbVAC80luM4QzAeKsVlRTO/zMzlNr1aWSGzrc1BCQ4/OM0peTpH9d3WBXxe0jfw7plCFJ6W5n/zoE= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1cb16d6e-5fe8-46cb-cb36-08dc42db1aaa X-MS-Exchange-CrossTenant-AuthSource: SN7PR01MB7903.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 21:26:39.3988 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fbXGPERLYqtQ7QMGu4toSCcvu/NIu//VdjyMl0bAKK2Kx5zMrwSceNJhCq/nW0cOflEtp+f6F7yKLkShasDJ8yaDyzjdk3NFO0/YT9li/nxnoxTX4t7OPFa442z/vbNU X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR01MB8102 Proposed ACPI specifications(1) enables EINJv2 by extending set_error_type_with_address strcut. This commit adds einjv2 extension struct and EINJv2 error types to prepare the driver for EINJv2 support. (1) https://bugzilla.tianocore.org/show_bug.cgi?id=4615 Signed-off-by: Zaid Alali --- drivers/acpi/apei/einj.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 90efbcbf6b54..119f7accd1c9 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -43,6 +43,28 @@ */ static int acpi5; +struct syndrome_array { + union { + u32 acpi_id; + u32 device_id; + u32 pcie_sbdf; + u8 fru_id[16]; + } comp_id; + union { + u32 proc_synd; + u32 mem_synd; + u32 pcie_synd; + u8 vendor_synd[16]; + } comp_synd; +}; + +struct einjv2_extension_struct { + u32 length; + u16 revision; + u16 component_arr_count; + struct syndrome_array component_arr[]; +} __packed; + struct set_error_type_with_address { u32 type; u32 vendor_extension; @@ -51,7 +73,9 @@ struct set_error_type_with_address { u64 memory_address; u64 memory_address_range; u32 pcie_sbdf; -}; + struct einjv2_extension_struct einjv2_struct; +} __packed; + enum { SETWA_FLAGS_APICID = 1, SETWA_FLAGS_MEM = 2, From patchwork Tue Mar 12 21:26:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zaid Alali X-Patchwork-Id: 779791 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2126.outbound.protection.outlook.com [40.107.237.126]) (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 BAB9F143C5A; Tue, 12 Mar 2024 21:26:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.126 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278809; cv=fail; b=XkzA6ok7xZgVYdUjjCkoWxlTL0Q6VAGes0R4vYQJvFYgmGJ1mOeRD9Zz0CQ8223vJq33iaM+PD0mmrToTRTPEXB6YUk8urcqVSqCGEKpp1M7xXC9JmFroDd3pcmlOOkmmO+g/F7W+nKhS4HpLodvtThxW4bpuJ132LCwTlTrCYA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278809; c=relaxed/simple; bh=ba02vKZZDpq+pXgFEqxEZTzP6l50J6Ucjh38GcXJ/+U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hN1gXlJDLJZCkBcadDFJ+gi3EQypVekUg+r1MIjedewTFRWMU2MFkWAFPL8+nQbA2J67dzEJo1q1DP/aDEYhseHEhRYQNOF0ceN+caX5Pn4nZwVmMtfVqxcxRsnaxF7yZW/XBBNibp68j2atrEtkxi9Z5xjyoHHlQoBoamnADTc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com; spf=pass smtp.mailfrom=os.amperecomputing.com; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b=nihC92+v; arc=fail smtp.client-ip=40.107.237.126 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b="nihC92+v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SCatB8zXfEhe5RzREjb6xxJi2X5MKPbAjFna1gGt3tbMXdPU5HnBnYAsd8BHnX/nEsGPDaR4R1sS9GEfCFIXphq9XVYeE5w0QBKmMvoJPB/PdfTUcGLF+p8/zaC34F61xDHj7xn9Fvhou5Wwdydrg1SNG9ga/eTmQtRQ6P8zVRbNTMa17dngFNOCl6zhpK7pV7l38J7KxziuXPC7YTHzuZsBKdbZ/uepTMUjmUpGp8Dnt61AC0s2Cg16sboOiG6IdUSiKNmH8tE7HU1EJYNpeLUfi3IG5mtrE0c8g+Sm6T+3e5tBfK7LDw06Dq98rtzBKm4Ln+SslsAhSw3iaeSLFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4uiGQIU/A3Z3ZYKATxPdS4Xr87BjtAlcqy/z+qxPY8Y=; b=hvUhanGEyCHraYKmLEiAdVGsZpjLj6v1JoSBd8Bl2kOYzfzOCQc/2Nz8N/KsXnZGEcVF9bhzUDkR9SvpRvjyhDuppCyTUQOj+Nxn6LaAWr/f3v8WuRrijLyZIE2fAQzolDdamqYNiKDEsGqJ4DyVDNx7lfD8rjRN/zlXsYwb45BKUSC+Jph3tnXkjdNhw2uhLiRIcS/2yCN4QJh5oBqRhLT96lTRJbxv/y0k6b1Bbhbki9UH8pd3YoNbvG8889vLhMFQKqkNd/QuHh2tdbyxu706KrBK39R8LYcTNg3gucoYcPzqUfoP4MGVt4DRdRIWJDOFyPAhzrHNlSU8tw62OA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4uiGQIU/A3Z3ZYKATxPdS4Xr87BjtAlcqy/z+qxPY8Y=; b=nihC92+ve7opHKIGKMhP82AtX+NZMTE88AeAqj9MmVhuwVIlju+1lev6VnSzNJmSRbTEk/cl6hIv96CWhNXNZCQL+ESrJWsiOuVHEkTBsBwkia7xOzMel4yHyLuJkQPkyOWwLhU5oRHGjdEej+tXVdjjaOo7S7B0CqW9O+DY/RQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) by SJ2PR01MB8102.prod.exchangelabs.com (2603:10b6:a03:4fd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 21:26:40 +0000 Received: from SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd]) by SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd%6]) with mapi id 15.20.7362.031; Tue, 12 Mar 2024 21:26:40 +0000 From: Zaid Alali To: zaidal@os.amperecomputing.com, lenb@kernel.org, james.morse@arm.com, tony.luck@intel.com, bp@alien8.de, robert.moore@intel.com, Avadhut.Naik@amd.com, xueshuai@linux.alibaba.com Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, acpica-devel@lists.linux.dev Subject: [RFC PATCH 3/5] ACPI: APEI: EINJ: Add debugfs files for EINJv2 support Date: Tue, 12 Mar 2024 14:26:24 -0700 Message-Id: <20240312212626.29007-4-zaidal@os.amperecomputing.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312212626.29007-1-zaidal@os.amperecomputing.com> References: <20240312212626.29007-1-zaidal@os.amperecomputing.com> X-ClientProxiedBy: MW2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:907::18) To SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR01MB7903:EE_|SJ2PR01MB8102:EE_ X-MS-Office365-Filtering-Correlation-Id: 32efdd6e-9c4c-4f02-0d53-08dc42db1b50 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F+TM/MgicbSAp0P2YNkv5or7CG24Rv+gDmUf6vcWCMBDJG0U2Mp+y7T8G8a9Liza064aXAn6TNularsbkXmZqg03WPFN69jZH0v+aGh2LIHEHnCY+IHY8C1Oe9pKmQnx4qiyJD4M7b29rYhIIo6aXu/kXTuzlHYdRIa+6F5UecXDlMKrXbp3la7D4D/V5cNB0xdyvA1XFnBvTf1HmQ2pYLvvFFRq7W3mLsB6dFVP1frho7T8qdYtcP3slWHgVp40P/KqN2/fYhoazTALVvdtgR+CuVBIZw52mhQZRBdg5URYkOc6N3j3661xfibTypZS/FxSycyDgr2ROF3pXq0eYLGd2XOaWdSkLdiV7SyP/f1Dn1WpTfW8qQRizedGH/imV6XFkt0KltKa78LTl5yvbhDYMTEAiI4pu3zENt9h3VZDa/wIIM7rpAy7vJvNeJ/ivxLnygyfmDBLE3XBmINUj/7+socTSCrgenX73MDBSM/dTO8w/At1m8cfxJcPG5hleJS+72zhTZn2STvKU7EFELU6jMt+3yRGzxags4iLNp3empVT7k++CvanNWII8leiSgDz1etQtRY+ktdJppmVUiyg1vzN8/PUmagNo4j/bYiD4a2QrCHJ75rCmpNstmqWivYCTuWql15mrXj9t6Wu++XEmbKjKROCqYfx9N1HFmhEJdpc9ESoCuWdJ4hsr1XK5+scHIdHZ7RTTt6fRweeCQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR01MB7903.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(7416005)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: l6wg2LNzRM4IHyt3zVLTirH0bRgVyCIWMzAGUiJMUq2fk8kaHnB2fXvdIICJspNdxjk5Mqq6lyBGZLjMiMfsmNjOz6QG8P2wljEVMd71xLazkM5q31o5qjfxGq6wtNAbU3J4Vpk7B0F7OMqp5uAz6Cfp+ue6a+xk04CE/0/BF34lvZEBSlN90IjWQNU6HfbwvIcW5HsGFj1tQhEPXTyJibizwy+Bj7zRrNo+lMW6GzYNnwhNyTnmTF1mZGipyBu8yR2a5OlHF2AlyiuSw+132VfjiiixFB3ByPiLSapUwVewctUg1aE/CSAayEUZZeszF/fQjUF8+HDIoZKvcY6fiHBKSIa03+YdIOUBW+8QRveCjgeUugH3DkOuN9KsGeH//0+DFjCtJGPOxz2ipTiNI7awhFZq8zys6FaDqjq+IMROF6v+ua6Apjhd192UYkyAz5scrtVOlyCbj/AvWtjrt84aJAeFg1tuyePg9L9nX8A6bPwgh4BVLiPBYfGFwY7AdFkeFStQ4j00hsCpwTX4SWYsauDBlNAOZ22S1WobVPnlPKUlq8SPr3eIK4ZrQGwuSbHu7qb0ubKGhUbqDQgzuo93t30KvepVDemI4BoqXbaGrcXAPlCcpCBh+UPLNv3bwUX2qmz/hIamhyeTKnNHcwpFEOKnYwdfPI0LlhkQP+zeKGpVDvymAkc38ReehyByGEVO0rjqevBFpYNZ+wcJKJahwwjP4qDZ+3cHBPYAc6hVlc3kEyQftuOjU5f3eX0z8f1XNIU7nNhcxbJOKyL9Ifz+kMLYTF54k29IyC/z7Me6rZJcpxt0D7jLFJ9u+DJDRmnaa3BG/x7M9cakvnk0t7pAr88+x8OlzN5jZMaug0rxQA+CJA6zXcbCzcvkFVQTFzzCD2j9rwu3tW/kLwGyD6hbcgu6nE6sEUues703Ho2zDpGXrp8hVP/PCjX1gTMcRZFDj72vNVb5W86B0Dcy9AD4C41BGPAKmOdy+owhO6u5fOh16U3Tv+0hCLic8rZO6luzvdTYuVe3w3H2ugRVtPrzmXEhV6DWDRDI5leNLA7aMAVeNgQtm0wkGJI3sWIfje/wCwsC9s5oMu4zeaYMv94WPnfBMpcTXK1fiqYJgycSw/o4P06WJRUlbenPi6s4ljiOKiIyFAvXI+0O7VCeSE5trwfsVu0fGjqPV/r2HDSAKZPLf21YbbD9On1KpoBp62CUNkl43aOvODEApDaHhGW5IXWsG6bZWsq38+jxrvqeSZqS+7P+tbdxbTCg1cD4btFbW0Nx2qpfADYsjHSKY2S9Wa7Z2qxahyDAtU+1WqHYXh32i+p4hWKCOnY0XeijyI9br4oiOkt0p074cenBiRHkwY7MeM+QVJomIECR9wCafggsyKfvNlLVmkBRT0owo5dWh+s7YdCQvFm2m4iMN0L9Ftn0OGWAbjaPMRem+lbqEifTwA96kvbpPFiSaEttdfmefDxwKQsSq/6gjeSj57J31IRsi90GGtDKfN92a8NefOtl/E5T3upir9sDEgl77hUxeC8Um5KTnzHR8aNbNCceqPzyYVDp/4DUnH2uyJoH0Oh7lBWtcXBMRdb2NzX0MMChhfVs7tksZmH3seM55lu7CCESfom5ksnSNdVJbPo= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32efdd6e-9c4c-4f02-0d53-08dc42db1b50 X-MS-Exchange-CrossTenant-AuthSource: SN7PR01MB7903.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 21:26:40.4334 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VMClVZaNH5a6MGfSW1VDHhfB7b/oaIwcwGi+s2Nk4nzxioNvyZQaPK39Hyl1m3Utc13l+saijgd2bJI5AJIhqY0Jrr8lXN6AvJ6IZdV/Syu32U8tOIEjUNoiFRA1oeRi X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR01MB8102 EINJv2 enables users to inject errors to multiple components/ devices at the same time. This commit creates a debugfs blob file to be used for reading the user input for component array. Signed-off-by: Zaid Alali --- drivers/acpi/apei/einj.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index 119f7accd1c9..ceac53aa0d3f 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -101,6 +101,10 @@ static struct debugfs_blob_wrapper vendor_blob; static struct debugfs_blob_wrapper vendor_errors; static char vendor_dev[64]; +static struct debugfs_blob_wrapper einjv2_component_arr; +static u64 component_count; +static void *user_input; + /* * Some BIOSes allow parameters to the SET_ERROR_TYPE entries in the * EINJ table through an unpublished extension. Use with caution as @@ -810,6 +814,8 @@ static int __init einj_init(void) einj_param = einj_get_parameter_address(); if ((param_extension || acpi5) && einj_param) { + u32 error_type; + debugfs_create_x32("flags", S_IRUSR | S_IWUSR, einj_debug_dir, &error_flags); debugfs_create_x64("param1", S_IRUSR | S_IWUSR, einj_debug_dir, @@ -820,6 +826,25 @@ static int __init einj_init(void) &error_param3); debugfs_create_x64("param4", S_IRUSR | S_IWUSR, einj_debug_dir, &error_param4); + + rc = einj_get_available_error_type(&error_type, ACPI_EINJ_GET_ERROR_TYPE); + if (rc) + return rc; + + if (error_type & ACPI65_EINJV2_SUPP) { + debugfs_create_x64("einjv2_component_count", S_IRUSR | S_IWUSR, + einj_debug_dir, &component_count); + user_input = kzalloc(PAGE_SIZE, GFP_KERNEL); + if (!user_input) { + rc = -ENOMEM; + goto err_release; + } + einjv2_component_arr.data = user_input; + einjv2_component_arr.size = PAGE_SIZE; + debugfs_create_blob("einjv2_component_array", S_IRUSR | S_IWUSR, + einj_debug_dir, &einjv2_component_arr); + } + debugfs_create_x32("notrigger", S_IRUSR | S_IWUSR, einj_debug_dir, ¬rigger); } @@ -871,6 +896,7 @@ static void __exit einj_exit(void) apei_resources_fini(&einj_resources); debugfs_remove_recursive(einj_debug_dir); acpi_put_table((struct acpi_table_header *)einj_tab); + kfree(user_input); } module_init(einj_init); From patchwork Tue Mar 12 21:26:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zaid Alali X-Patchwork-Id: 780097 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2126.outbound.protection.outlook.com [40.107.237.126]) (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 905F2143C7F; Tue, 12 Mar 2024 21:26:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.126 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278811; cv=fail; b=Mi7hgp1LAOZiDtZbQT2pDkZj/FOaeC8GK0chk2stOSCc61Oq9ft69jXd/uaqmH2Qq0O8X+LhdfDT4RM08NQnUWy3+D85+E3fE/o9E9iM1U5C6x4e7KdN7au89+QYt1B5h/T/BZqGTXAajS9UNpjxiqZ4y7G4XGCHZ6kR8X/E+Ro= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278811; c=relaxed/simple; bh=Zouqv0H5L57F70wlrfIVnkRFBAfzjyUsXKhaeVoGmkc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=F4s2Q+UGd+aYiyObM/R/HKC1LGkTUt2bMOGtl7PA47SWpMY73EON1+6uemIDvm7ghCbRDenbwkiBHj9w9MJhradfAkIOEspD/efNFOv+evmglS6ikrp/rTCNZy2nW7wahe9oKZhxpEnpiRuZJNV6UITMPXsXgArVdydndwxJh14= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com; spf=pass smtp.mailfrom=os.amperecomputing.com; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b=WBDlgpJV; arc=fail smtp.client-ip=40.107.237.126 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b="WBDlgpJV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mS80xVn65FJHm0kPrDr7CjBedfbTlqR8qGtsjfq/5/ku1Ua/g2jLVwYXHXGlRXqnLo8HcDOlv0aEMDnduuIUxlI7RsHXUvaKd1e50tDXLr1ntvlVz2BkZQ10+11s5YXL3+a/mdh4uDyi+TX0Y+feXxyxPlZsHqxalfWMfyW++jjVcnaTI1Uz6k5JNbLVAHM1U8RCNf4Xdfo2r0Vqm0F1BLrJu/v540/PyBFnokD7nC8zfbEuCUTDRCNFaExlsBVK0bHaj4ySaakyBpSTUP4HQuz8H6D9wZn6E4QWE4h5OFsPJlHG8dPQ8as/c2dRUuRoSSmKlaMq215gCnFhiD48dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=E72ao28cVRLUj9uWfez2xjvUiB007hmiNtOKAy/mdHI=; b=UaBFmKi6VaT6hHMVA1tFH4JD9gk99bNYQM33bbBcn8WZ7Ei6hrxt2PJx5VapONWtMRUeX+Hk3ghPsoa0sZEVlccHym0+PnbGvJnWTM1Z/TnTKbZozERWLmGNPSg42WeIlFBCPbwBc6kq8uXAmWDNuxqfxm9BBBWES89TAdl0wnbGTvuLmqqXQ3270hWtoajDQD75e5tEtgtZqJdJu/HP2UoeUprzzMUidB7yKopCALdCvQdNyg60uK6ph6Msmt+hrKa52Plw/r58FGT0t0M1jVxJ5IVSw/n9L1wM66GqzjOTvKtbNvra2fe4LxgSKndLPxjXmUa+5Q5bvkkWr+d9gA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E72ao28cVRLUj9uWfez2xjvUiB007hmiNtOKAy/mdHI=; b=WBDlgpJVeP4FJCaW9zQeM7QUm5ZESibOjq77xFM7pwFMm50ZjWTKeb5AmoWSKmrC6gyiv7U57F0yAtMJqI256fKYlLgwEhUw0LHNgSE7kRzcz6/g+QZLf9jz2ai1IANcrdna6nv1ZY35DAwVNKZu0sNAHw9Gal/frgfB4Hh9LdA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) by SJ2PR01MB8102.prod.exchangelabs.com (2603:10b6:a03:4fd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 21:26:41 +0000 Received: from SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd]) by SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd%6]) with mapi id 15.20.7362.031; Tue, 12 Mar 2024 21:26:41 +0000 From: Zaid Alali To: zaidal@os.amperecomputing.com, lenb@kernel.org, james.morse@arm.com, tony.luck@intel.com, bp@alien8.de, robert.moore@intel.com, Avadhut.Naik@amd.com, xueshuai@linux.alibaba.com Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, acpica-devel@lists.linux.dev Subject: [RFC PATCH 4/5] ACPI: APEI: EINJ: Enable EINJv2 error injections Date: Tue, 12 Mar 2024 14:26:25 -0700 Message-Id: <20240312212626.29007-5-zaidal@os.amperecomputing.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312212626.29007-1-zaidal@os.amperecomputing.com> References: <20240312212626.29007-1-zaidal@os.amperecomputing.com> X-ClientProxiedBy: MW2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:907::18) To SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR01MB7903:EE_|SJ2PR01MB8102:EE_ X-MS-Office365-Filtering-Correlation-Id: e6b34ced-6d06-4ed3-f0bf-08dc42db1bea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rJpFK+q7oRo+BlmaMtFwruV1qSwTh29Hi8jtddh5enCr7PkLb4LN9knOaLtmKdcxjF9LnFFjV4VgTnHxvxkReFh0TL+MUvBv6OAbzVyFKvzfefx8plTTVTJ/pVRWNLF5u8skj8BCJy15k9D0wfLXdE5MKiXsmYCYS2B5S2DEI+6ock9uCnxSiXHREX8eR6b5u+Uz+eSnjxi/zJUgbuYCsWPb+speLM1YEQm1BGcbYUEKNBaPASaVYOiyzqZXaDUdkZHFC9uRAMaGJDYwSPFP2MYubNjiUyyEIZ9QUkmybZoVdYZYrtRteQQ3G2nDDXP6bS7SOtQJXuHW2y9aE7dCE8WuCC81t1fFxpSwQnJeKZcuXmwEhEU8oxjLYY+Do+GrnAvSr/+3OLmKMy3ukDsh7dsQBA8J+2V96uL1YQ7uXFRC4cRK5BArrviBFk9Gx2N2pyXN1wFLYkx3/UBzVHCPpBuqq/VOA/sKP9arD/QHFhYOP+Xu3RizXwsYRwxwMtilEFO/pK8MbKtRT7u6pCNQSd4UN5PbZ96mJsZy5YsSFCdO+GFcmfAdivfN7jT6GqigMCb1M/IUwzkxImq50qdJtL3Dza8r6WSs86SrnmWhmobZD4/2dGtIFpjkKpk1TEvaC5V87/Hkp7UnUj+wPgBSioUPAUY+W4SK2RfcKbjBppaqJ2dT2kq3ostc9OQSjTOvnKaEog/3SR4tNVKLQquJvpwhkB4J1f3nrKHlB3GFEWo= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR01MB7903.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(7416005)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IuFDM08occ+M8cc5xUbS5cvn7stbKg5pqvd11N+yRGkwE0+t+kCBTrAbDg375wTW4aDIiqwVunEObmtqFYfQnbRoV4Suow0g/oWjPgdgxr4JwG20udfb/do3g3zEFH3NAxT9Crs/NGK1edaHxG+5CDa06ronzZfyNwzUj+5ZqwxR91Whb4SDi9xrrt/mDou+zrv1nDEtSyF0dY2dAwbuWzSdTpm+7Wap69uFgHRg3EBaRMrp1rGHf7PJUMDl+L295Gzx6Ucc+eP8BLWM7Rtvz7mo5vCwjMLrirTQI/bgpn0n/lymspzvcHxJ3dxrtIBbWMozYSIwD4gesq0KDegtq+kQCq/HIFhylxby4U4c0DgptuuEYf1ZmUf/SYbipXTG1ETpCciccV3UD2JpSYKDc0N03nwsmPZ2Oyr1M8Z92qDLmYOcG+XkWEI3e47/LgkR8V/YNyHiiD/3a2IKbTChUnAJ6FMGY6hFywlc5Nnt90W01KUiwk1N1dIVXH/pac0fcbv/O82lK3tWrjVVIXh4eHvPlcR6mJZ0kcwpYdwDkzyfBDzOOJ+Em0+BXnEEpJHQ0gMRUjBwYSD6Bpvyh5wR7CtjRwX7L5ysS+JBTvKXbRpdF4r1M1ked54vfMCesCgLorkIVmoMzy/itROdPP8Sf6YEAvm1jDlCbcD9AbNN7rknVXwBsvEsRIlVyJwL7ccQtDkjCTgP3id63uEkfSkHHqMRbIC6/9gOhDxxD66Hu55zVDOmiHCaLwWvpLFE6Slrl8BpTm5us4qsKo1lPn4vfrM/xIcEjKrVmhVIojk8aOR8tEiIqrHmKKSKaqwBm13Wp1C3ZkZgpxFw/SUTi2+U4H01Su07z/N7IAadyBaEEGi2iFOxGdE82rUhgtSRlXKpwa7XIRky8Vc6Vq6r3VthZefA+sQ6m/3zetDDBFlj5T1+q+gYoX5bC9K39/i2XO8fqaJ3sV6iXIRzPN5Td4y1+nk5JXb9OXytxHobsSJT0nYVmwzuLIygmfsM8AGy3s5+xWGpOC5hZnwhBBKDmbM6FnCvw+1cmnQWAxyzplG4HIZituJ472bnGps2FFHsfBEGGhct1qKtDX70toFqr5nAyOLPuubE3KJ1F12TqoGaeok0nHvJyZlfqmSYgNKuwNhgjGbjGrb6fNNrBkCwkdkaipfuWW+IS4mAFAEMBAUdWHsT/mB48uvf640B+O+WXdtT6OW8o0c0x4DqQ6sqUz91U+u8kuJo4MXGPBXBzaFf6EPDkVzNeRC9a9Bn+sxXjt6KylHtFr6E2HVDbwe/pw1ovSXcdCJTkWAXGh4vSZ8LoVMDKhFQ7Ny/HTTs/9TSzCU94snUWb8tLbG+6irlPQ3G+yLHtlOJz8fcbbjG6jrROF6pQVM9BkgQQ790WHOPHmUdeSBugEaZIYB+apv2GlIsag4HOEUXSbr1kHodcp0++wIHioC9yMiP4GBWioL8rK19rtoZ0bIHaktUrqAyPP316XZR2n0BiS8TO5lXlYAjcuILviTv5L2DD/9bYTjN3FHRgrplFShr/VPHiy7twbTKqldRLOGfP4D3KbojHcHx2sLYfLFJe/hBcryBTfTM/ClbI9w9PIBL9MaVwNsqgEMc4591GmB1XOa413CJFed1aj4= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6b34ced-6d06-4ed3-f0bf-08dc42db1bea X-MS-Exchange-CrossTenant-AuthSource: SN7PR01MB7903.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 21:26:41.4661 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dD7DNn3sCXGw/94U677JFel5UbvBUTHmOrzl48r19oQYpRRTcSGaGLTCivEQ1BGYZIH5q4N7lr8gJSenCvsCNx5tJsbzhV73GSszJbG+3iOlgt4/D/jt5O6iurCOKWqW X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR01MB8102 This commit enable the driver to inject EINJv2 type errors. The component array values are parsed from user_input and expected to contain hex values for component id and syndrom seperated by space, and multiple components are separated by new line. for example: component_id1 component_syndrom1 component_id2 component_syndrom2 : component_id(n) component_syndrom(n) Signed-off-by: Zaid Alali --- drivers/acpi/apei/einj.c | 89 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 9 deletions(-) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index ceac53aa0d3f..9e31bf707ced 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -80,6 +80,13 @@ enum { SETWA_FLAGS_APICID = 1, SETWA_FLAGS_MEM = 2, SETWA_FLAGS_PCIE_SBDF = 4, + SETWA_FLAGS_EINJV2 = 8, +}; + +enum { + EINJV2_PROCESSOR_ERROR = 0x1, + EINJV2_MEMORY_ERROR = 0x2, + EINJV2_PCIE_ERROR = 0x4, }; /* @@ -104,6 +111,7 @@ static char vendor_dev[64]; static struct debugfs_blob_wrapper einjv2_component_arr; static u64 component_count; static void *user_input; +static int nr_components; /* * Some BIOSes allow parameters to the SET_ERROR_TYPE entries in the @@ -275,11 +283,20 @@ static void *einj_get_parameter_address(void) } if (pa_v5) { struct set_error_type_with_address *v5param; - v5param = acpi_os_map_iomem(pa_v5, sizeof(*v5param)); if (v5param) { + int offset, len; + acpi5 = 1; check_vendor_extension(pa_v5, v5param); + if (error_type & ACPI65_EINJV2_SUPP) { + len = v5param->einjv2_struct.length; + offset = offsetof(struct einjv2_extension_struct, component_arr); + nr_components = (len-offset)/32; + acpi_os_unmap_iomem(v5param, sizeof(*v5param)); + v5param = acpi_os_map_iomem(pa_v5, sizeof(*v5param) + ( + (nr_components) * sizeof(struct syndrome_array))); + } return v5param; } } @@ -485,10 +502,47 @@ static int __einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, v5param->flags = vendor_flags; } else if (flags) { v5param->flags = flags; - v5param->memory_address = param1; - v5param->memory_address_range = param2; - v5param->apicid = param3; - v5param->pcie_sbdf = param4; + if (flags & SETWA_FLAGS_MEM) { + v5param->memory_address = param1; + v5param->memory_address_range = param2; + } + if (flags & SETWA_FLAGS_EINJV2) { + if (component_count > nr_components) + return -EINVAL; + + v5param->einjv2_struct.component_arr_count = component_count; + int count = 0, bytes_read, pos = 0; + unsigned int comp, synd; + struct syndrome_array *component_arr; + + component_arr = v5param->einjv2_struct.component_arr; + while (sscanf(user_input+pos, "%x %x\n%n", &comp, &synd, + &bytes_read) == 2) { + count++; + pos += bytes_read; + if (count > component_count) + return -EINVAL; + + switch (type) { + case EINJV2_PROCESSOR_ERROR: + component_arr[count-1].comp_id.acpi_id = comp; + component_arr[count-1].comp_synd.proc_synd = synd; + break; + case EINJV2_MEMORY_ERROR: + component_arr[count-1].comp_id.device_id = comp; + component_arr[count-1].comp_synd.mem_synd = synd; + break; + case EINJV2_PCIE_ERROR: + component_arr[count-1].comp_id.pcie_sbdf = comp; + component_arr[count-1].comp_synd.pcie_synd = synd; + break; + } + } + + } else { + v5param->apicid = param3; + v5param->pcie_sbdf = param4; + } } else { switch (type) { case ACPI_EINJ_PROCESSOR_CORRECTABLE: @@ -572,9 +626,19 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, /* If user manually set "flags", make sure it is legal */ if (flags && (flags & - ~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF))) + ~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF|SETWA_FLAGS_EINJV2))) return -EINVAL; + /*check if type is a valid EINJv2 error type*/ + if (flags & SETWA_FLAGS_EINJV2) { + u32 error_type; + + rc = einj_get_available_error_type(&error_type, ACPI_EINJV2_GET_ERROR_TYPE); + if (rc) + return rc; + if (!(type & error_type)) + return -EINVAL; + } /* * We need extra sanity checks for memory errors. * Other types leap directly to injection. @@ -694,7 +758,7 @@ static int error_type_get(void *data, u64 *val) static int error_type_set(void *data, u64 val) { int rc; - u32 available_error_type = 0; + u32 available_error_type = 0, available_error_type_v2 = 0; u32 tval, vendor; /* Only low 32 bits for error type are valid */ @@ -716,7 +780,13 @@ static int error_type_set(void *data, u64 val) ACPI_EINJ_GET_ERROR_TYPE); if (rc) return rc; - if (!(val & available_error_type)) + if (available_error_type & ACPI65_EINJV2_SUPP) { + rc = einj_get_available_error_type(&available_error_type_v2, + ACPI_EINJV2_GET_ERROR_TYPE); + if (rc) + return rc; + } + if (!(val & (available_error_type | available_error_type_v2))) return -EINVAL; } error_type = val; @@ -886,7 +956,8 @@ static void __exit einj_exit(void) sizeof(struct set_error_type_with_address) : sizeof(struct einj_parameter); - acpi_os_unmap_iomem(einj_param, size); + acpi_os_unmap_iomem(einj_param, + size+((nr_components) * sizeof(struct syndrome_array))); if (vendor_errors.size) acpi_os_unmap_memory(vendor_errors.data, vendor_errors.size); } From patchwork Tue Mar 12 21:26:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zaid Alali X-Patchwork-Id: 779790 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2126.outbound.protection.outlook.com [40.107.237.126]) (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 B1720144045; Tue, 12 Mar 2024 21:26:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.126 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278813; cv=fail; b=pOTE/Og7gt0pPww7PPS+LzIH0qG89J/okF4eEUZGAcnNNm+4MIHsWDepQy1q7U5ObNuAqFWs1jFm4b8C9iWtxs/0u9e7Tv8l60gsrB77n/JX9BXpkqhum2L6Y2B/4/EzAQq8x3uOBkqmYVKUmCa9nDSdrakv9e1U0xoKgx4u1qo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710278813; c=relaxed/simple; bh=7KYSwtYkAvVikuqxH1teDecaPR5iW4hU9jr/4zD6DX4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=S7oiMkbkg6Cb5oLKGVJ2+hbijAjg/fkHgt69Qg5mFTM4WENcdiMjVQF7pvo+KJIPGnrvirW/HU/16MR/uqbPesEkZBqfrqRAFwTaP1zDtWNtmtQO6zEyK9r9xR7uYopM2PvTZPH1sZ2Yq3Z3HIPTGIslvwKSkuc/JaCdmpk033Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com; spf=pass smtp.mailfrom=os.amperecomputing.com; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b=In86CNjl; arc=fail smtp.client-ip=40.107.237.126 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=os.amperecomputing.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.b="In86CNjl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a0D6weIAcsAeZ+2vP6kArIHv4O8sapaSifvMsoTtu3DJY/MkPK1QPCrpInl6lc4toIKkvN3UmYv+qc481721gCSZlzsgt5ylF7zzIoO+fM2yo5Lqfxfbdd0GiEZzlKimygoJm/22/BUQaMBowmT43JqsdQ7s/+CleO7kjm9VtcmJwUjTc9aitKO19RjtiZyxLM4E38MENC0dJiWgqxC5IpG5DTnDZRwQUerv1KIaYaHRd/LPBUIfBVksLZssrK0r2K2vdLcthZvYHqcq4+6LVi4OonEkjp5DP5Z+e398arb6RMILK3iEsIL4HX+Qh3E3tUQYVfn9GuXBvPAfeiCQHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ntJir3IvZzlv8fon7XmkjeDV5WI86JcU7lrm7tlh8sg=; b=WTvd5Jr/Gee7IXk2e2oa+6DTPeH5MvxPNa2PCV+GFqafzaYiVfWBwJNRfPzN+jwoz8xruQnlDi0nZ/HTdob4Zj9/9gt+Ajtpm2bVHehPsChd/dy+RV/IteQPFA7czzXQvmG2hjrsabOXmiEYTc+7iOVu/F2xbNFvTRMwmMK9viw6qLP5eYwkpYEaSl6FFWx62ETNGKxz1YY/xugi0f/dZxhHlZG9mQJ5+Sz5MfJV6AqXp1sykRe+UaD+Fff8HCL3/9NmFWjeysLrf7LKz04ux5Fl9wqjczIzTlk/josC7gjtpzvXJeyr4DqiHtzKELMambKDuXdvOAfJfcv63wd0mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ntJir3IvZzlv8fon7XmkjeDV5WI86JcU7lrm7tlh8sg=; b=In86CNjlbMSdB2hxIUjg/PhsadH2gVSSGLCfQMTVgRYFF2ZQo3BNWOGdlu/i75nwWbz1UKZkYgTjbFa9CBmOFIBqIMsUWXh3l4feXccawBSN4ns8oeOo7yFyS2QG3du4g/U+vb0wj2Eh6hCK/94BLVI/mFaVvdhlneBUWDX/TwA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) by SJ2PR01MB8102.prod.exchangelabs.com (2603:10b6:a03:4fd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.18; Tue, 12 Mar 2024 21:26:42 +0000 Received: from SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd]) by SN7PR01MB7903.prod.exchangelabs.com ([fe80::32c0:d77c:f00b:bacd%6]) with mapi id 15.20.7362.031; Tue, 12 Mar 2024 21:26:42 +0000 From: Zaid Alali To: zaidal@os.amperecomputing.com, lenb@kernel.org, james.morse@arm.com, tony.luck@intel.com, bp@alien8.de, robert.moore@intel.com, Avadhut.Naik@amd.com, xueshuai@linux.alibaba.com Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, acpica-devel@lists.linux.dev Subject: [RFC PATCH 5/5] ACPI: APEI: EINJ: Update the documentation for EINJv2 support Date: Tue, 12 Mar 2024 14:26:26 -0700 Message-Id: <20240312212626.29007-6-zaidal@os.amperecomputing.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312212626.29007-1-zaidal@os.amperecomputing.com> References: <20240312212626.29007-1-zaidal@os.amperecomputing.com> X-ClientProxiedBy: MW2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:907::18) To SN7PR01MB7903.prod.exchangelabs.com (2603:10b6:806:34f::17) Precedence: bulk X-Mailing-List: linux-acpi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR01MB7903:EE_|SJ2PR01MB8102:EE_ X-MS-Office365-Filtering-Correlation-Id: f2fbbecb-f691-4cc5-42a0-08dc42db1cc3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jf2bQP303LM5r4Ox5sOxh/r0oVT5kFkJ/hl1RobYyvkLDlqp+f6BT6qEu6MEFhLS73YdySuRsChC8++Ey1/kapK5/vGyU01BCbpwSmwvlHiNaEkJnbZF5jrhbiMUDBDuBfKk9XgAHAW8QqZSeNIZmHFQUzJ3AQq2mj7R6Jog2I0pKHJ+7xqLGUfhRU+3PMz2h7uNTmMHINHV1/VcKmE7yY7zT7hbfsPZx6o8GPxUSGVj/1+8046UIoVo/9OALe0DVrA5ZnUJQgaXHe79qH1ZdoH1fInJqlj5mJYCZn010QDAQoTGW1dgCFBJgI4eDnaPWEs8XerioNJRfKnonNPfJ5eLrFDgnd5hHu46pdP/4B/HaqGK/e2mWggIPr49tyMFeMUMkS4SdvgPUupMsCnuFOXZCQe1soNhRb9ZPMlnt8ulisZ1F4LnvGn92mHzg01GhZfX/qYTKdzi0AKqjHZY6rYI4GRTHDSyv6ur0QIsiOr35DojmcvVh/ugDMGJhy/IPDZuaOR09U/dqgD96IDWhok8kyeSADVpLaeqbGmPSLEAino8QMfM5dSzAQqiW/4umeAvpz34+l3iJsu5DHknpr8apkVbVMZh59W5V7rAaM3FiZHyOKkx7pCEYanZ5RcBS58dqsF6S+BjTFMhl39ih5cZrYf9Rb2QNRq8JHkN/x0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR01MB7903.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(7416005)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6je0+VbKc2yg2FHemZ9K+p++/s7rAoL9V5zXxKXYbJNgeAt27c/PK4Zetn0TrZEsCpmgE9PuXRKfzrQ/hw26hC2s9w3mWJEBye+pSIJs/VrLDSFwAMceDhVo3f78UdcpQN9nfQDfig6NBRMlCVVGZCFKG7x4S/feCYqpo3t7BxGjoPUip2v2faMnSSnOPqG7VCKpidUMDdKM1rsrYQy9S+6uDxT5icjlOkrmdVhiSVlj/qdaPPKY22uPEZZ9+s55DKcDYAn0MkF2auiv7nbNVd1WWvIIPGrG79kPmFsBkWKR6f/xLp7/86Xb8BoGER1DzMJknSbK50YT252NNBfMDDiSpRCnqqhU6OGQDr6O0h4V5UDxCjS60wGM46UqooOKYtvrDvjnSTMvhlIGBNAsaXfpg9vGzTcm1YKMbUTJTVR2dMTS4DnSuv2udfBW9xqXO9SiQLJrJWXWJ0WFKgCOm3gqwa6aE/+MZEJ2FI+bGYGvoF2VaUZrUgUBoalhU9nyRHgpkkZ/hZq2of16YM4tmptuVBlbabadYky1uNaXXe3/CTswhnrChNNZaWgolHbRbGXuwe+uRbjwJJEfDi5jhgTgK9bmEIyieoejZl4hknPZdkz9h2PO4oQ3RxptR2oNVLhQRi5TvODRrpey0KJeBEXiBB6NmO0L6hCwh4m6FzhZxkHIF9kPTatbqvdGhcS/sQaQdH9E1yXVmA6cvkeYDgx7Od1M1prmFL4kBHcxsWX33gzPz07hPfyxU/7/aMm1YdtYhiyS0Gv+XTNqrJkVm5tnpGvfdAucrsJj50zMo3QnjGgEWRTLZXkKBbVlrih4I4bdJmGbH+cEmtZZ5ZEpnGLa5PoYZ9kUub/rAaPfJLce6+SLMagMOhEeGtJ09DZZUHBtEeFARKYB8c8Dl5sOK6RlOpkoF03lkb3MTCRtMRofOQzw3Zxe+6SRJlErQO83CUsf3Rh8Ddv/t0BE2jMdRHVVSRGPkmqRZQA7xqN8e6jJZNy7z0B9RcNX3WStvT0jawg/PzQ7D2Pm0k45NSXF66XAJa2gfB2HYAwLVaruD22P8u/wow2LWRrHFSXDnU15R6yi98sIemIAaI/MahHtP42xlnVA/cPrfZxIPucQbGM/1Xn8bnFww48nIM9HHnEr/BQCqZuHk+HHhM74xcA/4I5gqnDgbAzvYAx8MTiMgMzGVRqFs/7lR7j4mmxR7aMLLeJeTFtSTTBdGJopDShIS8LnQ5DwFeIdjcDjjL1iEUgacDJBBpR61Ha6DMPDbMejEs6epDswi5Eo5LIZ9pfLkFn2G5jw9yrFH/I/Cd36ibT+RU+2SI3vMdLZXmEhtvHqVLZKmKUnhTzgp5uoA29R0qVa/uhs+u70C9QNiIMdiyOYsPWCJrehvlty7LtrHvvps79EIk1r6B43YTud61zRc1MOLgNkgqV8vH2kq/VTnWiv9mZwMmFiZoNIJANA0yikBmar6lDlGnDXzMx2VF0miQba8i1vtXmIGa1+hJkoJR3tlCAEHd1yGcnn+u/8415O5JNP1JcfDri4IKBzVo273nMo1/qVmmDjhUPYnRp9meloXd/F+git09B+OMFklric8EBFpYoP90AnUq9Z+eTVSUt7Rl5ahRrks6JJ+H3vasE= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2fbbecb-f691-4cc5-42a0-08dc42db1cc3 X-MS-Exchange-CrossTenant-AuthSource: SN7PR01MB7903.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2024 21:26:42.8632 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OyowBWpH9EMJmnDwGD1JYn+aJpHy1EPTpXhEaplLV115CdAzgm3x0d43vg4xoHdp/tGWvPoQXwion9QhmwcLHJsNEFYM1ie+EaUjWKFUDv4f8nEiJ8SRscMfApC84FZB X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR01MB8102 Add documentation for the proposed ACPI specs for EINJv2(1)(2) (1)https://bugzilla.tianocore.org/show_bug.cgi?id=4615 (2)https://bugzilla.tianocore.org/attachment.cgi?id=1446 Signed-off-by: Zaid Alali --- .../firmware-guide/acpi/apei/einj.rst | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/Documentation/firmware-guide/acpi/apei/einj.rst b/Documentation/firmware-guide/acpi/apei/einj.rst index d6b61d22f525..7e5c3f71ccd1 100644 --- a/Documentation/firmware-guide/acpi/apei/einj.rst +++ b/Documentation/firmware-guide/acpi/apei/einj.rst @@ -57,8 +57,18 @@ The following files belong to it: 0x00000800 Platform Uncorrectable fatal ================ =================================== + ================ =================================== + Error Type Value Error Description + ================ =================================== + 0x00000001 EINJV2 Processor Error + 0x00000002 EINJV2 Memory Error + 0x00000004 EINJV2 PCI Express Error + ================ =================================== + The format of the file contents are as above, except present are only - the available error types. + the available error types. The available Error types are discovered by + calling GET_ERROR_TYPE command, and if bit 30 is set in the returned + value, then EINJv2 is supported by the system. - error_type @@ -81,9 +91,11 @@ The following files belong to it: Bit 0 Processor APIC field valid (see param3 below). Bit 1 - Memory address and mask valid (param1 and param2). + Memory address and range valid (param1 and param2). Bit 2 PCIe (seg,bus,dev,fn) valid (see param4 below). + Bit 3 + EINJv2 extension structure is valid If set to zero, legacy behavior is mimicked where the type of injection specifies just one bit set, and param1 is multiplexed. @@ -118,6 +130,17 @@ The following files belong to it: this actually works depends on what operations the BIOS actually includes in the trigger phase. +- einjv2_component_count + + The value from this file is used to set the "Component Array Count" + field of EINJv2 Extension Structure. + +- einjv2_component_array + The contents of this file are used to set the "Component Array" field + of the EINJv2 Extension Structure. The expected format is hex values + for component id and syndrom seperated by space, and multiple + components are seperated by new line. + BIOS versions based on the ACPI 4.0 specification have limited options in controlling where the errors are injected. Your BIOS may support an extension (enabled with the param_extension=1 module parameter, or boot @@ -172,6 +195,23 @@ An error injection example:: # echo 0x8 > error_type # Choose correctable memory error # echo 1 > error_inject # Inject now +An EINJv2 error injection example:: + + # cd /sys/kernel/debug/apei/einj + # cat available_error_type # See which errors can be injected + 0x00000002 Processor Uncorrectable non-fatal + 0x00000008 Memory Correctable + 0x00000010 Memory Uncorrectable non-fatal + ================== + 0x00000001 EINJV2 Processor Error + 0x00000002 EINJV2 Memory Error + + # echo 0x12345000 > param1 # Set memory address for injection + # echo 0xfffffffffffff000 > param2 # Range - anywhere in this page + # echo 0x2 > error_type # Choose EINJv2 memory error + # echo 0x8 > flags # set flags to indicate EINJv2 + # echo 1 > error_inject # Inject now + You should see something like this in dmesg:: [22715.830801] EDAC sbridge MC3: HANDLING MCE MEMORY ERROR