From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472287; cv=pass; d=zohomail.com; s=zohoarc; b=OTWHkUezSawFlKWcrlafV/pDaZoZrcidZ4dr6ugR6LIFxbYdRx2JtJG5WZ3O0s6eKJbvi72tTzmIDQeVfMyAVSoeJq06NV0vtnBc5rRvjX1Pw4JCta49jCreyBVv87toYyVz3/9ECMHwWf45wIRJ75sOUQrbm1L5A1UaYCypveQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472287; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kw5zRb6fcbfjGiIjU/ZOl679L3q3FAE7+fmlUiHRVQ0=; b=Z0HarieQUGK/83eMh2JUPoes2RGNpOAoSOU8iREF8kq2d5L98H6NKkoHZTJm5CP49EkZRyyLti8z7KvMNhdCZGwjNNykXLEcrxtKsucPkqZTCPgzOh/2zhpdAfNbSIk1W2Wm0om2Suho7VJU1BPBsnuqUaiXs3sW4j9NLRnYWJc= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472287684288.67146395263296; Thu, 2 Dec 2021 11:11:27 -0800 (PST) Received: from localhost ([::1]:60140 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrUM-0000UG-2l for importer@patchew.org; Thu, 02 Dec 2021 14:11:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSU-0006o6-O4 for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:30 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:19786) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSR-0006M1-Tb for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:30 -0500 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2Iu78B024260; Thu, 2 Dec 2021 19:09:21 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cpasys3a5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:20 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2Ippc8051222; Thu, 2 Dec 2021 19:09:19 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2107.outbound.protection.outlook.com [104.47.70.107]) by aserp3020.oracle.com with ESMTP id 3cnhvh76bg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:19 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1693.namprd10.prod.outlook.com (2603:10b6:301:a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16; Thu, 2 Dec 2021 19:09:18 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:18 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=kw5zRb6fcbfjGiIjU/ZOl679L3q3FAE7+fmlUiHRVQ0=; b=U/APcbRjx/kqPDFuYTLLcPKUU0+DOCXlpSx4XuLcbdvwLRLzwt2v+vMlQYpVBQBhIje1 a2JV2V82iXeR0wUAnKIccvEOlMP5qbOtAiSXddATl1DaCe67N5WJOSliUSqI9+4cTYRw oUhsrv24ZueS9ThCo73GHJBFNhY+EX8kh6hWMmXmGavgOaAED08jve3h34RSe9A0nhKr T6hpnWkrZrGo0Cdss8ctSYoLtGA7VxYaku+HA18JXlUxfqEKrtfF3m8ZQthReIW4q9F0 SDGa5UP4T4Vk4ksRlhIFs6WTvljtgOenruuMhI6eND/vW8jdUfo+CvN6VeXSPAWbxOnD 1w== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NySA77rvV57pVy3t2+Xz8SMz6YXjfV5E+8OMFberjOkBpdGpqqLwiuB+su+XdXUTVOCLS9bYLhtU3p6KV0KZQv/imM+FfE+IiTmekGpFUF0sP1M6OJi9TR3LLGqzJrK9rJ/mtVYP/yVr0x7HtL8AvbI4K6njr2cRu6co0aCKU2acU0FajJhQCsFbkx11JKziQk5fJivILosbaBi4jxfE2KnrHixiq6Up0+mJDzrrZKgFsdj9N1eCRFC0XDgmMkznzqG3VpZ6s3q/HoM0nAFEEteESe8091vHvNVLEnWo+SlY/5vdP23yDUOZOzQJ62Al+X0o8/TUjPX7oUC4/SEbfQ== 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=kw5zRb6fcbfjGiIjU/ZOl679L3q3FAE7+fmlUiHRVQ0=; b=f4t6uSOLDXGXgPGtXfVBSzRGzO7fUaT+DIFtcOt8XcePq6ZTXAqzejzoS0cGn7vsZI5P3cf5QTaDZkTq135vPEXKjkaWyaVf48+lz9lu0Em8HY7yBPHWCnOZAtzrfSlsVhukB04ARrm7CCARsFiM40PRNZs6bZvZjFAJ67Lnm0sY2+Q7CRO7XOXCd9KgmlHqZcrdbgOIK9cF1egxLI0+TPJeYvHtnPvAy6BEMeWwUlufalbtqCO5pl5hINw4fZGYziQ5UfmcCK6WfegktxphgET79hAga9xPdDloaFxWDKihfe8dR5bvQu5weD9PVtOTbc+PWCA+O+VFUFKvJ69YwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kw5zRb6fcbfjGiIjU/ZOl679L3q3FAE7+fmlUiHRVQ0=; b=hxTgJrZy7SX2E1vfujGoUf+hx6qW0Vyltthz6Ujxg/KT2As7rCHW29u1ySlk1nQhIGBJINb557XoudPN2IJyM9UtxB/AWVyk/Hq80K3Oxgf93vtT0h/kHNbYbTADldfZTjAng1UpYxBLxI/2AiZKyRyAfCkm+rEpsq0Cb6uN60Y= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 01/10] ACPI ERST: bios-tables-test.c steps 1 and 2 Date: Thu, 2 Dec 2021 14:08:53 -0500 Message-Id: <1638472142-14396-2-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ad86cde1-2161-40b8-380a-08d9b5c73d4c X-MS-TrafficTypeDiagnostic: MWHPR10MB1693: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3/HzaHQDlaHQNwxedLf0lrrSdT5GVrKiPM1uZ61TRCLaN+XvRfSGivjy3rhLXyuMVyu0hXRvqAdgEDtObINnpPUmGawbl3GAItoaL+J/cBu+K4MlXnl2Qmwe/KbXh9SUcT8uY+tXQZAK//+cmNPVl/HPYYAo+feJZJHgSggra9b5X03/5DFPFQjHPgutkJNQfnYOgw8wfKAvFSi7XIEcgLlL9tiJY4ijhMT9jDSTccaLHFhmYgYE1NmejUQ4h7/qvIClhZ5DqjtjO6MQh7vLfLvHPLLAXPokBeZzIVctsVuKLr/tQrhrevUCVI1bIRhFQhaJXJKuhz9Uu0PNlSUj5SI+8y9EW+iSHea2yaqGWa3N1Wb0cK+bKMPgF96UUZvi3gnah+dJGQsl7YR3TAf5HMsloYF+ZPN7/91LozNPUbDs3EOLy4R9vHBJX2l5gZIw639mwR66zq7Kbf0jSk1rZe6tQ+ksd1QqN9ff37ogeFi3BdurtOJP7uzZE58IgtrjP8crbe4hMGgfyYOLYPUwJJNnF4AlqLVofxFh7HssuafbJtA4zVJOZF7YbfEOauBq1oRTicFysgw4tpVdAJ9YcI0n0O5mJBE2/NU7Fz2InE6CRyRnqjIafqA0p07rlRDoIHs+CxlN3ic484+xCyvIX82R6TGWvdM5PxmRm07BUHpe4cB/muOCA9hXMtkJsQUXiFzY/IXEwam1h+2L1kPNjw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(52116002)(7696005)(186003)(4326008)(8676002)(2906002)(6666004)(86362001)(38350700002)(38100700002)(36756003)(508600001)(5660300002)(6486002)(26005)(8936002)(6916009)(107886003)(956004)(66556008)(316002)(66946007)(66476007)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ohJfbAPUxpLVU3p6yCnKL2RcDrYp/8GXWF0pQvEkiqO3D6Mc7/LLD7ObFxOM?= =?us-ascii?Q?UQ56BMMKDCX7yKSbKxEKdBZFNu8u/sqgq1soDB8gbjKJTj1c8XFmNKNFYAAH?= =?us-ascii?Q?QST68v2W6ptSTZ6+tGe+tG1PNBnxTn4I+UF1ojy4h9OtWE1BMC/hk9gXSw2g?= =?us-ascii?Q?DYQFQudpwexnZWXz5X2hfnoI5fHH4zBsieftIqexD+pPdSg8CWLW30RZXauV?= =?us-ascii?Q?cKrV6XxoM/rCh7GeRBmwL5dTjkPDXgrCdOyGda0ySVj0xjSR6XZ1Aunrkliw?= =?us-ascii?Q?lohjONuJBqlTg6zwkFvV4gwEO08Wtv/Fr5kw92wMBXpK43HG2iBxhDoBnvJn?= =?us-ascii?Q?tC/1BMnQHe0IsC/FMMjpedXWJ1z66cqsd6fcKHYsY3nQYWOqY+f+WnkDrdWv?= =?us-ascii?Q?p6IEvGOCItWa6bCy1VGLCLGFSw9YsjgTbcofolVohGJlOxJ5ZdbxuKa3n2ZJ?= =?us-ascii?Q?KLmxkaj2Hntk4uwtnTdJOmvrAjsJo8OfsmQZXM4vdrXRH0mxZ6g27hza3NM8?= =?us-ascii?Q?tbbShIR4L+U8GPIiEmS23OE4Ppd2S3vVbaECX6HgXOhuMIY+LmL6nwzZ4gh3?= =?us-ascii?Q?M7rQbR45Wx7jUDfjahk4sqt4+mtOJ0zYtwm01yOPAKDfVdtqCI4Wz+F5Jcb4?= =?us-ascii?Q?SlBEG1rF6y70+3IkkPdm3yPM0k+2j7RoeaodTw9EVhe2CSH5tQx7D81bBQ30?= =?us-ascii?Q?K78t/JWs0EZtkxqoXlWRbeLUjBOaCkBa9kxgDhffVTcyckAvLvjZD6yQ6Owu?= =?us-ascii?Q?7pxfNP0YX0Ln9nZ8ffNEeRUeYa0Bdo2rS6saC6AkGAX3PGlN/XWmwT9yWufQ?= =?us-ascii?Q?hEYSVHAYQPfPVAa21bGTUHezoS80e0Oc0UJBZMMUT9lYivzY2E15XupugzgA?= =?us-ascii?Q?W6N+zsEKBvtwz5Nmb/x7Qni6FMx+y6XaSa43cTZi+gMn/Isn30ZJ/DTHyz9f?= =?us-ascii?Q?VyFa46oaXVuPIHp0SDoRUxB3PimyHOH3YV+vsFhi0ZRI3dtdoyLIrO+IumcA?= =?us-ascii?Q?loWsJk4LpviMq7yvUMecGzEpVRkop6/oUCemDqwZV3RrRfTv8OLFwt6TJyQ9?= =?us-ascii?Q?3kRXZtRA5O3ZN11sSSgjesTHpeKCyAc2jSYxQgnZLC89NKP3KcklrLNZJ0qG?= =?us-ascii?Q?x4xSqdQBBR79DrFlRjQ+h6T00+cfD/VbEWmsVn83dHsOxwbHRL7fS4r1AOK6?= =?us-ascii?Q?fPh9+XTcoiCTkg3eEKtyAtOV6FRJc4rCOuIDSc3dz39cTHLPsgYxXD4pMeId?= =?us-ascii?Q?TgkMMlKaxIfeoc0772+ydSVfPme+LXOq2ux3Lu0TLONTbcdpTIibERsfv/df?= =?us-ascii?Q?wiMneshhhcmO3h6aQVtPA/h3djsSc+UKrbF1ADAghe27+u/HTQEJNX/Bk085?= =?us-ascii?Q?RTNoFxJdtQpFEgHyfB8c/7j4bpw8EE9TGLTkU56G3/F9ihBdKCO3Q6chfodR?= =?us-ascii?Q?RiprX6+R1ilpkhhhxI31XFUH6jgq/fdsXupMrrj5N49w8meiFLWA1sW5CP22?= =?us-ascii?Q?Ly3StTLebE6w3ZyY9CVdH9BBdTSSY+fM+x4/KeS4g2aJ9A49D8UkzhUF5I3Y?= =?us-ascii?Q?rW9KbXLICk2FHA0Bg+5haHpWTJSGX0rWrhBn/PZEYue8/3/iqaaCy8/tGEUE?= =?us-ascii?Q?Ajz0luJIJNrWlVtg/Qhc1affKubJ7TVQXs1HpPcpYN7wyjM+tETCSBQk+FET?= =?us-ascii?Q?DdgvsQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad86cde1-2161-40b8-380a-08d9b5c73d4c X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:18.3503 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tL7JhhJgQ/DsGEOyCEXJ91wUZkhTxJTBtrGUFzk0qVzZexjXEMC3uc7kx6wIi8cYQmVVQHMyBsFOPbUsv6lP8nx25Q/5og0GrGUFv1Xmpdc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1693 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-GUID: BhmCCO-_2H-OnBu37SabwDmr6PUrvSpw X-Proofpoint-ORIG-GUID: BhmCCO-_2H-OnBu37SabwDmr6PUrvSpw Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=eric.devolder@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472289267100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Following the guidelines in tests/qtest/bios-tables-test.c, this change adds empty placeholder files per step 1 for the new ERST table, and excludes resulting changed files in bios-tables-test-allowed-dif= f.h per step 2. Signed-off-by: Eric DeVolder Acked-by: Igor Mammedov Suggested-by: Konrad Wilk --- tests/data/acpi/microvm/ERST.pcie | 0 tests/data/acpi/pc/DSDT.acpierst | 0 tests/data/acpi/pc/ERST.acpierst | 0 tests/data/acpi/q35/DSDT.acpierst | 0 tests/data/acpi/q35/ERST.acpierst | 0 tests/qtest/bios-tables-test-allowed-diff.h | 5 +++++ 6 files changed, 5 insertions(+) create mode 100644 tests/data/acpi/microvm/ERST.pcie create mode 100644 tests/data/acpi/pc/DSDT.acpierst create mode 100644 tests/data/acpi/pc/ERST.acpierst create mode 100644 tests/data/acpi/q35/DSDT.acpierst create mode 100644 tests/data/acpi/q35/ERST.acpierst diff --git a/tests/data/acpi/microvm/ERST.pcie b/tests/data/acpi/microvm/ER= ST.pcie new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/acpi/pc/DSDT.acpierst b/tests/data/acpi/pc/DSDT.acp= ierst new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/acpi/pc/ERST.acpierst b/tests/data/acpi/pc/ERST.acp= ierst new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/acpi/q35/DSDT.acpierst b/tests/data/acpi/q35/DSDT.a= cpierst new file mode 100644 index 0000000..e69de29 diff --git a/tests/data/acpi/q35/ERST.acpierst b/tests/data/acpi/q35/ERST.a= cpierst new file mode 100644 index 0000000..e69de29 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523..603db07 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,6 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/DSDT.acpierst", +"tests/data/acpi/pc/ERST.acpierst", +"tests/data/acpi/q35/DSDT.acpierst", +"tests/data/acpi/q35/ERST.acpierst", +"tests/data/acpi/microvm/ERST.pcie", --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472293; cv=pass; d=zohomail.com; s=zohoarc; b=mZgoEh4Lo1M57givt/gnL95VYxj68ZaSdKgXMakvQ5VYDPB61afUEPL4EyKEXDoOdp3WsyHl1UJhNO533e3yYABC9BDiFeHDndd01KYS+AF4axxrjpKdOc8IcwpVeXuv2gjKLfvW70KRmaMNS5QHYym1ko66i2uWNMAxjpPmlMA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472293; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Svbr/JUHR+V6nUWPsWs23gY2WC2ULNMpPwKBALdQLwI=; b=RJZuenW3PXUXXETctdIUsr82vkKCaq+R8Kk7A/2smtHs338QeY1UJmQTTlkL2AUY4OkOFWfi9TB11S46syNg3uwipyQZ0/n8nSWQi8w0DBAO+IkJA324DjAylOu1QOrsPqgTFOXdLtfFDvdKVmGLxQHt2hwGoxMjgXV8kWWa3sA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472293493673.9940162837398; Thu, 2 Dec 2021 11:11:33 -0800 (PST) Received: from localhost ([::1]:60448 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrUS-0000h7-E1 for importer@patchew.org; Thu, 02 Dec 2021 14:11:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSW-0006p0-8g for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:32 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:11626) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrST-0006M7-AY for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:32 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2J2Ytl020374; Thu, 2 Dec 2021 19:09:26 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp9r5a8qn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:23 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IppBU051304; Thu, 2 Dec 2021 19:09:22 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2107.outbound.protection.outlook.com [104.47.70.107]) by aserp3020.oracle.com with ESMTP id 3cnhvh76f7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:22 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1693.namprd10.prod.outlook.com (2603:10b6:301:a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16; Thu, 2 Dec 2021 19:09:20 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:20 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=Svbr/JUHR+V6nUWPsWs23gY2WC2ULNMpPwKBALdQLwI=; b=BhC6IvSLnX70e5iwtntIJrbg7SBxoRNxhgcequGTvD5wj9iSs1a5iPyNjtxThnq/EHTM ZwkpvUeThMQyfnBkLfQi11XIj/qBTNpPpl7FuclBXMO1swcl03cCCOwgDq5PBhTQlS26 9TDTLVOxeUG5t0uDb/t+9hPe/FDW1HUmymI+5ndcJH9jDaFrTK9CloTIKJPIChRFplTf jSO7guzmknIq3AnBmW5tYwc1gqDoWfKXovRiLpFDQGf1o4pNHndbHtO74SrnUcbZIbtL bR//muQROV1b4fMv73nJZxM6UPvlKOZSU+xTvMGJ6Wg9bt1BcanBJEzvRNZ9KLozOhs9 eQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h+E2DkRJ8J1N9Q+PTf7sH1UTy3HYhFHJbVkqz/8I6ydrcNkbf2JADPPT18l1+PR1lCa9mM+MSDBbrR1tUbtSkxLR3Xy12BCeujflWUDCUPRq5s/WVuNWm6WU7S1SKi1/Trxwv1Go6ixCK1/d2EjcGOXrVgCmWqQhiLoHsC0i7+gcj4yOxHsK5MZpBYopgxG6oRGg+VQ2N5k8xcvjISssz4qOHzEJ+Hdy5RXXcy8MjXKb2BWIbM3K7hSCYqm64wr8hcBtN6naC9ENSF1+/AlT7aAsgzRyXbswbNK4DAbRfxCiiRfFVMPKLxoovasJC846vOTwsH4Gv72XZU+UT8+Uag== 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=Svbr/JUHR+V6nUWPsWs23gY2WC2ULNMpPwKBALdQLwI=; b=ih6+UJIM0mT74lykGiMkRuAex5uEoa5nHe69Fxui0GzH9cN9oMoFZ0+49Te8hs5lyqqiRbiGtfkEzibZ/yDbaCVJQKc57GZbFvQD6L+hGknJjCxWnev+xswskhO/BwQQKOAAXBJrlSJ0yBPAavuDFbg/S1JkQyxt0S5havr8XgJGWHNZt2cxJVZ6X++uUb9YXD0Ptsb/PEqVhiysIqqBG3nYUyYIAvTT39rVQhGvKd/esO8+lons9nUElSI749TMncCfC9LaDwHFEpgRlmbRVijbk+MAEiLh1/UTALypaqJLA/6u7B0wWjO3+EosnTDGvENBKSidwZuTxz7Dh5CrEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Svbr/JUHR+V6nUWPsWs23gY2WC2ULNMpPwKBALdQLwI=; b=MZa7i9bVdW0lnskUq6e320gM7THSDjAhuRe3WJWXAoaeeWXqB5Uv2hKVd0YgCLQzgmaG17NJxFot0gAM/S6PYST5+nHpg34Y5IhNE0ijNs8+o7kSOOz2XGxqQn9wlAxUCUPEXXfQyZiPcQJ/b1HJbuI93YZiruYhoJI0GEwQaio= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 02/10] ACPI ERST: specification for ERST support Date: Thu, 2 Dec 2021 14:08:54 -0500 Message-Id: <1638472142-14396-3-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 56be0025-1da6-4e87-7d01-08d9b5c73e6a X-MS-TrafficTypeDiagnostic: MWHPR10MB1693: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /ljKcTr+7AQLuV64TEu918xWI2fnyAtKUbBgh1WXvCXVpubEEGLqfQkDKp//xETdU22HKcdhW1PImEFcPcm303wMr4HguncpcrAzpB5aPJh6AEGidqOrAtN1ofgyvhMEWIlDTnlqr7w7rBxgq0Fw5kE0SeV7CRlg4LuCx8pzPD5o9yKyQwGmBN83qtvqD60BPbd1F25fNra6U4iXCG2T+2w9ecxVfmo2v5lbG07+1vbeiidgXXdgldKkQS/Z1CE+7elPMX6ijiUIPIk9E8Uc+o+gOO1Cw1OzFWGFE59t45A4//D4wiRgrEQ+SdkcS3GY4YPjgs7daiYXYzq3vow3Sks+cNimPJKC4jogAxNXrqTdv9lwPlQ1ZVAJ+Z856UxzwU6vcSnINyHHlJaO5+x0r+fEsTCLtwiC+AShw2AMoY/PA2C7huyomamoGZyiKTZf0i1jGe1fHmtflcgbNIUE7H+kPC1vMLpoTeUMGecivtd/vvtqht3JqtS9R8MwnfRwIMtM7xTyeUi7q/q/UVo+XQfRPoyLV9SqMi+pWuVM9cHZd6kp4P7m32klR3CCuFLd4aqAlxOwUy62/d87egvSP56kwlG2G8tpOKpgP/NQ4dvLwt7/kDI3SX8zpZLsIFTjMZbpkFPTV6Qy98v6ANd6XLmKmSfHb61RmTh68GvxOoFgsikrKtz8i3LO8rcww8mBlvBZ33tvHXElh83tULGNag== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(52116002)(7696005)(186003)(4326008)(8676002)(2906002)(6666004)(86362001)(38350700002)(38100700002)(36756003)(508600001)(5660300002)(45080400002)(6486002)(26005)(8936002)(6916009)(107886003)(956004)(66556008)(316002)(66946007)(83380400001)(66476007)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EhssNvVeg5+r+9Qb/jEb6dc7pcREYR/IJtE0hTE5r3qZ93CL44HKMEigHUy6?= =?us-ascii?Q?TFKCXoT6Nb+8qXp86iZdML+08n9d0gnzrTG1NFFlmaNlhykCEw5kRjTnwF7z?= =?us-ascii?Q?YVCweFDL1DCtMSmcUr1NXEEUNnNF6rhK3XT0gEQV+ZzsM5rt54g94ttyjisn?= =?us-ascii?Q?vuMwDg97I2MW2HTfgOw4V0+vOfJlV2QM6BH0li21RHrON/8ak2eW913CJ3V2?= =?us-ascii?Q?asYXXLSM/ienwsyXnFL5PU3asADst6dmcNSJi/+Hjj0pIXDxmGQauRmlDQZ6?= =?us-ascii?Q?xE6B9OEmVKX0DfuLbwbCY99NIgej0gel00YCHY1j/NeZ0joVDtrsJILR/Fuu?= =?us-ascii?Q?ZtjMwFlkLL3nYqztZOoIEqzWe0YRrif9ZeZ+r5Pxt79kwm2U68PrCXxRwq5c?= =?us-ascii?Q?IQlm5Ytrb8cpUfKX1PyClkQuEgJHOj33PrJxdbjDFtA0yqqHlC6uhsrnimYD?= =?us-ascii?Q?NOqYN2DP/doWdARHychZ3I5V9C4ujSJCY8yyAtYOF5MWpYde90HmfD2Davu3?= =?us-ascii?Q?EWHsDTo9CCIi72njmrShdlFSoEhJuUyp1xHrzYDUlyWlIoLAh7UJ8KGHUZ1v?= =?us-ascii?Q?EBTJcLoV6Lmo9ZG+PA6SbX1Qw9/ur8GOQX4cxKefia7R07p56egqcVUeUwTB?= =?us-ascii?Q?wvfQ1eTfjo+RNgfvnZwGNKDD3VHCI8p2b6s9hNLqbQPxrfd+7Ol6CYet0hH4?= =?us-ascii?Q?Hi6BUgD47kpbJKxb8Cu6pNN1v8sRC3h0LkIDmPPY3f+1PnGt1xE3+ueeI8ry?= =?us-ascii?Q?bbC8uaJARU+QensfVO69Y6dLJlTVbMNqfi+8pfwybC3iQzrLlaxPLQe3tHh0?= =?us-ascii?Q?TtvDKOr/m4uypO00mfCXm7u+gcHUVYXJbfwhwKLS8QKvFGwJR/rijoB5h3Uu?= =?us-ascii?Q?dZ37gdhhmOU1GX8cVJkU0U9uLb43ALhGxY7BzYpq49SQO31tvgUit88m+XbV?= =?us-ascii?Q?4sVzd6ZBFmrvIHPfm6q4qZVZqTEacq/cHDjgqKqNxl9JYkOzhHxaU9WwUwOq?= =?us-ascii?Q?bx+yRi92lVOVjbUGJjg0+fHzRAqJod8lqY2v0aO4cPeszyQgwAD+QygnFOt1?= =?us-ascii?Q?Poy0c5pcuns1r9tCHZPeMmNZWXnvOsOCOmICqj8ed57KttwVGTVMV5PEZTCL?= =?us-ascii?Q?w7abeWV4hz9BPco+k7A88a4Jzm2lB+3iqG32agzfLs2C7F3eNSokJabXiFFs?= =?us-ascii?Q?vExh9E+QiLbKkd2qviG7Q/6fB8x8tIAsdmpUyFfc448BYkZDAYooMHhZxvUp?= =?us-ascii?Q?nHM/1b+zwKnK4hVGb7wm6YwHX2m/SWUqwCvbxdhPEbWGBzs+5QP4ND2F3nJJ?= =?us-ascii?Q?eKdzuzo7U1Xh6COJoa4+lsCRCgRwtpkSh/sAKQ1CZCTk2orLAc8b/wZgdIwZ?= =?us-ascii?Q?+obKtMTnafiBQksA74SZEaEb0Hy3HROVkY9K5c5GOsBdvc4ivUU0P4BUpz+x?= =?us-ascii?Q?cjoecFCM9fKOUOQ6/j562vJn8XSBkKxIW7/fRh8vcgIHRyVMZonywlNC6dwm?= =?us-ascii?Q?Gh5k12971gtuDw+pKzAG256gSck0Pgs1Bboj123p5XH4kKlAa8P4Hl30DKWr?= =?us-ascii?Q?8J+1mBlUEBgj0aK2s4wiu2Fkxya4dBreWEduSHC6oyXK6nj/2XXtG4IHAQ9i?= =?us-ascii?Q?RDO5fmMSgmgLJi3ugO4tVr0cs1TzaEIA9ALlCkWc0pzQgvAQ81BbDF3x4ytY?= =?us-ascii?Q?YTbHKg=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56be0025-1da6-4e87-7d01-08d9b5c73e6a X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:20.1639 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QOKE2/TF+bQR6BtL1FISRK/VKnM0ea4epmIrw+UqZE280vu/Wx5UDBVgVUPGLIyN9EnTjOCcLzo692ISE6L6xH2PnFhhRQhQxhv672moJK4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1693 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=500 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: 1SqUAxoU8sLLPfH34-4bh-cTE3j0z9Ow X-Proofpoint-GUID: 1SqUAxoU8sLLPfH34-4bh-cTE3j0z9Ow Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472295068100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Information on the implementation of the ACPI ERST support. Signed-off-by: Eric DeVolder Acked-by: Ani Sinha Suggested-by: Konrad Wilk --- docs/specs/acpi_erst.rst | 200 +++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 200 insertions(+) create mode 100644 docs/specs/acpi_erst.rst diff --git a/docs/specs/acpi_erst.rst b/docs/specs/acpi_erst.rst new file mode 100644 index 0000000..a8a9d22 --- /dev/null +++ b/docs/specs/acpi_erst.rst @@ -0,0 +1,200 @@ +ACPI ERST DEVICE +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +The ACPI ERST device is utilized to support the ACPI Error Record +Serialization Table, ERST, functionality. This feature is designed for +storing error records in persistent storage for future reference +and/or debugging. + +The ACPI specification[1], in Chapter "ACPI Platform Error Interfaces +(APEI)", and specifically subsection "Error Serialization", outlines a +method for storing error records into persistent storage. + +The format of error records is described in the UEFI specification[2], +in Appendix N "Common Platform Error Record". + +While the ACPI specification allows for an NVRAM "mode" (see +GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES) where non-volatile RAM is +directly exposed for direct access by the OS/guest, this device +implements the non-NVRAM "mode". This non-NVRAM "mode" is what is +implemented by most BIOS (since flash memory requires programming +operations in order to update its contents). Furthermore, as of the +time of this writing, Linux only supports the non-NVRAM "mode". + + +Background/Motivation +--------------------- + +Linux uses the persistent storage filesystem, pstore, to record +information (eg. dmesg tail) upon panics and shutdowns. Pstore is +independent of, and runs before, kdump. In certain scenarios (ie. +hosts/guests with root filesystems on NFS/iSCSI where networking +software and/or hardware fails, and thus kdump fails), pstore may +contain information available for post-mortem debugging. + +Two common storage backends for the pstore filesystem are ACPI ERST +and UEFI. Most BIOS implement ACPI ERST. UEFI is not utilized in all +guests. With QEMU supporting ACPI ERST, it becomes a viable pstore +storage backend for virtual machines (as it is now for bare metal +machines). + +Enabling support for ACPI ERST facilitates a consistent method to +capture kernel panic information in a wide range of guests: from +resource-constrained microvms to very large guests, and in particular, +in direct-boot environments (which would lack UEFI run-time services). + +Note that Microsoft Windows also utilizes the ACPI ERST for certain +crash information, if available[3]. + + +Configuration|Usage +------------------- + +To use ACPI ERST, a memory-backend-file object and acpi-erst device +can be created, for example: + + qemu ... + -object memory-backend-file,id=3Derstnvram,mem-path=3Dacpi-erst.backing,s= ize=3D0x10000,share=3Don \ + -device acpi-erst,memdev=3Derstnvram + +For proper operation, the ACPI ERST device needs a memory-backend-file +object with the following parameters: + + - id: The id of the memory-backend-file object is used to associate + this memory with the acpi-erst device. + - size: The size of the ACPI ERST backing storage. This parameter is + required. + - mem-path: The location of the ACPI ERST backing storage file. This + parameter is also required. + - share: The share=3Don parameter is required so that updates to the + ERST backing store are written to the file. + +and ERST device: + + - memdev: Is the object id of the memory-backend-file. + - record_size: Specifies the size of the records (or slots) in the + backend storage. Must be a power of two value greater than or + equal to 4096 (PAGE_SIZE). + + +PCI Interface +------------- + +The ERST device is a PCI device with two BARs, one for accessing the +programming registers, and the other for accessing the record exchange +buffer. + +BAR0 contains the programming interface consisting of ACTION and VALUE +64-bit registers. All ERST actions/operations/side effects happen on +the write to the ACTION, by design. Any data needed by the action must +be placed into VALUE prior to writing ACTION. Reading the VALUE +simply returns the register contents, which can be updated by a +previous ACTION. + +BAR1 contains the 8KiB record exchange buffer, which is the +implemented maximum record size. + + +Backend Storage Format +---------------------- + +The backend storage is divided into fixed size "slots", 8KiB in +length, with each slot storing a single record. Not all slots need to +be occupied, and they need not be occupied in a contiguous fashion. +The ability to clear/erase specific records allows for the formation +of unoccupied slots. + +Slot 0 contains a backend storage header that identifies the contents +as ERST and also facilitates efficient access to the records. +Depending upon the size of the backend storage, additional slots will +be designated to be a part of the slot 0 header. For example, at 8KiB, +the slot 0 header can accomodate 1021 records. Thus a storage size +of 8MiB (8KiB * 1024) requires an additional slot for use by the +header. In this scenario, slot 0 and slot 1 form the backend storage +header, and records can be stored starting at slot 2. + +Below is an example layout of the backend storage format (for storage +size less than 8MiB). The size of the storage is a multiple of 8KiB, +and contains N number of slots to store records. The example below +shows two records (in CPER format) in the backend storage, while the +remaining slots are empty/available. + +:: + + Slot Record + <------------------ 8KiB --------------------> + +--------------------------------------------+ + 0 | storage header | + +--------------------------------------------+ + 1 | empty/available | + +--------------------------------------------+ + 2 | CPER | + +--------------------------------------------+ + 3 | CPER | + +--------------------------------------------+ + ... | | + +--------------------------------------------+ + N | empty/available | + +--------------------------------------------+ + +The storage header consists of some basic information and an array +of CPER record_id's to efficiently access records in the backend +storage. + +All fields in the header are stored in little endian format. + +:: + + +--------------------------------------------+ + | magic | 0x0000 + +--------------------------------------------+ + | record_offset | record_size | 0x0008 + +--------------------------------------------+ + | record_count | reserved | version | 0x0010 + +--------------------------------------------+ + | record_id[0] | 0x0018 + +--------------------------------------------+ + | record_id[1] | 0x0020 + +--------------------------------------------+ + | record_id[...] | + +--------------------------------------------+ + | record_id[N] | 0x1FF8 + +--------------------------------------------+ + +The 'magic' field contains the value 0x524F545354535245. + +The 'record_size' field contains the value 0x2000, 8KiB. + +The 'record_offset' field points to the first record_id in the array, +0x0018. + +The 'version' field contains 0x0100, the first version. + +The 'record_count' field contains the number of valid records in the +backend storage. + +The 'record_id' array fields are the 64-bit record identifiers of the +CPER record in the corresponding slot. Stated differently, the +location of a CPER record_id in the record_id[] array provides the +slot index for the corresponding record in the backend storage. + +Note that, for example, with a backend storage less than 8MiB, slot 0 +contains the header, so the record_id[0] will never contain a valid +CPER record_id. Instead slot 1 is the first available slot and thus +record_id_[1] may contain a CPER. + +A 'record_id' of all 0s or all 1s indicates an invalid record (ie. the +slot is available). + + +References +---------- + +[1] "Advanced Configuration and Power Interface Specification", + version 4.0, June 2009. + +[2] "Unified Extensible Firmware Interface Specification", + version 2.1, October 2008. + +[3] "Windows Hardware Error Architecture", specfically + "Error Record Persistence Mechanism". --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472552; cv=pass; d=zohomail.com; s=zohoarc; b=XidcL7As0CGrAK+0rXIYGuEFd0jTpMKyOtmlaSJ81nsbw2oCSHSeyVHKXM0tUrLUX3hpSvbFcfFgBcDYfx3OR45WEw2PRxBeuZirEwN0PS9XGwdDvX1d+2BLCnktJiWqxVu1Q98NzH2lK4L4lWuXYnbZtAk7/fR3npdQv96Ayus= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472552; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BsKpnC7kaLxk41JtbrSpabPZ/1RGHWYpBxzYnzfhPiI=; b=S5vtG1nFIfoXi7EPQO65izXJhRGMnd1gtlgScUq4VS9qm76s2gU+VbJrbpHS9G6jMFxlLchvwAjkINGW3b/vQNvzSyr4g0beL3qP3iGGiuegGTCTOuRVPiUvbP+C31mW/v5I7kf5fPYg3yhOUznViterS0lsr27t61QPmcbMIDs= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472552392759.0624388686141; Thu, 2 Dec 2021 11:15:52 -0800 (PST) Received: from localhost ([::1]:40716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrYd-0006Su-7G for importer@patchew.org; Thu, 02 Dec 2021 14:15:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44844) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSd-00073w-PZ for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:39 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:32508) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSb-0006Mn-Ia for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:39 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IwqsL020410; Thu, 2 Dec 2021 19:09:36 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp9r5a8ra-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:29 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IoPRk115619; Thu, 2 Dec 2021 19:09:24 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2102.outbound.protection.outlook.com [104.47.70.102]) by userp3020.oracle.com with ESMTP id 3cke4urw6s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:24 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1693.namprd10.prod.outlook.com (2603:10b6:301:a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16; Thu, 2 Dec 2021 19:09:22 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:22 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=BsKpnC7kaLxk41JtbrSpabPZ/1RGHWYpBxzYnzfhPiI=; b=GTycuGdpK6o/nVsic/mqjsy7MjT1KGFO6ZBh/J+Odpss41Nj9P9HAViClk8Lcs0cJ4x+ boWwXvI21KIKQPN5tJrwfd/U/lL2Up/grPu0lGhJwteoZM0IeSFWNHIzb00+ysmvT0MY hpmXvndl4B1yHdsgf50T1zq7iTc92GuIMxXDdxiCVZa1CDuHeJfLJ/jaD5twkzlkKVam 5C8kHi+OUc0TwzSWEQ8KTv1QSrkmLK/x2dYOm6lBqMz2Y+ouzwUtYfkNprqKOhgRNmJe T3QO1HjqoAUprXxFqp2kaLD/D3BsTnCJHJcWP+pm/bxZeeYJuNxEOUU9CZInwoZ9c3eW 2A== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fP2qbDB+Y3Js0Sxwei+9KkLwVbbPHwyfUT+ApC4gCf7EqLYGp5UHUZFMQOQbfwC3YbKOpZ9q4aVdekc/u5krrfgDYKRk/ngXBAWxhMdQ+pM4a1N32Imx7rQJxPXHeNkwcaqR4nktk+HuoJvbGtEANEuXEq46P7sdwv3y8tgvXvYZUD1XvsewPc98pX9kE9+fZzfQkrqTMMk4gFQmWArNkMFiIw6tMySNhurzEILyiUfAwpC/lzz4e+UAjpl7bXMP+ET59t5UH9h1BDc+l4DDQR11bT3zYa7ms9+yONdPJbLL0vpiQD06rc30tCVTOBgoOPcEXNFVa8Dn9YeodHD+eA== 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=BsKpnC7kaLxk41JtbrSpabPZ/1RGHWYpBxzYnzfhPiI=; b=B3/JMbagZmhyb9R0vzHArILNOXU0PFtxNT+a8CqAQmwxCnNgoKN9cBgALqF/bioyBg1wOPZ+e68NnQaz/B9d+LS+ceoaphk2bnByDaWdSEnoA/QIXJYUALM4XwLfq++0wECtN1DhNnLGAwxmZkEi7OW3AX+SD+Z2DptYpY5xEFY+Fb6Jz0OoUNZVKYrMdPB9Af38+x8bPZRF4Pk8OxGJedHyRrk1pf+0WbO2w1L/UjoZCwXNE+m94cJwuoXMawNUkubD5uEonwlif3leufsYFu+RQWRI4aGrWNDVKSgafRpifCiwPwmO426qtg09zI7NFX0bvw81QZ7S544TuSDP/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BsKpnC7kaLxk41JtbrSpabPZ/1RGHWYpBxzYnzfhPiI=; b=GnTstZ4uMRkSXtG48X5ssA/asOWHQeLcWmRKg2/4frSFG26QT2z0RnzeffB6rWrOSMhSIWSvjNmBY325vBqIlu0npVYwRT5YXKOVCmaBq8EDnwhqhFKySG3Ez8F6TxeWyvf3HrgzN7NY/sm1JaE/pShfOCRkebMkkTndcovaxeE= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 03/10] ACPI ERST: PCI device_id for ERST Date: Thu, 2 Dec 2021 14:08:55 -0500 Message-Id: <1638472142-14396-4-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0707a636-c863-4b99-c034-08d9b5c73f81 X-MS-TrafficTypeDiagnostic: MWHPR10MB1693: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3044; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cBCUr2jdanylsYhzS39ZYbX9DGv9O0weNeFiSdJujUOR9dUz/xn4hGnS0inmUa978UlS55NvjqgACQdqhb9JMXKjeXKSi/A0zWz0DEtyhWNpZjgf/GumMGaYBbfhRo+zwMK4kuetLKS87qVqPOgBU2+3JkmMVE+A0r05e97HGxjbTrrfHlwd+0a7vGttHIwQozgKYmuABurw7vW+94nhV78scyYzuUgKLl19oam0OAepUES6bHYZPyy/hca/fRXgaO9oRXgyDQ3uEI4c6UCWH7IO5rZ8vSL3a3xPBZ+osm9R00dcr4bi1Q2OkqucTeLSkYoCjomHjF/o5A0O6vCR0Vr4Wr3Wa8RCWVBcgab3RvOpBMSTbbDrvKvnqm60+L5R0ENRKB8cyNW18crzX1fqlymTznhmhItAr9HQ+CEZ0onP8g7aDEo5dRFcULMpt6VcisoevwYThhN6fmjkES9IlXyQ+dqcsbarM3ebJNw/5oOVZcvF9iCXe38c438gMd2B/0PcN2+NMUBSpMbalAm9unDxL5B8X4D17iAqMKGp33umNyd8zhp/9CUIvJn+TINJMEpJAxk8N+K9XcrTizWnT498323wreit6ndf8MT8crhuyY7V1kcp4w9S8qubvsyB/jwJW4anweE0BOedVZo+7BBzMhDh19d+NeeuN4jAKJpINySObkHA2JbcuDEqmX57CWw7fsLxut+X55vSeXVVhA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(52116002)(7696005)(186003)(4326008)(8676002)(2906002)(6666004)(86362001)(38350700002)(38100700002)(36756003)(508600001)(5660300002)(6486002)(4744005)(26005)(8936002)(6916009)(107886003)(956004)(66556008)(316002)(66946007)(66476007)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FaCq3yfOr9QKoC10rwMjxjNl0iFIwdtyqm8PD597UiLeD+hMKn+vJemQWRsO?= =?us-ascii?Q?BDLVCWod5yjhHuC3mkJrSE4DGCfLoEH0+4UPGL+Xl/T6tPAYlbNHLiJ1jOut?= =?us-ascii?Q?TuRA1boo9mRD6sjmPtpnDw4f/Xn02bApVbY3WaKoX7fwJrNcLX6DuVtEUy3j?= =?us-ascii?Q?LbEoyVB7/Jd4XZj8y4jfRO3lil/QZpcjAWSXjyAXr7dOQGYnSlxuyArw/ztG?= =?us-ascii?Q?HrEU76p8qcdC8A4/mBf4g0kWJgK7Svc/gX0Q53HqQeYr+9HI4h27OVhEaoCf?= =?us-ascii?Q?KuUHR8Kf60nfNGQ4P/h63rG2wbq3L0HKdUAs04AVqLHbvtkwHi17MArBLRzD?= =?us-ascii?Q?CK1EFrzop/DPAutNbDmWKQzidJAehv1GSJEhUK3yCmxqVWJ3g5vcsVKr9fa4?= =?us-ascii?Q?8f2RxrGrxPkxGED4EWYjK8EY6UVyEamhjR7/yycFbIPzSfRCt/LpJZSVh6Pt?= =?us-ascii?Q?5BPbcuiad1aD06Gxv+4FurUbTS6o36y/NsizXSzXIqRyxqmVSjY57YnTDcBa?= =?us-ascii?Q?SL8DDUsrHXEbhxuRsgGfJuMqHx730b+spCqApucuQKbuQKWe7G5uluMvnTka?= =?us-ascii?Q?Xp92PkXVkgF13l3vd2FiDweRmTRMwKNvmPo4/BXCwbQO+xt6Ae6ZLmXiPQTr?= =?us-ascii?Q?ptqCxsHz8k1RTjJRvQgeW1qsuQqDWUAAHvI6SXKVUscdY7G8gQM9lG8D6yFw?= =?us-ascii?Q?OUHJ4EMBoOWmnc5s2x4WjDHAz0y+XFILQfSXixqRljD6rv/lr233rMVWEYDs?= =?us-ascii?Q?sahL4WDMbG9ItvXtBvXPA6j8HuE37nXnO7j0iFsnI3qrqDIOuEOXSbvSEAsh?= =?us-ascii?Q?QXjBU9XPEf5vrDPSSdM4l20EW8z+TXTjRNAy79SNnG7CcSIoP9cHROclaepR?= =?us-ascii?Q?FBz7Z+TjnuBbyz8NpNLljScQZK7ohMqHOc1amLMy3qyFBHt2r0E6Da1Ghw4K?= =?us-ascii?Q?2dItg1Ipr4C9YnHSPMoEIQqe8tJVe0n+Bbyi3Cy6s2PnqgSme+BLYxMfE3wo?= =?us-ascii?Q?xglV0k+kdVvAHX9r2BrSH1JTEegpnpa8g+pMB2xExMiNdbSqcuadsvGMMGkK?= =?us-ascii?Q?63gxpKFIt8EYY4X+HItWL3tRIhA5D7818dcibC7ZWDCMFL5/G/7adCbsrnV6?= =?us-ascii?Q?Ssa3CzpuT8LGH7MNIni4rKdgo00GUcePhlsIvsvmJkG5+SjKVrL5mym9e5zl?= =?us-ascii?Q?TV/540Y7I5BbkDcQkakwskUAxr5o/Qm1MsA7K5HDpQ3YgYGOFZRUg/1FkDSG?= =?us-ascii?Q?T8tcKVxPUeBdaccxzgDbzPAvhpxXPq3rimKxevyCEJg/r16m54Ppwg5W2rqc?= =?us-ascii?Q?0LJX5Cc0mV9gOXxf7I6BFdFMGlv0xQsmVEeaX9c4lN7+6RGTi8r8P/e6EyOJ?= =?us-ascii?Q?otk3MaLLOSjrBr2XG2cy6dwiiMz3N4FxIt6FJa4iJUcO2WaASUbzmc3Wts/D?= =?us-ascii?Q?zlzjJMCfUevEPzy1PvtYZcOhodoVDvabKlNTSqT6ULSCig11hRrE4ogaSBuD?= =?us-ascii?Q?uzFNc6vj/+xsozv8etZhSSxB6jkx9DJd6ja4PKpTfdb28eU2hENiHjm1gEjF?= =?us-ascii?Q?AuOm9NmElN34nvqraREOxAp9DqATwYcqaa6ehKbrTniyIyefsbs8N7Xy5K60?= =?us-ascii?Q?1Qk6XAJ2X6azrmRZr78p0DQeQ3PElUKYdYWvtv4kVaS1u75H6GZuP4spEDwt?= =?us-ascii?Q?atOV9g=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0707a636-c863-4b99-c034-08d9b5c73f81 X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:21.9941 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MbM2m59B4ZaR02yEgtHtbRMPx/ReuFTwrQ2aZPh6erkbM4MWwvDDr3RqS3ma1Vys5J+Wd/oVdKbZWpipe/AoG+kBiBBpFbWnQjnQi5BRLwI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1693 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=924 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: HS7HiGz1u9EY9-F4KeiArbm3YToWrDrp X-Proofpoint-GUID: HS7HiGz1u9EY9-F4KeiArbm3YToWrDrp Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472554594100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This change reserves the PCI device_id for the new ACPI ERST device. Signed-off-by: Eric DeVolder Acked-by: Igor Mammedov Acked-by: Ani Sinha Suggested-by: Konrad Wilk --- include/hw/pci/pci.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index e7cdf2d..d3734b9 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -108,6 +108,7 @@ extern bool pci_available; #define PCI_DEVICE_ID_REDHAT_MDPY 0x000f #define PCI_DEVICE_ID_REDHAT_NVME 0x0010 #define PCI_DEVICE_ID_REDHAT_PVPANIC 0x0011 +#define PCI_DEVICE_ID_REDHAT_ACPI_ERST 0x0012 #define PCI_DEVICE_ID_REDHAT_QXL 0x0100 =20 #define FMT_PCIBUS PRIx64 --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472787; cv=pass; d=zohomail.com; s=zohoarc; b=PqOcjLSA5QRCOzs482z+54IFlNhaiOstU17oxurth6KCmf3e6yB8+TMzYc47WBY4eHLmeceLGRUQPNXfC+H3B8mERsveKIdeOin25jazUaqYY/r9oDYok+B5KS2591yCWCjr4/DLPrq2ilvCWyyGuZjYyLJPRnWdYzA/t9nGe6w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472787; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4/tfqFrWnuMBDAgJe9rHCzAWYYO+Rgg9uqlAZfv56E0=; b=ItGWzpzVohGFhdKGoXKgwabpNYppqLrNiBbWE7PIQvlAemUw9epkDcuq1OSg7MnTTLNDeGOe2oi2EcxtjZ5y/EMrZ7UbzwMo7J37OJk9TDAtPmn8IXa5ReQeQuKXrWJj5koUz/l7udbLW9ylshq+TlxHQttwX/aMINMUHVyG1iw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163847278783859.84426030905934; Thu, 2 Dec 2021 11:19:47 -0800 (PST) Received: from localhost ([::1]:49290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrcQ-0003rR-Hb for importer@patchew.org; Thu, 02 Dec 2021 14:19:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSm-0007BO-4C for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:48 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:52624) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSk-0006Nc-7W for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:47 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IPJNH015766; Thu, 2 Dec 2021 19:09:44 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp7t1t6wk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:40 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IpgJP085846; Thu, 2 Dec 2021 19:09:26 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2044.outbound.protection.outlook.com [104.47.51.44]) by aserp3030.oracle.com with ESMTP id 3ckaqk1xwr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:26 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:24 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:23 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=4/tfqFrWnuMBDAgJe9rHCzAWYYO+Rgg9uqlAZfv56E0=; b=r7nwrnGRl2gkSYbtjAxYXIMnCyPNB1g9YnGJOvn/WPeDpi20ViAqMubUXBucODFKrSzY zF5nAzu0SqOUiKmOL+j4V6Ezw0c7hRMWkIu7gkj9m5l4ufwGnuaVc7cJALAqmPS/H1a9 uKVNpd/Nhk8TZ3Fm1sSwWbUvQPW0X7JtYDWGQCFnp34wU27jUU0VvJu9eI+t96hwsSEA zT4nGNBv/9wrYQ9wBg79rPcJRkCau4j33z1C47hPpSFZjA8oSUZnOGOvHYR+AwfDIt75 cIgS59SxcgDLGabWLh2mUvYppin4gbD29XD1h8V9B+v8Bmy8sOrPQjJ1jFQQSgUjjo2G 8A== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nf3TKSX76d+pa8yxyNn1qFyVXUBwZYpsQac0LbUeoc0udo7aA8zEyY5HoJ0puxLcxSVHQjHivZoxLg0ApsdfpEnmBKQE3aSi9p84jmEpbRR9m+nTHsIL5K28QwmBZ2TURKLomSLKGCU8HTEHrb3R+4puUf27j4r4Ad8sTV5AiKNXIA8WoZzDWkj8w1l2nfo39KQSCtLAQ2Gs+k7nRbZd8OPuTEmiUX7cVZH21gP+d/TUDZnyn0+8z1TmJbtHIK158lVMpM3Q/2Nf+Stys5qj+oNpk07sd3LMgos3wb9UNKBkN0FuSKDjt62mZZqyizt+JZRse8hq/XrzkPBQerEoWg== 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=4/tfqFrWnuMBDAgJe9rHCzAWYYO+Rgg9uqlAZfv56E0=; b=KzQRIImRE3+WvutJcO6Qy7eBBc+d/AmALp5FEm9WHvNz+uEJZfdpsVq3/BuUcQTEf5WsdUbkZcopCiE1Y1mghR6oZ/YMceGHFU2MyALodPQQhkGRH90iq4Rt4I+086bGov3ht+NixTltFg+DKDNlVm/M6l/C2B3kWsFL67el/YZkiRzL9x2mStOIjEuuCPUEnivYxf+tHjVbQ/P86VtVibud6vtTvzGVpoC9gtGZvQjbtxXcP0n0lrZFaau3q/CmVJ8HrpA5yLpvkZkgG3KuvT3mtdfon5cQ2hxthZD2/hGJRiAtHEyuJWmt/pieIKHfEFtSvpr6cNWlEoSHDk5cGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4/tfqFrWnuMBDAgJe9rHCzAWYYO+Rgg9uqlAZfv56E0=; b=AzQR+/gd9+V6oNLoTp5hGcHyjGp6BVsqoMljNN+CHbeW6o6E5wE0UWTgsP74Jg49Tu9jsLzwGo1A4nAEilAEcpt3JrbaENqV3gq3ay9zVbCKvnB4+Lq+1yFqgS4YOoK3+NByWTWUJZLRLiexjPuWCqMDJRNgM+SfvkS5NO9LJ8Q= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 04/10] ACPI ERST: header file for ERST Date: Thu, 2 Dec 2021 14:08:56 -0500 Message-Id: <1638472142-14396-5-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c290a90f-1967-43a6-7245-08d9b5c74096 X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2449; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BqX29643LkW/P56MeVVyE3sFgSD+Chf0wqqnykFMosxpFQ1NIZgShUqP2iJuT0M5ZTqfEN9+XRPdCm5nAx0UL188qMplzmwEevxkzduI92qTqfY3O9hBKYmAiSS07yPBTBqSk2GGAXvHP/ETkp7IwEmT0VbAXzoclUhIHoPR2eOoauIqos0J3ApAeUehQdhszVMhxhSo02sXUJExpGgGrFMQ0kxf6nhnhn2h96c1y9d3ogX855P2+oPqWVJN5nr41uhEcP2KJO6tv78T+cWknHy8g0lKfHdgly0mBGFzmHs9bSFU/IsBn43rk6rtURI7L/n5kmJmLsvAj/fp3GNLpYsQbfaGN0yA0j6QV+t0+l3+7pBduYplsNclb2lqNpTgbY/k9j/lSuWw85GXzLqlgMKDRI6azNa8pLm4FT5aZtF+KtflCiP0Vf5nr1QRcjRPKGc2dAb3jjbGJDEbWSqeukIe8hBrRX3xwdkbZha+mQ66s4pDFYxSrA/MFpE93Eh84Nck+GUL9QiQiIdTy2TxUqMzq8vrKygzDOkr2Ct4wpnmNuulCHqAb+vJfvm9s3CDwLRCCS7SajcrkufwiZt0prtFLIE8E7e6MTlyMxiZ7/VlyO8XVijSvAdBFKwcC8eMvlAz+ixlnSlAAc0fPWqTnvdKKq2Sc1bTdnFya4HCmu/h50D86mNTNDJCQ9atbHhuilQU8SgM3vmMbzgnb0qM9A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(4744005)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sENA7feRbgAbdR97q1uen2zGpfvQ8YIkzt97+r5Kvz7qjrf3zbyrtD3fhXLe?= =?us-ascii?Q?en3oLpIYRdC8Rk2DhKw1Gmmb+Hmaxbu7nAZ359HeTQ6WLew44MI7WNnoN0zP?= =?us-ascii?Q?vP1LMIVOJqlBqYiKuAlsf47tiEKfoLXKcFr/FL2IOHRsKxSOLRW9Emm6bnFf?= =?us-ascii?Q?lurGR3pcpnm2ElH+Ro65mlU5xp1gJ8om1OgTfK0q40NG4ld6+JNBaUDiLv6J?= =?us-ascii?Q?SyTToc/9SSHE0p+iIG8YtJcg0LsP/4hn3bbvTaZm5jGJNOvcs8BYf/WyKaOy?= =?us-ascii?Q?M/+ABnswJ62DPF5MonwKOp/n18tnO1Bj5Lg7AiApGtiGDMe080pKXLqj/Za/?= =?us-ascii?Q?cGw8SyHFd5ekmk8r8GRSe0+8+vfPExhi8ceuqr3uPeDrbz5OY3UP9Jd4ipTD?= =?us-ascii?Q?3fnAHg1X+akR1WYXRmiNUPvEG/ipctlW4Y2a7rLyYRWeC9y6tZ/hB24vGQ8X?= =?us-ascii?Q?wVbfU1N2KrRNLKBSBylvIU+cNGmqxjy34tSisq10DKbKR/V13gwP9A1AUUQE?= =?us-ascii?Q?mHWyTgncWfKQAw23pOdi0cunrM5B8IkMowQdDLm6xzLb6v91vwGnLiaFYUbb?= =?us-ascii?Q?ASA3BCJugaPlFjKwJPtV3qXiwGKayV35Gv1Tmt960tBR7uL4k54VsIQ/qWwP?= =?us-ascii?Q?NdH58AM2P1JBBduP/Z/T6gJJi9g+3eM6eHmeFTVy5YIiXCkE99iG76g8TR/C?= =?us-ascii?Q?jGJZJYau9gmTShqy0a2Mz0fu3tyZRthhIg85WVHPb/nW753hN3/hgVOrwypX?= =?us-ascii?Q?Q0bKwjEO3vqWxDcXFdjJSsDVO5F+3Cyg2upUIL48ibecEOqpAk7J6iCnFwDU?= =?us-ascii?Q?37j8bwYi/eIxF0elSyPLVWXOWEF9veE96COlmG+1jzWFAtrsudCkpOC9aOnv?= =?us-ascii?Q?L/5aNZlOqVs/Qxrw3DRD+05qwz5DD7gCvoPVa157gEKDm5YWg9fg9ixf0Fag?= =?us-ascii?Q?K3FwGpUFOWmvOg5gHXULeco/OluijjU1Tj7IHjQ6gVyVMhdVIRkc+83E+FUo?= =?us-ascii?Q?uSbPT4J3rFAMIDLpbBUFMgeA5nz5o2n1+Xf1iXzT1cOVf4ayDEY+LVyHqjuH?= =?us-ascii?Q?nDqZqQ4XpyTG1XxSuKK7xtWGMaZ1C9qyW90d35WpngX8Z4ntI6+OkCnnhD4F?= =?us-ascii?Q?uMGkcE1468r+lKY5jJq50O1GwnDprlwM1ZCgSVQ/Bj9NOD3cdaV2ehrCvXOo?= =?us-ascii?Q?UYZ75tatbMVFc00hKeqp2+sGviPj+KxOn7oK6GzTRO64Pqne5kbYsUsw0QMr?= =?us-ascii?Q?PcU090e1HPP98KvPnOZSLwDOzWJpxFCtMKaQN1qxtNh+xXwdDNK7m2ClRPo5?= =?us-ascii?Q?YMoa+PCc5vIZ79bxsyr4cw8ioyDiNGkl/cDuaIbuC0CK0jTvWiKsw6PKBWtC?= =?us-ascii?Q?5xppm8LXbnHV+Z1iYmf+WkSn8cRZiac4smctLCHLXIpevGBZDP9rMXAcCbpF?= =?us-ascii?Q?yiDvZULYfu3efL+oKBI6aZAkIaBc3KAr9iT6qwFU6nQcpVIC8clIvgO6Ko8B?= =?us-ascii?Q?M0pXLzz8uz8lvFV6xUWGOLWxX9soK33LbvigGSYTTpeJeG6We8+RncmY1TsJ?= =?us-ascii?Q?FQG9j2ktgEfx5yu54kcDre/fmGC5k1GHh2KPQ4enjnLQjQGnrVTE/kfqxgwZ?= =?us-ascii?Q?4aI4IJeqWEHVXdhtVfM6zZDbmLi3r/Mu1OgPMaknzFOormylS0nI9HZ4QzzB?= =?us-ascii?Q?5SETfA=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c290a90f-1967-43a6-7245-08d9b5c74096 X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:23.7918 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Uadi9rWxxRZ4gW6FLFotL3x6Aam9Y4G/X65+bTgHN0m6i/2bmxt/H4zUIMGrm5SulPWkYAtpfvT+WYORxGtMpZcPuGWK81V33L7wuF+JbzQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: k428dbZxr2uCLdOJiqSTiE_ngbjT9R_e X-Proofpoint-GUID: k428dbZxr2uCLdOJiqSTiE_ngbjT9R_e Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472788572100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This change introduces the public defintions for ACPI ERST. Signed-off-by: Eric DeVolder Reviewed-by: Ani Sinha Suggested-by: Konrad Wilk --- include/hw/acpi/erst.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 include/hw/acpi/erst.h diff --git a/include/hw/acpi/erst.h b/include/hw/acpi/erst.h new file mode 100644 index 0000000..9d63717 --- /dev/null +++ b/include/hw/acpi/erst.h @@ -0,0 +1,19 @@ +/* + * ACPI Error Record Serialization Table, ERST, Implementation + * + * ACPI ERST introduced in ACPI 4.0, June 16, 2009. + * ACPI Platform Error Interfaces : Error Serialization + * + * Copyright (c) 2021 Oracle and/or its affiliates. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef HW_ACPI_ERST_H +#define HW_ACPI_ERST_H + +void build_erst(GArray *table_data, BIOSLinker *linker, Object *erst_dev, + const char *oem_id, const char *oem_table_id); + +#define TYPE_ACPI_ERST "acpi-erst" + +#endif --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472377; cv=pass; d=zohomail.com; s=zohoarc; b=U0mLKK3Vj9wIChhNiU5KpnhyRTE9sSZFUNatYpNjWaWU4Y3Dyt9MRNHbKdtAgSNNMSea5QUEmtoZpPZb8TfRpwluI3rWs60+4pD88zibU+sztRV0pJi1pYHkwax8MkIAGniCeUIptPG+RJ+m1hhivRyYRKXBnmbscQDQhmHodfI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472377; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bWk/r8zUH7q3o9L1w2KGrCSMoNUpEy8mu9QEq+I/LEc=; b=EGyvVwmKfb5n/RiZGcycG7kkbxZKnd67mozQ5nUNn3xILVltTv/yUcYjjJPn0rqUENNd5Rg01biISGfhz4FY7hVdxbhtqz+JVdMuipPQkQAEde1YPDTSx4d/8VWyxdxSuFa4Jk7BNwuVlJcJXu9kOOoBnBV2OTbRELbSA/bFt3g= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472376987389.5686956347414; Thu, 2 Dec 2021 11:12:56 -0800 (PST) Received: from localhost ([::1]:34308 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrVn-00025r-Mz for importer@patchew.org; Thu, 02 Dec 2021 14:12:55 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44922) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSy-0007Tg-UT for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:01 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:13358) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSv-0006O9-JW for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:00 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IPJNT015766; Thu, 2 Dec 2021 19:09:55 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp7t1t6x8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:53 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IoPnr115630; Thu, 2 Dec 2021 19:09:29 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2045.outbound.protection.outlook.com [104.47.51.45]) by userp3020.oracle.com with ESMTP id 3cke4urwa1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:28 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:25 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:25 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=bWk/r8zUH7q3o9L1w2KGrCSMoNUpEy8mu9QEq+I/LEc=; b=Y3Pl8xPmo2lxH354u2Lc5Po7ci8Y8zmZpqnVNyYH/JiYiNezECS1vYL3845LuN1VskVi NXChXNo9vPzQcrnmbdh/TbNtViuBKHaWWJSknDLcLYgV0RYmGHsIvPpAIuXc4nVv5FsK KBlSizHv95QJgX+iLghMpvgTbkxuUmE1tMW3Sb3KjPoMH0OfvjiWwz2ZzA9k2bqQWV+W ho8mp9te/4+YjvnYewv60ciid3j4yqeGW1h/0p+QJC8IO+u6Ct8dEDx3d5q7dTZXDg6+ uQw/o/GsW+hUfkoz6eY7Tdmro2og1V1TWWkWNUWdb4UF6JDPWjWKyqpu/rLXxbc/znuG tA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O+A6rONbHLnnqUee1DyaUJMyOfNmbsOudF2VymI/d0uSHLul/+tSqVBjl8UdegI/kHG7nWZxZIpxGj75/dF/iUS9548NfcDAYpjdlPJ3cF6wYmxCraGrLqKT35jYre52A/xv1Cus35XTwZfUINDDb4CDz81wOSSariPx/kyg4+SAoZOcvtQYriGj3Um6Z8mzqK+BUIfz0C98VychiTMx+ll3WNzkoeHiMc7bCu/sPWOzLnUxcs6hStYQboYSo/0Z4peqJElDhKt5RKIhrcxPRjKoUZNGd47ygT2pB0OBw2Ew6Q0DRW9aBI6ig8aEUAtycktIQ4SyViKNXIi5nixfaw== 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=bWk/r8zUH7q3o9L1w2KGrCSMoNUpEy8mu9QEq+I/LEc=; b=j0UCw86QggpVqXFeBnYXdBiOlVxTnf6JAbA6PrUdOg/d/Q/69mX7CFEVq1SIqYyxl2mkDMwFroIJ2PIeb+fKAVoxcnEYZPRS2zO+U5hI/u38Lw4Jtgj+yscxaZs3ITnDiwwjkOX1pVEM0kZN9gA14FJf6eN7zqr8zoxIrlYKylWaPrNn0G5xzKH89/QaofIt1niP49LmVNSRY1hvznvafdxU+AkikrC/A0/qgUrGyKeof4xSK/zSU51UYhZwPZBmz6IrmPxmr71xkjG3Y6D/Fyv4bkugEcgy4hWpd9VmvM/vt9UoeOTWBKxUFR3rL+tfNS9YP3HrzayV0xo611xZKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bWk/r8zUH7q3o9L1w2KGrCSMoNUpEy8mu9QEq+I/LEc=; b=QbUiG6Rt6H+Ufr2VvB3shfaG5kCYj+A+PcaN1thPsvADRtyY3dnknwAm34I/gbt5stujgvk96QGMDpO+VdgR5OMCfgMcU+O8BUaQn7n2lA9Rdtoy1f5UaK1mpQoSXGUTt9RQx3JoawbdTtnyNYMrhl4dMmOTJ11s2l+ciJRY4W4= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 05/10] ACPI ERST: support for ACPI ERST feature Date: Thu, 2 Dec 2021 14:08:57 -0500 Message-Id: <1638472142-14396-6-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c5f70ff0-dddd-4502-310c-08d9b5c741c5 X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2803; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gCpZUB4pQhDhgaC7mffNiEsY1MGhZaCdaFsbB/k1RhzC5ggnJGu8tJGcO7HKdGYcWeb/n3MaZG4QHdIPn5Ak1/X5+uNDAzNDprnhAW35PPx7D8Xld5GKW3znyqpODmDvX1LFkB4OMS8hhwxiggrKSC6TIAT8TBDhLXdrrIFlsicA6V965LOYnUEED2Pa/kRiEyyU5us5QoVSlHB8ZdtXhO6f8YdIi15tZhDnRU637j30u6UAfjjA4/BJIwPnnqdtWPEG9qwixkDQmBBxz0yKHpYgsaMaMk1b1NxIo8uxP0HdvMvGlqkS0JlCdY2Xzfy/2JuqhpQ3Ptluevz8r+ceo+rGWaQJLxS3JJjQVQ/TOUlC32gNtbroNQ3Q0IH59PwIsKTPG/nYMo+VC4Yq0giQT9is32phsYxxg5k0+N2hOtzTgxGZbSsFNoHrwWkG4fIaql9d7XTmsXCkWqw+loUlH+NQSlsgG3fa7lNwW+lAhaQ8FZb2nsCt4nmdtmJUC6s+YMRJAhkwAHwF4GYYTccHT/m198IhCx/Ulgkq/uAWis4Xc8Lxth2dUjrmfwjQ8duGrvq1DDjSXzItST91OWeyf7+KHjsHI1TpcryuuYGMH8YiPYgUHQy3BWM0+N+iW3FFA5V+JDE9auWbwborj/hys3j/IG24CdB9t76Y0MjLqthwZnSas27V7hkil8UtoKMpIwgxLRoBl/P+bSXooYaaYw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(83380400001)(30864003)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tJIcojWQgHKQ0qqykG3TChkB8u61tAUUmQAZDDT4dHJbWwh0FvwRtPymUr6H?= =?us-ascii?Q?P3VftvZZ5vFjQQGjKMdKkz1IM6pIeaZLAH7FIdOKKC3Y1XoOBOVKpvLKGMqb?= =?us-ascii?Q?FOYcojkw+4jS6OPFsPSQ8Gl6yOlh5vFJYRkW4BmW/4xonfvMgFgQ7aG5G2ys?= =?us-ascii?Q?P/7DHJwbyzbVjKG7p/gUVT/NcFVI7kCEHw/tFFNiUxBfzgfeEsytBJGVdNua?= =?us-ascii?Q?1bjWsZ5LxHOIxjSXwQJLxWMZZRlNKgMAv6dGrCCtrAq9qbKRPsLI1OhbmBsw?= =?us-ascii?Q?HoiFBngrQU5UUU4ZvSwhk7yrytgs/wNXq9kPkOLAUL7j08YzaekLCEiMSZAm?= =?us-ascii?Q?GYnSQ/fLxC6RKr+lVcy/ZfYxnrcLmCzFXIs1QVRaiwID6NXQcNnsit3pxr+1?= =?us-ascii?Q?WEXf3zwU73B3L0DuH5yfECHNHltoI1cPHDrIynTGHWwc4yEwz1BSwfn6bib9?= =?us-ascii?Q?4Kp8bzVpVFsNNQ5Nf1+UaO/Y79qWpLjcn3sCuzrl8U1cU+msdRqJuABtA/9r?= =?us-ascii?Q?aGtyiGhaC1aX9AbB/BgqulfgwktRkPfAiWQ/iVPIKmbUWCKVI5POxFPRYO7d?= =?us-ascii?Q?GcMHA8v9CN/f+YT1EQnushjrhu9cuU40yIoUIKH4bZsF1VmablTEpxeg/lvA?= =?us-ascii?Q?okHSnH2BJJrEoriFTP5Hm+dttJMU1zWAWhclT4niadiK6hs97/hjuUNCj7vm?= =?us-ascii?Q?U/h+mxVu7BIbOSj1nCNiVYEeHp0C39hBMT4vqahXiKpMY6KxNonQH+qY6ZUj?= =?us-ascii?Q?2H8zvEx5MBsgOD1C6cYN3wSk40VOoVaF1BBbPWnpFGsI7y9DBNIGgLtRg8vg?= =?us-ascii?Q?WZRsqYWZJnkvuvZ38XWUtQeOruU3v3tfRjqJ6/mmhb70fytJdPxIyK73zstH?= =?us-ascii?Q?v6hUeb0QX0YzZe3xukIhi7mv6Ls5LYd7SuBB0Bia7g38fUs9SNzXhrBIC2Mv?= =?us-ascii?Q?zRUsCwGjc/CpnhMzDSnfiWynelMUatMWLhftbIsZ0Kpn8CBPiy3KJ2ZQonYh?= =?us-ascii?Q?ABUBZEkh8BHfLmVguYxX7pWln92c7gkdZscZpazZcGJBymgPfB9nQSN8dPrE?= =?us-ascii?Q?g2QEaAJPuoQ1fpY0sWxFqqoLqwtZOa/L3wvvNAcD4KbH57vITUewA548PHzB?= =?us-ascii?Q?y1XlYfScwZlx+ygqCtHNyuHTo8zh4sdYPBjsM2u6m0o7UOJE/yUakT75oexr?= =?us-ascii?Q?pHGFXKlmaCZOa23N8pE2QOBFVDF/UqeQor73psqVnw5rZdugnemDnUjzXBnh?= =?us-ascii?Q?bekGgUBzpXE4BpU3iZAOGBmARtxNqLlJUShOxilgb2sy9gufsdKTdR/vrdvf?= =?us-ascii?Q?ZT94WJJMwpPKFZlnjOIJmyvMrutmq/+pCiX7Hxr6f5Fh/sez+zNxGfr6bB+T?= =?us-ascii?Q?osvy541+1HmEBWhjvGaAaHv8P7MG1wxpErTgiabZhOFBeaDOrZS30b2a9Rj9?= =?us-ascii?Q?XvdVandPmjsP1YucxsZfOfztyUf4n6pVm2ndtCHH3g077s04TysOZ0QbPVv/?= =?us-ascii?Q?r4d+/LWoAleia70YYPINDAGEHzMPsHQReHXowVWOQEs82kJ0H2ezjvDztmqN?= =?us-ascii?Q?WsmGjA1aMNvnECRuKjepAenWZRcogTjsalqlZsqVw0zoCKKtaieQjYPRB5JM?= =?us-ascii?Q?hFA5uiUG1/n0A7mO67C1V05ICLHPRWzejl09DOZUogEohhYIxWR7lYB12+sI?= =?us-ascii?Q?LsFZ3w=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5f70ff0-dddd-4502-310c-08d9b5c741c5 X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:25.7915 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PYFAf/IVqYGFt+Ym5/fxpUty/s2rskY5g1OXm8sf4R5c5HThAPST2aad+h2c637gDHUtJBhu+wuExg4Xn0DlvE6ByjsJPGp2mBRjkt7gLGY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: UAcb590WABf4lt_MbHe0emOHKe-zHiXW X-Proofpoint-GUID: UAcb590WABf4lt_MbHe0emOHKe-zHiXW Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472378034100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This implements a PCI device for ACPI ERST. This implements the non-NVRAM "mode" of operation for ERST as it is supported by Linux and Windows. Signed-off-by: Eric DeVolder Suggested-by: Konrad Wilk --- hw/acpi/Kconfig | 6 + hw/acpi/erst.c | 836 +++++++++++++++++++++++++++++++++++++++++++++++= ++++ hw/acpi/meson.build | 1 + hw/acpi/trace-events | 15 + 4 files changed, 858 insertions(+) create mode 100644 hw/acpi/erst.c diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig index 622b0b5..19caebd 100644 --- a/hw/acpi/Kconfig +++ b/hw/acpi/Kconfig @@ -10,6 +10,7 @@ config ACPI_X86 select ACPI_HMAT select ACPI_PIIX4 select ACPI_PCIHP + select ACPI_ERST =20 config ACPI_X86_ICH bool @@ -60,3 +61,8 @@ config ACPI_HW_REDUCED select ACPI select ACPI_MEMORY_HOTPLUG select ACPI_NVDIMM + +config ACPI_ERST + bool + default y + depends on ACPI && PCI diff --git a/hw/acpi/erst.c b/hw/acpi/erst.c new file mode 100644 index 0000000..4304f55 --- /dev/null +++ b/hw/acpi/erst.c @@ -0,0 +1,836 @@ +/* + * ACPI Error Record Serialization Table, ERST, Implementation + * + * ACPI ERST introduced in ACPI 4.0, June 16, 2009. + * ACPI Platform Error Interfaces : Error Serialization + * + * Copyright (c) 2021 Oracle and/or its affiliates. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "hw/qdev-core.h" +#include "exec/memory.h" +#include "qom/object.h" +#include "hw/pci/pci.h" +#include "qom/object_interfaces.h" +#include "qemu/error-report.h" +#include "migration/vmstate.h" +#include "hw/qdev-properties.h" +#include "hw/acpi/acpi.h" +#include "hw/acpi/acpi-defs.h" +#include "hw/acpi/aml-build.h" +#include "hw/acpi/bios-linker-loader.h" +#include "exec/address-spaces.h" +#include "sysemu/hostmem.h" +#include "hw/acpi/erst.h" +#include "trace.h" + +/* ACPI 4.0: Table 17-16 Serialization Actions */ +#define ACTION_BEGIN_WRITE_OPERATION 0x0 +#define ACTION_BEGIN_READ_OPERATION 0x1 +#define ACTION_BEGIN_CLEAR_OPERATION 0x2 +#define ACTION_END_OPERATION 0x3 +#define ACTION_SET_RECORD_OFFSET 0x4 +#define ACTION_EXECUTE_OPERATION 0x5 +#define ACTION_CHECK_BUSY_STATUS 0x6 +#define ACTION_GET_COMMAND_STATUS 0x7 +#define ACTION_GET_RECORD_IDENTIFIER 0x8 +#define ACTION_SET_RECORD_IDENTIFIER 0x9 +#define ACTION_GET_RECORD_COUNT 0xA +#define ACTION_BEGIN_DUMMY_WRITE_OPERATION 0xB +#define ACTION_RESERVED 0xC +#define ACTION_GET_ERROR_LOG_ADDRESS_RANGE 0xD +#define ACTION_GET_ERROR_LOG_ADDRESS_LENGTH 0xE +#define ACTION_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0xF +#define ACTION_GET_EXECUTE_OPERATION_TIMINGS 0x10 + +/* ACPI 4.0: Table 17-17 Command Status Definitions */ +#define STATUS_SUCCESS 0x00 +#define STATUS_NOT_ENOUGH_SPACE 0x01 +#define STATUS_HARDWARE_NOT_AVAILABLE 0x02 +#define STATUS_FAILED 0x03 +#define STATUS_RECORD_STORE_EMPTY 0x04 +#define STATUS_RECORD_NOT_FOUND 0x05 + + +/* UEFI 2.1: Appendix N Common Platform Error Record */ +#define UEFI_CPER_RECORD_MIN_SIZE 128U +#define UEFI_CPER_RECORD_LENGTH_OFFSET 20U +#define UEFI_CPER_RECORD_ID_OFFSET 96U +#define IS_UEFI_CPER_RECORD(ptr) \ + (((ptr)[0] =3D=3D 'C') && \ + ((ptr)[1] =3D=3D 'P') && \ + ((ptr)[2] =3D=3D 'E') && \ + ((ptr)[3] =3D=3D 'R')) + +/* + * NOTE that when accessing CPER fields within a record, memcpy() + * is utilized to avoid a possible misaligned access on the host. + */ + +/* + * This implementation is an ACTION (cmd) and VALUE (data) + * interface consisting of just two 64-bit registers. + */ +#define ERST_REG_SIZE (16UL) +#define ERST_ACTION_OFFSET (0UL) /* action (cmd) */ +#define ERST_VALUE_OFFSET (8UL) /* argument/value (data) */ + +/* + * ERST_RECORD_SIZE is the buffer size for exchanging ERST + * record contents. Thus, it defines the maximum record size. + * As this is mapped through a PCI BAR, it must be a power of + * two and larger than UEFI_CPER_RECORD_MIN_SIZE. + * The backing storage is divided into fixed size "slots", + * each ERST_RECORD_SIZE in length, and each "slot" + * storing a single record. No attempt at optimizing storage + * through compression, compaction, etc is attempted. + * NOTE that slot 0 is reserved for the backing storage header. + * Depending upon the size of the backing storage, additional + * slots will be part of the slot 0 header in order to account + * for a record_id for each available remaining slot. + */ +/* 8KiB records, not too small, not too big */ +#define ERST_RECORD_SIZE (8192UL) + +#define ACPI_ERST_MEMDEV_PROP "memdev" +#define ACPI_ERST_RECORD_SIZE_PROP "record_size" + +/* + * From the ACPI ERST spec sections: + * A record id of all 0s is used to indicate 'unspecified' record id. + * A record id of all 1s is used to indicate empty or end. + */ +#define ERST_UNSPECIFIED_RECORD_ID (0UL) +#define ERST_EMPTY_END_RECORD_ID (~0UL) +#define ERST_EXECUTE_OPERATION_MAGIC 0x9CUL +#define ERST_IS_VALID_RECORD_ID(rid) \ + ((rid !=3D ERST_UNSPECIFIED_RECORD_ID) && \ + (rid !=3D ERST_EMPTY_END_RECORD_ID)) +#define ERST_STORE_MAGIC 0x524F545354535245UL /* ERSTSTOR */ + +typedef struct { + uint64_t magic; + uint32_t record_size; + uint32_t storage_offset; /* offset to record storage beyond header */ + uint16_t version; + uint16_t reserved; + uint32_t record_count; + uint64_t map[]; /* contains record_ids, and position indicates index */ +} __attribute__((packed)) ERSTStorageHeader; + +/* + * Object cast macro + */ +#define ACPIERST(obj) \ + OBJECT_CHECK(ERSTDeviceState, (obj), TYPE_ACPI_ERST) + +/* + * Main ERST device state structure + */ +typedef struct { + PCIDevice parent_obj; + + /* Backend storage */ + HostMemoryBackend *hostmem; + MemoryRegion *hostmem_mr; + uint32_t storage_size; + uint32_t default_record_size; + + /* Programming registers */ + MemoryRegion iomem_mr; + + /* Exchange buffer */ + MemoryRegion exchange_mr; + + /* Interface state */ + uint8_t operation; + uint8_t busy_status; + uint8_t command_status; + uint32_t record_offset; + uint64_t reg_action; + uint64_t reg_value; + uint64_t record_identifier; + ERSTStorageHeader *header; + unsigned first_record_index; + unsigned last_record_index; + unsigned next_record_index; + +} ERSTDeviceState; + +/*******************************************************************/ +/*******************************************************************/ + +static uint8_t *get_nvram_ptr_by_index(ERSTDeviceState *s, unsigned index) +{ + uint8_t *rc =3D NULL; + off_t offset =3D (index * le32_to_cpu(s->header->record_size)); + + g_assert(offset < s->storage_size); + + rc =3D memory_region_get_ram_ptr(s->hostmem_mr); + rc +=3D offset; + + return rc; +} + +static void make_erst_storage_header(ERSTDeviceState *s) +{ + ERSTStorageHeader *header =3D s->header; + unsigned mapsz, headersz; + + header->magic =3D cpu_to_le64(ERST_STORE_MAGIC); + header->record_size =3D cpu_to_le32(s->default_record_size); + header->version =3D cpu_to_le16(0x0100); + header->reserved =3D cpu_to_le16(0x0000); + + /* Compute mapsize */ + mapsz =3D s->storage_size / s->default_record_size; + mapsz *=3D sizeof(uint64_t); + /* Compute header+map size */ + headersz =3D sizeof(ERSTStorageHeader) + mapsz; + /* Round up to nearest integer multiple of ERST_RECORD_SIZE */ + headersz =3D QEMU_ALIGN_UP(headersz, s->default_record_size); + header->storage_offset =3D cpu_to_le32(headersz); + + /* + * The HostMemoryBackend initializes contents to zero, + * so all record_ids stashed in the map are zero'd. + * As well the record_count is zero. Properly initialized. + */ +} + +static void check_erst_backend_storage(ERSTDeviceState *s, Error **errp) +{ + ERSTStorageHeader *header; + uint32_t record_size; + + header =3D memory_region_get_ram_ptr(s->hostmem_mr); + s->header =3D header; + + /* Ensure pointer to header is 64-bit aligned */ + g_assert(QEMU_PTR_IS_ALIGNED(header, sizeof(uint64_t))); + + /* + * Check if header is uninitialized; HostMemoryBackend inits to 0 + */ + if (le64_to_cpu(header->magic) =3D=3D 0UL) { + make_erst_storage_header(s); + } + + /* Validity check record_size */ + record_size =3D le32_to_cpu(header->record_size); + if (!( + (record_size) && /* non zero */ + (record_size >=3D UEFI_CPER_RECORD_MIN_SIZE) && + (((record_size - 1) & record_size) =3D=3D 0) && /* is power of 2 */ + (record_size >=3D 4096) /* PAGE_SIZE */ + )) { + error_setg(errp, "ERST record_size %u is invalid", record_size); + } + + /* Validity check header */ + if (!( + (le64_to_cpu(header->magic) =3D=3D ERST_STORE_MAGIC) && + ((le32_to_cpu(header->storage_offset) % record_size) =3D=3D 0) && + (le16_to_cpu(header->version) =3D=3D 0x0100) && + (le16_to_cpu(header->reserved) =3D=3D 0) + )) { + error_setg(errp, "ERST backend storage header is invalid"); + } + + /* Check storage_size against record_size */ + if (((s->storage_size % record_size) !=3D 0) || + (record_size > s->storage_size)) { + error_setg(errp, "ACPI ERST requires storage size be multiple of " + "record size (%uKiB)", record_size); + } + + /* Compute offset of first and last record storage slot */ + s->first_record_index =3D le32_to_cpu(header->storage_offset) + / record_size; + s->last_record_index =3D (s->storage_size / record_size); +} + +static void update_map_entry(ERSTDeviceState *s, unsigned index, + uint64_t record_id) +{ + if (index < s->last_record_index) { + s->header->map[index] =3D cpu_to_le64(record_id); + } +} + +static unsigned allocate_erst_record(ERSTDeviceState *s) +{ + unsigned rc =3D 0; /* 0 not a valid index */ + unsigned index =3D s->first_record_index; + + for (; index < s->last_record_index; ++index) { + if (le64_to_cpu(s->header->map[index]) =3D=3D ERST_UNSPECIFIED_REC= ORD_ID) { + rc =3D index; + break; + } + } + + return rc; +} + +static unsigned lookup_erst_record(ERSTDeviceState *s, + uint64_t record_identifier) +{ + unsigned rc =3D 0; /* 0 not a valid index */ + + /* Find the record_identifier in the map */ + if (record_identifier !=3D ERST_UNSPECIFIED_RECORD_ID) { + /* + * Count number of valid records encountered, and + * short-circuit the loop if identifier not found + */ + uint32_t record_count =3D le32_to_cpu(s->header->record_count); + unsigned count =3D 0; + unsigned index; + for (index =3D s->first_record_index; index < s->last_record_index= && + count < record_count; ++index) { + if (le64_to_cpu(s->header->map[index]) =3D=3D record_identifie= r) { + rc =3D index; + break; + } + if (le64_to_cpu(s->header->map[index]) !=3D + ERST_UNSPECIFIED_RECORD_ID) { + ++count; + } + } + } + + return rc; +} + +/* + * ACPI 4.0: 17.4.1.1 Serialization Actions, also see + * ACPI 4.0: 17.4.2.2 Operations - Reading 6.c and 2.c + */ +static unsigned get_next_record_identifier(ERSTDeviceState *s, + uint64_t *record_identifier, bool first) +{ + unsigned found =3D 0; + unsigned index; + + /* For operations needing to return 'first' record identifer */ + if (first) { + /* Reset initial index to beginning */ + s->next_record_index =3D s->first_record_index; + } + index =3D s->next_record_index; + + *record_identifier =3D ERST_EMPTY_END_RECORD_ID; + + if (le32_to_cpu(s->header->record_count)) { + for (; index < s->last_record_index; ++index) { + if (le64_to_cpu(s->header->map[index]) !=3D + ERST_UNSPECIFIED_RECORD_ID) { + /* where to start next time */ + s->next_record_index =3D index + 1; + *record_identifier =3D le64_to_cpu(s->header->map[inde= x]); + found =3D 1; + break; + } + } + } + if (!found) { + /* at end (ie scan complete), reset */ + s->next_record_index =3D s->first_record_index; + } + + return STATUS_SUCCESS; +} + +/* ACPI 4.0: 17.4.2.3 Operations - Clearing */ +static unsigned clear_erst_record(ERSTDeviceState *s) +{ + unsigned rc =3D STATUS_RECORD_NOT_FOUND; + unsigned index; + + /* Check for valid record identifier */ + if (!ERST_IS_VALID_RECORD_ID(s->record_identifier)) { + return STATUS_FAILED; + } + + index =3D lookup_erst_record(s, s->record_identifier); + if (index) { + /* No need to wipe record, just invalidate its map entry */ + uint32_t record_count; + update_map_entry(s, index, ERST_UNSPECIFIED_RECORD_ID); + record_count =3D le32_to_cpu(s->header->record_count); + record_count -=3D 1; + s->header->record_count =3D cpu_to_le32(record_count); + rc =3D STATUS_SUCCESS; + } + + return rc; +} + +/* ACPI 4.0: 17.4.2.2 Operations - Reading */ +static unsigned read_erst_record(ERSTDeviceState *s) +{ + unsigned rc =3D STATUS_RECORD_NOT_FOUND; + unsigned exchange_length; + unsigned index; + + /* Check if backend storage is empty */ + if (le32_to_cpu(s->header->record_count) =3D=3D 0) { + return STATUS_RECORD_STORE_EMPTY; + } + + exchange_length =3D memory_region_size(&s->exchange_mr); + + /* Check for record identifier of all 0s */ + if (s->record_identifier =3D=3D ERST_UNSPECIFIED_RECORD_ID) { + /* Set to 'first' record in storage */ + get_next_record_identifier(s, &s->record_identifier, true); + /* record_identifier is now a valid id, or all 1s */ + } + + /* Check for record identifier of all 1s */ + if (s->record_identifier =3D=3D ERST_EMPTY_END_RECORD_ID) { + return STATUS_FAILED; + } + + /* Validate record_offset */ + if (s->record_offset > (exchange_length - UEFI_CPER_RECORD_MIN_SIZE)) { + return STATUS_FAILED; + } + + index =3D lookup_erst_record(s, s->record_identifier); + if (index) { + uint8_t *nvram; + uint8_t *exchange; + uint32_t record_length; + + /* Obtain pointer to the exchange buffer */ + exchange =3D memory_region_get_ram_ptr(&s->exchange_mr); + exchange +=3D s->record_offset; + /* Obtain pointer to slot in storage */ + nvram =3D get_nvram_ptr_by_index(s, index); + /* Validate CPER record_length */ + memcpy((uint8_t *)&record_length, + &nvram[UEFI_CPER_RECORD_LENGTH_OFFSET], + sizeof(uint32_t)); + record_length =3D le32_to_cpu(record_length); + if (record_length < UEFI_CPER_RECORD_MIN_SIZE) { + rc =3D STATUS_FAILED; + } + if ((s->record_offset + record_length) > exchange_length) { + rc =3D STATUS_FAILED; + } + /* If all is ok, copy the record to the exchange buffer */ + if (rc !=3D STATUS_FAILED) { + memcpy(exchange, nvram, record_length); + rc =3D STATUS_SUCCESS; + } + } else { + /* Set to 'first' record in storage */ + get_next_record_identifier(s, &s->record_identifier, true); + } + + return rc; +} + +/* ACPI 4.0: 17.4.2.1 Operations - Writing */ +static unsigned write_erst_record(ERSTDeviceState *s) +{ + unsigned rc =3D STATUS_FAILED; + unsigned exchange_length; + unsigned index; + uint64_t record_identifier; + uint32_t record_length; + uint8_t *exchange; + uint8_t *nvram =3D NULL; + bool record_found =3D false; + + exchange_length =3D memory_region_size(&s->exchange_mr); + + /* Validate record_offset */ + if (s->record_offset > (exchange_length - UEFI_CPER_RECORD_MIN_SIZE)) { + return STATUS_FAILED; + } + + /* Obtain pointer to record in the exchange buffer */ + exchange =3D memory_region_get_ram_ptr(&s->exchange_mr); + exchange +=3D s->record_offset; + + /* Validate CPER record_length */ + memcpy((uint8_t *)&record_length, &exchange[UEFI_CPER_RECORD_LENGTH_OF= FSET], + sizeof(uint32_t)); + record_length =3D le32_to_cpu(record_length); + if (record_length < UEFI_CPER_RECORD_MIN_SIZE) { + return STATUS_FAILED; + } + if ((s->record_offset + record_length) > exchange_length) { + return STATUS_FAILED; + } + + /* Extract record identifier */ + memcpy((uint8_t *)&record_identifier, &exchange[UEFI_CPER_RECORD_ID_OF= FSET], + sizeof(uint64_t)); + record_identifier =3D le64_to_cpu(record_identifier); + + /* Check for valid record identifier */ + if (!ERST_IS_VALID_RECORD_ID(record_identifier)) { + return STATUS_FAILED; + } + + index =3D lookup_erst_record(s, record_identifier); + if (index) { + /* Record found, overwrite existing record */ + nvram =3D get_nvram_ptr_by_index(s, index); + record_found =3D true; + } else { + /* Record not found, not an overwrite, allocate for write */ + index =3D allocate_erst_record(s); + if (index) { + nvram =3D get_nvram_ptr_by_index(s, index); + } else { + rc =3D STATUS_NOT_ENOUGH_SPACE; + } + } + if (nvram) { + /* Write the record into the slot */ + memcpy(nvram, exchange, record_length); + memset(nvram + record_length, exchange_length - record_length, 0xF= F); + /* If a new record, increment the record_count */ + if (!record_found) { + uint32_t record_count; + record_count =3D le32_to_cpu(s->header->record_count); + record_count +=3D 1; /* writing new record */ + s->header->record_count =3D cpu_to_le32(record_count); + } + update_map_entry(s, index, record_identifier); + rc =3D STATUS_SUCCESS; + } + + return rc; +} + +/*******************************************************************/ + +static uint64_t erst_rd_reg64(hwaddr addr, + uint64_t reg, unsigned size) +{ + uint64_t rdval; + uint64_t mask; + unsigned shift; + + if (size =3D=3D sizeof(uint64_t)) { + /* 64b access */ + mask =3D 0xFFFFFFFFFFFFFFFFUL; + shift =3D 0; + } else { + /* 32b access */ + mask =3D 0x00000000FFFFFFFFUL; + shift =3D ((addr & 0x4) =3D=3D 0x4) ? 32 : 0; + } + + rdval =3D reg; + rdval >>=3D shift; + rdval &=3D mask; + + return rdval; +} + +static uint64_t erst_wr_reg64(hwaddr addr, + uint64_t reg, uint64_t val, unsigned size) +{ + uint64_t wrval; + uint64_t mask; + unsigned shift; + + if (size =3D=3D sizeof(uint64_t)) { + /* 64b access */ + mask =3D 0xFFFFFFFFFFFFFFFFUL; + shift =3D 0; + } else { + /* 32b access */ + mask =3D 0x00000000FFFFFFFFUL; + shift =3D ((addr & 0x4) =3D=3D 0x4) ? 32 : 0; + } + + val &=3D mask; + val <<=3D shift; + mask <<=3D shift; + wrval =3D reg; + wrval &=3D ~mask; + wrval |=3D val; + + return wrval; +} + +static void erst_reg_write(void *opaque, hwaddr addr, + uint64_t val, unsigned size) +{ + ERSTDeviceState *s =3D (ERSTDeviceState *)opaque; + + /* + * NOTE: All actions/operations/side effects happen on the WRITE, + * by this implementation's design. The READs simply return the + * reg_value contents. + */ + trace_acpi_erst_reg_write(addr, val, size); + + switch (addr) { + case ERST_VALUE_OFFSET + 0: + case ERST_VALUE_OFFSET + 4: + s->reg_value =3D erst_wr_reg64(addr, s->reg_value, val, size); + break; + case ERST_ACTION_OFFSET + 0: + /* + * NOTE: all valid values written to this register are of the + * ACTION_* variety. Thus there is no need to make this a 64-bit + * register, 32-bits is appropriate. As such ERST_ACTION_OFFSET+4 + * is not needed. + */ + switch (val) { + case ACTION_BEGIN_WRITE_OPERATION: + case ACTION_BEGIN_READ_OPERATION: + case ACTION_BEGIN_CLEAR_OPERATION: + case ACTION_BEGIN_DUMMY_WRITE_OPERATION: + case ACTION_END_OPERATION: + s->operation =3D val; + break; + case ACTION_SET_RECORD_OFFSET: + s->record_offset =3D s->reg_value; + break; + case ACTION_EXECUTE_OPERATION: + if ((uint8_t)s->reg_value =3D=3D ERST_EXECUTE_OPERATION_MAGIC)= { + s->busy_status =3D 1; + switch (s->operation) { + case ACTION_BEGIN_WRITE_OPERATION: + s->command_status =3D write_erst_record(s); + break; + case ACTION_BEGIN_READ_OPERATION: + s->command_status =3D read_erst_record(s); + break; + case ACTION_BEGIN_CLEAR_OPERATION: + s->command_status =3D clear_erst_record(s); + break; + case ACTION_BEGIN_DUMMY_WRITE_OPERATION: + s->command_status =3D STATUS_SUCCESS; + break; + case ACTION_END_OPERATION: + s->command_status =3D STATUS_SUCCESS; + break; + default: + s->command_status =3D STATUS_FAILED; + break; + } + s->busy_status =3D 0; + } + break; + case ACTION_CHECK_BUSY_STATUS: + s->reg_value =3D s->busy_status; + break; + case ACTION_GET_COMMAND_STATUS: + s->reg_value =3D s->command_status; + break; + case ACTION_GET_RECORD_IDENTIFIER: + s->command_status =3D get_next_record_identifier(s, + &s->reg_value, false); + break; + case ACTION_SET_RECORD_IDENTIFIER: + s->record_identifier =3D s->reg_value; + break; + case ACTION_GET_RECORD_COUNT: + s->reg_value =3D le32_to_cpu(s->header->record_count); + break; + case ACTION_GET_ERROR_LOG_ADDRESS_RANGE: + s->reg_value =3D (hwaddr)pci_get_bar_addr(PCI_DEVICE(s), 1); + break; + case ACTION_GET_ERROR_LOG_ADDRESS_LENGTH: + s->reg_value =3D le32_to_cpu(s->header->record_size); + break; + case ACTION_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES: + s->reg_value =3D 0x0; /* intentional, not NVRAM mode */ + break; + case ACTION_GET_EXECUTE_OPERATION_TIMINGS: + s->reg_value =3D + (100ULL << 32) | /* 100us max time */ + (10ULL << 0) ; /* 10us min time */ + break; + default: + /* Unknown action/command, NOP */ + break; + } + break; + default: + /* This should not happen, but if it does, NOP */ + break; + } +} + +static uint64_t erst_reg_read(void *opaque, hwaddr addr, + unsigned size) +{ + ERSTDeviceState *s =3D (ERSTDeviceState *)opaque; + uint64_t val =3D 0; + + switch (addr) { + case ERST_ACTION_OFFSET + 0: + case ERST_ACTION_OFFSET + 4: + val =3D erst_rd_reg64(addr, s->reg_action, size); + break; + case ERST_VALUE_OFFSET + 0: + case ERST_VALUE_OFFSET + 4: + val =3D erst_rd_reg64(addr, s->reg_value, size); + break; + default: + break; + } + trace_acpi_erst_reg_read(addr, val, size); + return val; +} + +static const MemoryRegionOps erst_reg_ops =3D { + .read =3D erst_reg_read, + .write =3D erst_reg_write, + .endianness =3D DEVICE_NATIVE_ENDIAN, +}; + +/*******************************************************************/ +/*******************************************************************/ +static int erst_post_load(void *opaque, int version_id) +{ + ERSTDeviceState *s =3D opaque; + + /* Recompute pointer to header */ + s->header =3D (ERSTStorageHeader *)get_nvram_ptr_by_index(s, 0); + trace_acpi_erst_post_load(s->header, le32_to_cpu(s->header->record_siz= e)); + + return 0; +} + +static const VMStateDescription erst_vmstate =3D { + .name =3D "acpi-erst", + .version_id =3D 1, + .minimum_version_id =3D 1, + .post_load =3D erst_post_load, + .fields =3D (VMStateField[]) { + VMSTATE_UINT8(operation, ERSTDeviceState), + VMSTATE_UINT8(busy_status, ERSTDeviceState), + VMSTATE_UINT8(command_status, ERSTDeviceState), + VMSTATE_UINT32(record_offset, ERSTDeviceState), + VMSTATE_UINT64(reg_action, ERSTDeviceState), + VMSTATE_UINT64(reg_value, ERSTDeviceState), + VMSTATE_UINT64(record_identifier, ERSTDeviceState), + VMSTATE_UINT32(next_record_index, ERSTDeviceState), + VMSTATE_END_OF_LIST() + } +}; + +static void erst_realizefn(PCIDevice *pci_dev, Error **errp) +{ + ERSTDeviceState *s =3D ACPIERST(pci_dev); + + trace_acpi_erst_realizefn_in(); + + if (!s->hostmem) { + error_setg(errp, "'" ACPI_ERST_MEMDEV_PROP "' property is not set"= ); + return; + } else if (host_memory_backend_is_mapped(s->hostmem)) { + error_setg(errp, "can't use already busy memdev: %s", + object_get_canonical_path_component(OBJECT(s->hostmem))= ); + return; + } + + s->hostmem_mr =3D host_memory_backend_get_memory(s->hostmem); + + /* HostMemoryBackend size will be multiple of PAGE_SIZE */ + s->storage_size =3D object_property_get_int(OBJECT(s->hostmem), "size"= , errp); + + /* Initialize backend storage and record_count */ + check_erst_backend_storage(s, errp); + + /* BAR 0: Programming registers */ + memory_region_init_io(&s->iomem_mr, OBJECT(pci_dev), &erst_reg_ops, s, + TYPE_ACPI_ERST, ERST_REG_SIZE); + pci_register_bar(pci_dev, 0, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->iomem_= mr); + + /* BAR 1: Exchange buffer memory */ + memory_region_init_ram(&s->exchange_mr, OBJECT(pci_dev), + "erst.exchange", + le32_to_cpu(s->header->record_size), errp); + pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, + &s->exchange_mr); + + /* Include the backend storage in the migration stream */ + vmstate_register_ram_global(s->hostmem_mr); + + trace_acpi_erst_realizefn_out(s->storage_size); +} + +static void erst_reset(DeviceState *dev) +{ + ERSTDeviceState *s =3D ACPIERST(dev); + + trace_acpi_erst_reset_in(le32_to_cpu(s->header->record_count)); + s->operation =3D 0; + s->busy_status =3D 0; + s->command_status =3D STATUS_SUCCESS; + s->record_identifier =3D ERST_UNSPECIFIED_RECORD_ID; + s->record_offset =3D 0; + s->next_record_index =3D s->first_record_index; + /* NOTE: first/last_record_index are computed only once */ + trace_acpi_erst_reset_out(le32_to_cpu(s->header->record_count)); +} + +static Property erst_properties[] =3D { + DEFINE_PROP_LINK(ACPI_ERST_MEMDEV_PROP, ERSTDeviceState, hostmem, + TYPE_MEMORY_BACKEND, HostMemoryBackend *), + DEFINE_PROP_UINT32(ACPI_ERST_RECORD_SIZE_PROP, ERSTDeviceState, + default_record_size, ERST_RECORD_SIZE), + DEFINE_PROP_END_OF_LIST(), +}; + +static void erst_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); + + trace_acpi_erst_class_init_in(); + k->realize =3D erst_realizefn; + k->vendor_id =3D PCI_VENDOR_ID_REDHAT; + k->device_id =3D PCI_DEVICE_ID_REDHAT_ACPI_ERST; + k->revision =3D 0x00; + k->class_id =3D PCI_CLASS_OTHERS; + dc->reset =3D erst_reset; + dc->vmsd =3D &erst_vmstate; + dc->user_creatable =3D true; + dc->hotpluggable =3D false; + device_class_set_props(dc, erst_properties); + dc->desc =3D "ACPI Error Record Serialization Table (ERST) device"; + set_bit(DEVICE_CATEGORY_MISC, dc->categories); + trace_acpi_erst_class_init_out(); +} + +static const TypeInfo erst_type_info =3D { + .name =3D TYPE_ACPI_ERST, + .parent =3D TYPE_PCI_DEVICE, + .class_init =3D erst_class_init, + .instance_size =3D sizeof(ERSTDeviceState), + .interfaces =3D (InterfaceInfo[]) { + { INTERFACE_CONVENTIONAL_PCI_DEVICE }, + { } + } +}; + +static void erst_register_types(void) +{ + type_register_static(&erst_type_info); +} + +type_init(erst_register_types) diff --git a/hw/acpi/meson.build b/hw/acpi/meson.build index adf6347..f5b2298 100644 --- a/hw/acpi/meson.build +++ b/hw/acpi/meson.build @@ -22,6 +22,7 @@ acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_true: files('pc= ihp.c')) acpi_ss.add(when: 'CONFIG_ACPI_PCIHP', if_false: files('acpi-pci-hotplug-s= tub.c')) acpi_ss.add(when: 'CONFIG_ACPI_VIOT', if_true: files('viot.c')) acpi_ss.add(when: 'CONFIG_ACPI_X86_ICH', if_true: files('ich9.c', 'tco.c')) +acpi_ss.add(when: 'CONFIG_ACPI_ERST', if_true: files('erst.c')) acpi_ss.add(when: 'CONFIG_IPMI', if_true: files('ipmi.c'), if_false: files= ('ipmi-stub.c')) acpi_ss.add(when: 'CONFIG_PC', if_false: files('acpi-x86-stub.c')) acpi_ss.add(when: 'CONFIG_TPM', if_true: files('tpm.c')) diff --git a/hw/acpi/trace-events b/hw/acpi/trace-events index 974d770..2250126 100644 --- a/hw/acpi/trace-events +++ b/hw/acpi/trace-events @@ -55,3 +55,18 @@ piix4_gpe_writeb(uint64_t addr, unsigned width, uint64_t= val) "addr: 0x%" PRIx64 # tco.c tco_timer_reload(int ticks, int msec) "ticks=3D%d (%d ms)" tco_timer_expired(int timeouts_no, bool strap, bool no_reboot) "timeouts_n= o=3D%d no_reboot=3D%d/%d" + +# erst.c +acpi_erst_reg_write(uint64_t addr, uint64_t val, unsigned size) "addr: 0x%= 04" PRIx64 " <=3D=3D 0x%016" PRIx64 " (size: %u)" +acpi_erst_reg_read(uint64_t addr, uint64_t val, unsigned size) " addr: 0x%= 04" PRIx64 " =3D=3D> 0x%016" PRIx64 " (size: %u)" +acpi_erst_mem_write(uint64_t addr, uint64_t val, unsigned size) "addr: 0x%= 06" PRIx64 " <=3D=3D 0x%016" PRIx64 " (size: %u)" +acpi_erst_mem_read(uint64_t addr, uint64_t val, unsigned size) " addr: 0x%= 06" PRIx64 " =3D=3D> 0x%016" PRIx64 " (size: %u)" +acpi_erst_pci_bar_0(uint64_t addr) "BAR0: 0x%016" PRIx64 +acpi_erst_pci_bar_1(uint64_t addr) "BAR1: 0x%016" PRIx64 +acpi_erst_realizefn_in(void) +acpi_erst_realizefn_out(unsigned size) "total nvram size %u bytes" +acpi_erst_reset_in(unsigned record_count) "record_count %u" +acpi_erst_reset_out(unsigned record_count) "record_count %u" +acpi_erst_post_load(void *header, unsigned slot_size) "header: 0x%p slot_s= ize %u" +acpi_erst_class_init_in(void) +acpi_erst_class_init_out(void) --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472882; cv=pass; d=zohomail.com; s=zohoarc; b=K4pEDj161B+vZk7hMNW76rQuwUza2F24Xj3u3u184guOqjm5P1TXO9p4wty9WLXoLP9Odij0q9XIwxMibb+7KL6EGcmuwVYnmein6vqkQfkoG/2/U2dA1ytwue0khvVoI+MhiRiwEluty9YKiUk+bxMf/VGRuDSfppDA9A+/AGU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472882; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hsCQ08OMTCt57ojTlBVlHNET6qdDThP/HZhwO0+IHTI=; b=nAXRN8Cnv0oGFaARKBS9JqjMLVhuj75Xbt36MFYSxMwcYm9BeNbd5lXxDHbGeHX+3uMtMC2rBM1xNRZFm9Yg5MV+pOz3L03/oEfoVmhZCSzqstcXnD8tNdP8WFDSFAaB7pD+Z/ExaQTnuLfVDfHsMGSisji/5pbmsYP2cm5n+DI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472882102196.3035544244574; Thu, 2 Dec 2021 11:21:22 -0800 (PST) Received: from localhost ([::1]:51854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrdw-0005kE-Pl for importer@patchew.org; Thu, 02 Dec 2021 14:21:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45224) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrTk-0008O8-5O for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:48 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:47174) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrTd-0006Zn-9U for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:45 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IwIp7020451; Thu, 2 Dec 2021 19:10:39 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp9gktb27-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:10:37 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IoPns115630; Thu, 2 Dec 2021 19:09:30 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2045.outbound.protection.outlook.com [104.47.51.45]) by userp3020.oracle.com with ESMTP id 3cke4urwa1-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:29 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:27 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:27 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=hsCQ08OMTCt57ojTlBVlHNET6qdDThP/HZhwO0+IHTI=; b=sc1loxJD8ojKOJBCP/BfHhdeW3AAHkMwl0baAqiXBfBjmMEkQqLOerog5bHZUV7+nJ72 SEVkjI0HHmSAM0dNMiTtl8IdE23cd4QHUEOONSICKmshQ1rJot04UCOBq+qu79RruMvJ wfaPu0SvKPJeCcE1rY5bsuQ55Zh9ey/gUSs0ZMp5Iad/JI+lfSdB+y3ZgU+yYYKEerI7 SGU8bOi2Epo88N87IeLrojxkmlt7+19oj05/UQrRflQUBDqmP3YCFTkRAgMPcuuqyK8E UnC1Lz8VF6FTFJS//6N/ipzP0GkE2QK9JHuKsNIKE/vcI9WGVJkNl1zc+K4wJi2qItSR jg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P+2mQysxKD5emzjGucIOrfTsjxmFgwYlPnqPpifBD5Xc9K6zReWXMkvNguDzL73D0fACZkYOGLwy1P/xtIdsVxQsLO6mcDuCiDeXgtIwIfLXDw53iu94ZVDRazkDGIvydKM4GxJTaYnGb8UQVgNT2fYxNnWUdnz8i5yRd9hWYf7azsXe1reogeMnwbh9LLpzYFrh+qEWLoNqC6d9L9mOd3eaGLMBheHuBpmpQ5+gtPWqTaS5Ij4X7yw9Z866URD2h5NFH0ZBF5yVNpBhLSDj5VxxxjIpdnmKRlpnrIEoDCYcED2PW7rkw4pdLyTrLTF2gQBsSWnZ6AguLLbroVM0kg== 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=hsCQ08OMTCt57ojTlBVlHNET6qdDThP/HZhwO0+IHTI=; b=LKqTtrCZNnUHWXQ96ZiBUj2jnU3sGX/ISxnBZI2C2ZUKacjZihFjlzSIdYyrYYMDcQOOIgwS3sZL8YE7q/wfevD1ZMc5mHgRuBFcMU/EYaOylLuxv3tO/gGv99Oz1RxOib1sMyIks97j5pUgQ1K3gJL70nnBXHcXmxD05tYCXsgmlbyv657bX0ZmsJPC9TgHxFNh/Os3SPtkaZPuUr8aaEjv6PyQObY4KiIjRj9Nuhq+bsbzsEKryYCsCbeFUXtDPJfr7svtltmPKKaj9T7uCbwlrSKMznzdnaU0pAZr4iPfkjxFchc5n9zFApKKIVFLZpIwpjQ0JjXrZOM0aU9QZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hsCQ08OMTCt57ojTlBVlHNET6qdDThP/HZhwO0+IHTI=; b=icQVKqJKI/J9fOBwuMYeaODq7FA6xvKqCw13oimcEOmbd9JUivNxwoy1oBK2NTyLK24MDYaBhG6hZkeozhTodsTsQHT6rvA5aSrJjU5NwwaWZOrKueAYbcNcgir9xI4+0RB+zpTmQgyGCCajLk1xc7IMPsCby6+Ad4Fy39mF8fM= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 06/10] ACPI ERST: build the ACPI ERST table Date: Thu, 2 Dec 2021 14:08:58 -0500 Message-Id: <1638472142-14396-7-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5dc19392-a4bb-41f0-47d9-08d9b5c742dc X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wwa8mkBFkPYmv4+G9ZnEOpmh0MeHnMIkaQ9d5iElVbHmOF1J0iQDhEAEBUUe2CZihswSTMjX4PkqFAyMi+ksg+VvWlwlMFZnr3VGirsi5CRod8BUPRozV+CmcXy/rajvDrxzUt+bJbsn6RwKVu4fOY9OgdbTm5xPzYzyI/xOym+WsvMwAB2dmqsv+IxoRHtDb+vIGx+mUjILon0GRboTozeWGReNvhiDX2K2HYbwJ8l9s/kZBeuXp5HhZ9vm7EFCKHIJcEuOMZ5+pPcNbCm8R9fp1XCmqatmWyZUPx37soZweJzuNrSS9pTWmevyhU73326lN5Gf1UfKVtqzQ04SsAVNgujSCL4fnyhWQEOGnydBD8o3SzSUIMbelfMw8DBZCy4rQNxn+exMkKdsREYHjEw41pm5UJ15cZ8YAbFe00+Mf7r2EsykrVryPvDzsNCeoaELgBHzmokiCChy1SWtjV0ObR9lsad8BNYJxiT3qLuWRc2mmplyPb2bPKZ9gAe7bi/Fq6YdQyFu0VNBmIUX48LehmFQw4OeF/47B5eGAHkL6nQVnf6MHBYblLwnCyBj16K2gOvnQq1Ul22KX6J7boCPsJCHrhcU9jVF7ULw8KzMQ31nHVBrQ9sfwYfPErDGW9RIL8Axz2xSpa6nQkCteUYpnuWqDzySEOonBHrITI8kzKVCTP8wSLLe/+2VeNSfSZCTIRPiG3qkAu+Nnx9DCA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(83380400001)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l0TZbE4mVBmG1MVI9pp01DIzWQ/zaqpr+0iHWFVf2I4sPxOiwLlyNAMF375z?= =?us-ascii?Q?8g+PB8crrZK2PPXZOGDIg67MgKuAVKFGzPvzAeP4MgNtCTcL+SIMAeXdbcZt?= =?us-ascii?Q?M9c0A9aM1Lk9gAUf3IWVUxVU4IuNUle81ImOZmXoUhgsvI3SK7TdPMnX2IgJ?= =?us-ascii?Q?BbIfItDaTOZ7HKu8s1V06JoYM/h8xSAtiGYVvtaIP7q5geV4hJnGghynDlUo?= =?us-ascii?Q?XAD5M9jmkbd0TIPXt1ce7YpDzfLQloCCpQ5H9DXDDRc7nQdzpUtuFHgY6e0k?= =?us-ascii?Q?evc0Gd0ZMXS1QfheY5RZ3UapGXfkGNg/ohdePkR2C6/I/0hshA+T1dnXFVJs?= =?us-ascii?Q?LNhjlxqcZMRyiohgChi9yLbZb+Xb19s74ffV5jk097WKg71A38pSWdkW6pYH?= =?us-ascii?Q?9Opsh7IaOInvvp4LuQxbWvqMIXdBf8/kC2H7+tJdzsffX9gRPrgyh+XNHoTP?= =?us-ascii?Q?hWXUdpOHmoXcdF3gMd0POvHywNAmsmvzFgK2XpuDCTSHkbQo/9ifWB5OyMGr?= =?us-ascii?Q?i3/iQP5tgpgL6lQg6fAqBlGhE8eg+AsoqqyfzHHRObU4li29n+IbRNdaVG12?= =?us-ascii?Q?zK5wGyHMrpCgLJhpAavA5Iahme4j/CwavA1bPR88W5XhMozp3cR0mDr/sZn+?= =?us-ascii?Q?0tuvtGmcMyBPiuSgfHUpRzDlWWuVUp7r2A97rm2OrF2bBArxmXwU8TNGiAFK?= =?us-ascii?Q?Bq6Vk8nW4Dz1WJkM6gESADsmXV8EpNs55fyDYtORhN4QkLhpbpPbkplgb0Oq?= =?us-ascii?Q?lwvNEsNV44XPifdsKdFzh96/m4ldZe5iLeWzVDqlyP6oEg8BS3F0KeHYKCjo?= =?us-ascii?Q?fm5ITcZ+7S4Wu8PWt5jlyXxUcQiVEnlfaCTshxg2QeOB2yKtr56pH0euu0rg?= =?us-ascii?Q?6Xi5aSheN2MX8Hww2Oh5K5x+SG3MPt3PXm9rWh3i7XIig8pAsxfReLF5vd+7?= =?us-ascii?Q?r78Jbqxg1VWK5NEdcZ+K3YFrv6cx9d6MDb4WBBQeBWfaP7C/pyiigk3fHMVk?= =?us-ascii?Q?zhlKevjjcfY1i3nouIGhx4KS6i0UGxA1b1L1muxUvqGwMVLlY6MH4Ay4DY0p?= =?us-ascii?Q?faMwdW2EJWXLsglwgjf/N/a0vlSqbeHu0pi16N3pvXTo3KowLfgp4VX+F5CB?= =?us-ascii?Q?jK0vW0CJ0nPYR4ZujKDWSaAajNM53lgwIWhEl8LsfibWsOR3Dirr4VanOwPu?= =?us-ascii?Q?XAdNK/N5iTQxzQMvKvjrfcLe9IOYpT56INe2YSx9aPnMVX68syJ5f1nhW/g+?= =?us-ascii?Q?/9mIQRLtcNCN1s39XjtkxX4IYBzTNuFzt6mmXrj56lSnBCMFpiSQn5pE7aq3?= =?us-ascii?Q?D+ZpXtdJ+Tetz9VdTyInHVPcl3PBWWtF3cYmFHBebvzHa+IaOjwpUr4fUtOL?= =?us-ascii?Q?5B9iwkoKX4SZLEAB+IeV3VuTzECGZuVlh1Q+O6FwaAhfBN47EXo+O3Uc7BMj?= =?us-ascii?Q?UqNgXveWG+ma8ywS4YPdTcEkdD8I+tJlousTjP56YzYYiCG15LLuzRNZsWo0?= =?us-ascii?Q?3/E/VU/ZFKayCmMZ+jvZgZ3KEjw4+kpi0mDzflk9wdjYzcxPP0F+dMys/bLz?= =?us-ascii?Q?bSChIBPutL5F0lU2qtcSvjLh1bEj69SIgCYqRzt8rJzRCwn5e7pq3AsFXRYS?= =?us-ascii?Q?lqoJSfM9fV/n8eGpD7NEuohvfAhCDbgfXE9KE6ZWb+a0TANV3tTs2vi3WTz5?= =?us-ascii?Q?cUV/RA=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dc19392-a4bb-41f0-47d9-08d9b5c742dc X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:27.6049 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LqDmZ5kGgfCjGrxLD8MT4MqFfFuV9LYCJyi4LCejG/5ZUpgQi5iB3/MaUXir/lSlSu3NDTndeRpwbuOXvebYm6zZA06peFev+EeYLQe+sSY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: De5PMlFXA0C64KSJekNcwrevSMsQ9yA_ X-Proofpoint-GUID: De5PMlFXA0C64KSJekNcwrevSMsQ9yA_ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472884514100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This builds the ACPI ERST table to inform OSPM how to communicate with the acpi-erst device. Signed-off-by: Eric DeVolder Suggested-by: Konrad Wilk --- hw/acpi/erst.c | 241 +++++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 241 insertions(+) diff --git a/hw/acpi/erst.c b/hw/acpi/erst.c index 4304f55..06a87af 100644 --- a/hw/acpi/erst.c +++ b/hw/acpi/erst.c @@ -701,6 +701,247 @@ static const MemoryRegionOps erst_reg_ops =3D { .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 + +/*******************************************************************/ +/*******************************************************************/ + +/* ACPI 4.0: Table 17-19 Serialization Instructions */ +#define INST_READ_REGISTER 0x00 +#define INST_READ_REGISTER_VALUE 0x01 +#define INST_WRITE_REGISTER 0x02 +#define INST_WRITE_REGISTER_VALUE 0x03 +#define INST_NOOP 0x04 +#define INST_LOAD_VAR1 0x05 +#define INST_LOAD_VAR2 0x06 +#define INST_STORE_VAR1 0x07 +#define INST_ADD 0x08 +#define INST_SUBTRACT 0x09 +#define INST_ADD_VALUE 0x0A +#define INST_SUBTRACT_VALUE 0x0B +#define INST_STALL 0x0C +#define INST_STALL_WHILE_TRUE 0x0D +#define INST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E +#define INST_GOTO 0x0F +#define INST_SET_SRC_ADDRESS_BASE 0x10 +#define INST_SET_DST_ADDRESS_BASE 0x11 +#define INST_MOVE_DATA 0x12 + +/* ACPI 4.0: 17.4.1.2 Serialization Instruction Entries */ +static void build_serialization_instruction_entry(GArray *table_data, + uint8_t serialization_action, + uint8_t instruction, + uint8_t flags, + uint8_t register_bit_width, + uint64_t register_address, + uint64_t value, + uint64_t mask) +{ + /* ACPI 4.0: Table 17-18 Serialization Instruction Entry */ + struct AcpiGenericAddress gas; + + /* Serialization Action */ + build_append_int_noprefix(table_data, serialization_action, 1); + /* Instruction */ + build_append_int_noprefix(table_data, instruction , 1); + /* Flags */ + build_append_int_noprefix(table_data, flags , 1); + /* Reserved */ + build_append_int_noprefix(table_data, 0 , 1); + /* Register Region */ + gas.space_id =3D AML_SYSTEM_MEMORY; + gas.bit_width =3D register_bit_width; + gas.bit_offset =3D 0; + switch (register_bit_width) { + case 8: + gas.access_width =3D 1; + break; + case 16: + gas.access_width =3D 2; + break; + case 32: + gas.access_width =3D 3; + break; + case 64: + gas.access_width =3D 4; + break; + default: + gas.access_width =3D 0; + break; + } + gas.address =3D register_address; + build_append_gas_from_struct(table_data, &gas); + /* Value */ + build_append_int_noprefix(table_data, value , 8); + /* Mask */ + build_append_int_noprefix(table_data, mask , 8); +} + +/* ACPI 4.0: 17.4.1 Serialization Action Table */ +void build_erst(GArray *table_data, BIOSLinker *linker, Object *erst_dev, + const char *oem_id, const char *oem_table_id) +{ + GArray *table_instruction_data; + unsigned action; + hwaddr bar0, bar1; + AcpiTable table =3D { .sig =3D "ERST", .rev =3D 1, .oem_id =3D oem_id, + .oem_table_id =3D oem_table_id }; + + bar0 =3D (hwaddr)pci_get_bar_addr(PCI_DEVICE(erst_dev), 0); + trace_acpi_erst_pci_bar_0(bar0); + bar1 =3D (hwaddr)pci_get_bar_addr(PCI_DEVICE(erst_dev), 1); + trace_acpi_erst_pci_bar_1(bar1); + +#define MASK8 0x00000000000000FFUL +#define MASK16 0x000000000000FFFFUL +#define MASK32 0x00000000FFFFFFFFUL +#define MASK64 0xFFFFFFFFFFFFFFFFUL + + /* + * Serialization Action Table + * The serialization action table must be generated first + * so that its size can be known in order to populate the + * Instruction Entry Count field. + */ + table_instruction_data =3D g_array_new(FALSE, FALSE, sizeof(char)); + + /* Serialization Instruction Entries */ + action =3D ACTION_BEGIN_WRITE_OPERATION; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_BEGIN_READ_OPERATION; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_BEGIN_CLEAR_OPERATION; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_END_OPERATION; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_SET_RECORD_OFFSET; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER , 0, 32, + bar0 + ERST_VALUE_OFFSET , 0, MASK32); + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_EXECUTE_OPERATION; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_VALUE_OFFSET , ERST_EXECUTE_OPERATION_MAGIC, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_CHECK_BUSY_STATUS; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER_VALUE , 0, 32, + bar0 + ERST_VALUE_OFFSET, 0x01, MASK8); + + action =3D ACTION_GET_COMMAND_STATUS; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 32, + bar0 + ERST_VALUE_OFFSET, 0, MASK8); + + action =3D ACTION_GET_RECORD_IDENTIFIER; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 64, + bar0 + ERST_VALUE_OFFSET, 0, MASK64); + + action =3D ACTION_SET_RECORD_IDENTIFIER; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER , 0, 64, + bar0 + ERST_VALUE_OFFSET , 0, MASK64); + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_GET_RECORD_COUNT; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 32, + bar0 + ERST_VALUE_OFFSET, 0, MASK32); + + action =3D ACTION_BEGIN_DUMMY_WRITE_OPERATION; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + + action =3D ACTION_GET_ERROR_LOG_ADDRESS_RANGE; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 64, + bar0 + ERST_VALUE_OFFSET, 0, MASK64); + + action =3D ACTION_GET_ERROR_LOG_ADDRESS_LENGTH; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 64, + bar0 + ERST_VALUE_OFFSET, 0, MASK32); + + action =3D ACTION_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 32, + bar0 + ERST_VALUE_OFFSET, 0, MASK32); + + action =3D ACTION_GET_EXECUTE_OPERATION_TIMINGS; + build_serialization_instruction_entry(table_instruction_data, + action, INST_WRITE_REGISTER_VALUE, 0, 32, + bar0 + ERST_ACTION_OFFSET, action, MASK8); + build_serialization_instruction_entry(table_instruction_data, + action, INST_READ_REGISTER , 0, 64, + bar0 + ERST_VALUE_OFFSET, 0, MASK64); + + /* Serialization Header */ + acpi_table_begin(&table, table_data); + + /* Serialization Header Size */ + build_append_int_noprefix(table_data, 48, 4); + + /* Reserved */ + build_append_int_noprefix(table_data, 0, 4); + + /* + * Instruction Entry Count + * Each instruction entry is 32 bytes + */ + build_append_int_noprefix(table_data, + (table_instruction_data->len / 32), 4); + + /* Serialization Instruction Entries */ + g_array_append_vals(table_data, table_instruction_data->data, + table_instruction_data->len); + g_array_free(table_instruction_data, TRUE); + + acpi_table_end(linker, &table); +} + /*******************************************************************/ /*******************************************************************/ static int erst_post_load(void *opaque, int version_id) --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638473632; cv=pass; d=zohomail.com; s=zohoarc; b=HU2UvazTAqUT+LB4gvG0RZ2R4AhOnRySmTCdKjFc3XdB/UY2+VibD1TLm5N98cs68TJ5LK1bRDYLViFk+CEmMo/ZhJ0Y0D2MepiA+tq/Hrix4WmDLRcT2wAJnRFPwL2PBtONjlFbqxRR2gbm9x9CFAH41nwfv7PTw1dDS9O5iXk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638473632; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MzROMZhVhh/fxWqlr70+278QWEXvlwgSOAUExxVSFvQ=; b=c+SwOgYao26psBfFrOe5kjMqfkZtq2lkAwhxik2bhOATUC4ANDECvwyZHlqwAOxCSQsdxBlXfMluHPPntTZDDJ6uXCvXJTCReDWXTpY4yEKelIMY03KcmEEpssXq7a0xEm6MFdaWGK125f+v3cDc8akVUoh/F+Ik8obpqcNsIIM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638473632905384.9768918254333; Thu, 2 Dec 2021 11:33:52 -0800 (PST) Received: from localhost ([::1]:43104 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrq3-00027e-Hf for importer@patchew.org; Thu, 02 Dec 2021 14:33:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45106) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrTU-0007yH-Up for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:33 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:1440) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrTJ-0006Sw-3D for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:22 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IRjZu015785; Thu, 2 Dec 2021 19:10:19 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp7t1t6xg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:57 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IoPnu115630; Thu, 2 Dec 2021 19:09:30 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2045.outbound.protection.outlook.com [104.47.51.45]) by userp3020.oracle.com with ESMTP id 3cke4urwa1-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:30 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:29 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:29 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=MzROMZhVhh/fxWqlr70+278QWEXvlwgSOAUExxVSFvQ=; b=zbqpIfFCBKUbos4gBm39/Cbh+5sKlG2pjYV9YR7mcXAoFhjfuoKVZTczMHZSnEPUEoI1 H5YIXqtPtsrxIhDdTbD87ZA/7WC0D4Il3+CCW7/04cmGxV5KWtCRZ7IzwD2CmbDk2gyB o55p7oUlq8G8Sfn74F/4gigZR5f5ui8QgvScjHN7J2RfFxqJKS24zWjSLVPy5jJJU7Gt Y+ourDHZUYrTu1U1mRiMxwzuiwH51WRLLNlMkq0PhXJVM3PXaDoGGFwQOoiLm48krJj9 2hRM6FIRMUZEsFKuL1BtaaAc9xmpygCauebDfw/S23yqHVfXxymUp+lL8yvJfi7geipi hA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mEvSjJMwOjOAAL+62BdbQ0DfKJkK7HzHqX/VyPp6V8a0Jfo63D89AX7SSepX4KnYwN6tC07ijmr92Qyg8JbCUX/2tMjjvyU9pC7m8J1il+AIdxgwBzVOAazfEXxY+mMUd2O/yCkVTE0MhEfYg5l99WJEbTyb7txzB2qEdvJA3PHRDT+VSCAjzvPg7uSqBu305diUAqADYLGrHXHI8kRdXpwqWHsx8kH+VMcKZ3qIfciyklCYCTdFRXRA8hKvNWWTniWxAA0alOgCZ0VZcV2+fxCgtU0TEcz+mKWjKSmZjLGScmDb9dp5z/6F1f38+S2St/NIQZZ02feJ/caDLgL0ow== 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=MzROMZhVhh/fxWqlr70+278QWEXvlwgSOAUExxVSFvQ=; b=Bkj5l4rCB4Cd1qrLnNZDrPAJo7Xf0w4i22mzTsXI1k2Rk0ZNox4NeTQiwSNDezyQVEF56R3XVHWzsS2glDh/ufDzJPbLrDsS9QehoobkBzLdFJPaaVfW7OWb9aFD53q6czlKHy8IDwK9OYGhBotjfYF+0AttGYcVtFikA1i/M3eost/HJv+ySBlx3WweEozeDaupIqb+3vTrS2OcDSxsMw7CYq+ogIv8ARYJd11WlVdhlpZoHIn2xjI0bNgxSHHDB2o7FuQOMAqV8uXzWX9OH0VoDwh5DpKJz/zYgzEqbGszpOvQaT8VthbXSd+rcjksNpggOSImlxepa7dLOdUZKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MzROMZhVhh/fxWqlr70+278QWEXvlwgSOAUExxVSFvQ=; b=FZL3E+kycVUmv5jcKr6H60YS9xIYSda43HBzVRgwXlmTkiJp3vhh145V//7dWoIGcqDNZ3Q2Z2nK0rULzvlnEYO9Ld8PddCpO705k1/vyCP3s1jO2xQmevTJfbCiwQEJi9KU2PRIkVEzxrBYiRhK4XM2RhXI7VHyBhnKBDsf5S8= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 07/10] ACPI ERST: create ACPI ERST table for pc/x86 machines Date: Thu, 2 Dec 2021 14:08:59 -0500 Message-Id: <1638472142-14396-8-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bca55b1a-e200-44b1-941b-08d9b5c7440d X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lDV2/bIZrr3jFJ9l7S359XXse19Q1f1s+jitvQiUleCwNqeFvRgDRSqdZzeRPzy//3mDvQNfDASZVzdJIodHDAVYGPYfY8OK8xGPAbUgnn/TNeY7lZe0L1/UBK01Jx4mvWURDudyQ8ZN24a8R1TT2wP6NwOBVO6lkjZ5fvAeYtPEPOVQGEBSTSmnXPi7Yx46/ah2k32RnatOOLUG8XWSv6wwr+fmcWkCVcUX+RrOpIuipRtmpkfgc7QipBj5THGK/oou+TQ4VumLoI6q/yF5Fg9smsUmXfsaLusHfsHXfAfli7xwZ7W3QZCQrxSYwrZ5+/sJb8ioBcdwRUD1KSIBKqoK9CXb1ItWr+sVPC50RUxL12erh+qLMiteZebZl5RQhjfiEOJFBHU2oMhcN9DTuBfoSwvZduozVnYrBQXuvrFP/RceBhXmfnWgVWKUWboKQ1OdPwfkNR1orJewgqBnjB1JMNhzqPV9u0oOclYQYInKn74c2nDhbyfab148meRFeZcwbxJIiFnWQQwA3gDRH6dWoZvy0ua7CYf+4SrqmJjXzl/IKTaSo59qedrJhC2Kxcuwo0jeVseWJE3eR9dmRQY6wpRShYySCpA/loi4QTmA8gLrOCNCIuCWHAaWTWZX8vs7OH6fuVT8FT5fWhw+so6GYYMGOnAeZf12jqw7MYEGEg8g3/pcyTA0X2SNUG43pXNK6EJnwn3VkfeD9Ch5oQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Pi4xPaaULYnMfFaz+64PViwWn0fbSsSDqaLmxo0+cT9kEQX1Pv77pqcQ/hU2?= =?us-ascii?Q?6MrsTbIQD9wenRrvt0nSqYoBMBYCLCcx58r2NnUA5HgYWFIssfU5xqwwUeOg?= =?us-ascii?Q?1FiLxkxKEO53MDLMO4XoMgHUqpZi1G4hsS3HPo026Qew5cJLa7IWDlhvydIj?= =?us-ascii?Q?/X4dIBgv8K6InkJfRNKblGVgPT027pdQ96Y24Wv8ylJ0ICBzBR2dwbAjLMxY?= =?us-ascii?Q?pP1+S7DxNVAwOR/54XaNq8wDqJN/Lxy99umQ23COI5zI77ffh6NmaKsJB1lC?= =?us-ascii?Q?Ckv1nyXQFB0DBBgS0vw2sYzyg2QkFqPaOoy0fTmRoZIS6zAQOmQyPkLEXBIq?= =?us-ascii?Q?pfGP61kfGPEpv2M29Uqt3NGzNaU+lI8lYeAbgRRLBkjHojID7H5+/nIZRe43?= =?us-ascii?Q?lc0JsCLsbpfpr/i3Ye7zRhWHJClKujTqjJYvCxdBlns6G1qRxHqkTGfEog3+?= =?us-ascii?Q?IzMalxmCKkbFBeW36/GqQAh4zQuc6FMwEZjyedu6RSiOtnlgY6yfgFPSnzVj?= =?us-ascii?Q?+1tsR+J2YJj2vEq+gEFIxG6RwIhQsBQyY+cw46pjKwv5cZXKfJ/OZqnV5BlA?= =?us-ascii?Q?l1shzIoMtBvI94GAK1Fng5Y+yxFe3U2536LmrVc53mQ8nvkJqRSPxOIBYuHH?= =?us-ascii?Q?lgQzO2sD8f+zPtYfD8IOKJ4jLsNN+5zuGJTamiWBjHNyD3q6FZFp8i/su2V7?= =?us-ascii?Q?pu4iA70Zgg5xsA6tZ/VDnGXE8KwO/GbVaw4PShbLw8iJQxw1TT9paOiY+cCk?= =?us-ascii?Q?H+ZFWHY1iVmeeF0S+UdZlwGS7L/9b8E4dCycpLTN0+ENWWVwDJud57cHXrMz?= =?us-ascii?Q?DYxJJytPXA6ENzCJzoCXlbzBwzeC/Cble0p+8HBMJnltW/jpWQt21YUcPg8K?= =?us-ascii?Q?Su/PEwMBUW0nl1ykpGWFHpeUX4Nl0E0odiJeKb9i1QkMCrdkzpdBIGdraGdK?= =?us-ascii?Q?wHgChhJGoFskWiOaO5WMvmC0VTmAKnX3rNHCEno9L4qG9oqtXUxlC0LsbgKY?= =?us-ascii?Q?pAvydcD0kbSpEP7C7GET5s7BV8YmEVU1olzxIyHpPLdEDN2pkI1p0luOloUH?= =?us-ascii?Q?2FsJ6yaRDKu4rXFc3vx6AQSMiwcvVZylfU53OWwmL1CVz/Co8w/6PQ3tjlAK?= =?us-ascii?Q?I9kJU6huN2FXH/bSPJGIuL8Sk5AD75lp4enHjxdfQyWx8psMUmPCgFraaY0l?= =?us-ascii?Q?LaWcuadSb+/B73O638iXjQQHF/wzePHimCuMsVLbZU29vF1/oqqTs7z/KWq4?= =?us-ascii?Q?5LHB03nBHu7aKNJUfH9eizNMeQ27ln+G1/z3s9/cYFr6NNI3T0sqwyDLxP5m?= =?us-ascii?Q?zJtn+PK/X0d0/j+UxMkLctk/DDTbHHcpKh656btmDkKbzqWV73LleKHJgJNn?= =?us-ascii?Q?S9gVkFNLTIFQchKarysXpqkBQSu7bN+4+r9uryIvhr266AUylPWzx8jODvha?= =?us-ascii?Q?fZpoBKbc9i1pNtjnWa81b98sFlXKbrg2w4eBT6l5I1e1SFIi2tJ/hqNV0SE3?= =?us-ascii?Q?4+9khaFjQHDvoNWIftHg7qPivQF124W4rVMoLa6LfneDbugTyDKe6vd85kBD?= =?us-ascii?Q?lw0e6rOEXcWfN9Eyl3w85X84jp2wDzAq2lKxdQ4tkHU36sZPn7jU4UUwbfn+?= =?us-ascii?Q?gD6stKeeaYoNFbPVo527wjAfKNGSl8m+cUIQNtLDILQZVkoBX8ut232dMqSJ?= =?us-ascii?Q?dROpSQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bca55b1a-e200-44b1-941b-08d9b5c7440d X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:29.6358 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9gN4sX5Z8IHSsc+daOqkZ4zs2W62kPDDoOZhNT35WySPd3j4EOyn2glT3vCPjPYkQ0Kf++++T7st20F1J70x7qJG7rLE2YiRArurgw3L9pQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: f5k01bcl1fMVFRxLYb0t0wuv38AKkNDH X-Proofpoint-GUID: f5k01bcl1fMVFRxLYb0t0wuv38AKkNDH Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638473634050100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This change exposes ACPI ERST support for x86 guests. Signed-off-by: Eric DeVolder Reviewed-by: Ani Sinha Suggested-by: Konrad Wilk --- hw/i386/acpi-build.c | 15 +++++++++++++++ hw/i386/acpi-microvm.c | 15 +++++++++++++++ include/hw/acpi/erst.h | 5 +++++ 3 files changed, 35 insertions(+) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index a99c6e4..55bca28 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -43,6 +43,7 @@ #include "sysemu/tpm.h" #include "hw/acpi/tpm.h" #include "hw/acpi/vmgenid.h" +#include "hw/acpi/erst.h" #include "sysemu/tpm_backend.h" #include "hw/rtc/mc146818rtc_regs.h" #include "migration/vmstate.h" @@ -74,6 +75,8 @@ #include "hw/acpi/hmat.h" #include "hw/acpi/viot.h" =20 +#include CONFIG_DEVICES + /* These are used to size the ACPI tables for -M pc-i440fx-1.7 and * -M pc-i440fx-2.0. Even if the actual amount of AML generated grows * a little bit, there should be plenty of free space since the DSDT @@ -2566,6 +2569,18 @@ void acpi_build(AcpiBuildTables *tables, MachineStat= e *machine) ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id, x86ms->oem_table_id); =20 +#ifdef CONFIG_ACPI_ERST + { + Object *erst_dev; + erst_dev =3D find_erst_dev(); + if (erst_dev) { + acpi_add_table(table_offsets, tables_blob); + build_erst(tables_blob, tables->linker, erst_dev, + x86ms->oem_id, x86ms->oem_table_id); + } + } +#endif + vmgenid_dev =3D find_vmgenid_dev(); if (vmgenid_dev) { acpi_add_table(table_offsets, tables_blob); diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index 196d318..68ca7e7 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -30,6 +30,7 @@ #include "hw/acpi/bios-linker-loader.h" #include "hw/acpi/generic_event_device.h" #include "hw/acpi/utils.h" +#include "hw/acpi/erst.h" #include "hw/i386/fw_cfg.h" #include "hw/i386/microvm.h" #include "hw/pci/pci.h" @@ -40,6 +41,8 @@ #include "acpi-common.h" #include "acpi-microvm.h" =20 +#include CONFIG_DEVICES + static void acpi_dsdt_add_virtio(Aml *scope, MicrovmMachineState *mms) { @@ -207,6 +210,18 @@ static void acpi_build_microvm(AcpiBuildTables *tables, ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id, x86ms->oem_table_id); =20 +#ifdef CONFIG_ACPI_ERST + { + Object *erst_dev; + erst_dev =3D find_erst_dev(); + if (erst_dev) { + acpi_add_table(table_offsets, tables_blob); + build_erst(tables_blob, tables->linker, erst_dev, + x86ms->oem_id, x86ms->oem_table_id); + } + } +#endif + xsdt =3D tables_blob->len; build_xsdt(tables_blob, tables->linker, table_offsets, x86ms->oem_id, x86ms->oem_table_id); diff --git a/include/hw/acpi/erst.h b/include/hw/acpi/erst.h index 9d63717..b747fe7 100644 --- a/include/hw/acpi/erst.h +++ b/include/hw/acpi/erst.h @@ -16,4 +16,9 @@ void build_erst(GArray *table_data, BIOSLinker *linker, O= bject *erst_dev, =20 #define TYPE_ACPI_ERST "acpi-erst" =20 +/* returns NULL unless there is exactly one device */ +static inline Object *find_erst_dev(void) +{ + return object_resolve_path_type("", TYPE_ACPI_ERST, NULL); +} #endif --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472430; cv=pass; d=zohomail.com; s=zohoarc; b=gDzHlpbLgUm2cfaFVOMFELMs7rL3CVLXzAHugTLrPj3U9Ln3/dJy9ejh7yaxT9OF3wBprzlsZ0grk2nKzZEl1OuhHu7AoNS7X+cgZShrAZ7KHnSzcR/+qZrHCIgkeWlK9/FwydCHr9S4YwpLuzbBa7z3PKnhMqbNHatJxkoXths= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472430; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=f2RnzeVRWCb+CCSMHzVlm1UuJbGX9qqDwVEw1Vvr8KA=; b=M9Q6TTPIseaNxYHF5QsL17vj23A3ktVtNAL4vc5S0Mk2/3qkwUbK1kyx48D0ye5t/rwGvr9w/d/smPWx2LBVFcW+w78tP1QYGx3iZLaJOekFjTGwXRLc/OZjenVEd11mXHkQI7SzrAyXpYXjfH/O4EV121r3R+sUYhSkDebLNws= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472430528990.4161504700099; Thu, 2 Dec 2021 11:13:50 -0800 (PST) Received: from localhost ([::1]:36854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrWe-0003np-PS for importer@patchew.org; Thu, 02 Dec 2021 14:13:49 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45222) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrTk-0008O3-4Z for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:48 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:48994) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrTe-0006Zw-4N for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:44 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IwIp8020451; Thu, 2 Dec 2021 19:10:40 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp9gktb2r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:10:38 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IoP4H115582; Thu, 2 Dec 2021 19:09:33 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2048.outbound.protection.outlook.com [104.47.51.48]) by userp3020.oracle.com with ESMTP id 3cke4urwd9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:33 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:31 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:31 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=f2RnzeVRWCb+CCSMHzVlm1UuJbGX9qqDwVEw1Vvr8KA=; b=JQGsay7cIAOF1KwSuMzOSBXpT6ToikRNSVgCQksB/DFj2dPzGsPtI80x/qRtNP6JpDiO tLFIINpvQa6TTUxuGj2kB/g+8psB2vbT/NKxNCCG9k+IgYlh4BV5Om9e6azKWMVFr55W UshvDUlDy98gMDLCBh6sZwYvXriw6x5GiRDf5Yv36nxZ5DQsZ06B2O7ppdn6Oda2HD9a T5AEk0AA0qlm1PMW1OUeQPXwDQJg7kjo7MwRFokTNHSURTsxa32l03zq0fd9JowD2F3j lN6RrNwVeFsVP3ZbAhdM2hb4l0R103h7lWlgtdDxanPE9vOjqKtARwfEVYfovbn2YZu9 EQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kOvwhNF2u0CN2vmocQ+6IvPNtR5p5Px7zPPbIHY/anzdUL07Gwj93cmAugfPN06XG92bONpnUTsrYJUZKmGkyBecXeQrvPrGAQx2YuuQd3DkD1t4QE7ChkNwfA3jUb0JNrH3sjHHB3a389H317nKP/cbK1qB+OxPRS/rPPR+zfheZmyWZ0WGSAmecai8F89z+80COcDEay4puaRYcxr7n+OHfY/TPTBQSKaot5b83RII5QATJhr6t8LqikWIcdwM/VdgAIT2RG9H2i9PTjWJO8zqQQfi2tmD4K8ZpX8qRcHoc+JDdpiD7JCdvP06X08AlDM9HmLN8+tgjgKqS0fpnA== 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=f2RnzeVRWCb+CCSMHzVlm1UuJbGX9qqDwVEw1Vvr8KA=; b=W0GCHkRCo+MsUU3fl/3L7sCr23bLGNTGvVBojOnzcMxQIyQnC0w3oHxzT/plwT46645CAVlKVJI/jCmXl5rckbVsySF+OOgGePGBTlnB2VERxvDOVpvIK/0kVC/oXoql0F7adrNDbX/Y9h0dQFxIaAFnZ7RMNiT9z03bsxCYhVsiX0tDPwjG/lONGt4/LTcD6Y9BUo71NPvzJIrI7brPpRXqg9Ox4X+3qX2z4oz/VP86YuIwOP0K/d1pYwNBPP+14YQK3BgUaHyea7CaSuK+VfxplbBkXpZrfImpb+GR43jNwdxboUfiv+9rQZaxx7FDaRrvV2NhZjmAZwPIRCzh0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=f2RnzeVRWCb+CCSMHzVlm1UuJbGX9qqDwVEw1Vvr8KA=; b=h0P2c3p6aktOe5sWMzLnTHvSjfx9ZPRVB4tAqSEhBnIf9bNuAkUDD/bcLe6ykTdaVCvp90D+f5+AI2D7O7hxFjwxaBqHiqIP2IKClleLNTHJFhYhP6Y328mUooGAuM7WqDEJdIp3xAYLZpP1XuTy2CJPnZQMALRllHHcwsdhd6c= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 08/10] ACPI ERST: qtest for ERST Date: Thu, 2 Dec 2021 14:09:00 -0500 Message-Id: <1638472142-14396-9-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0770db10-511e-4c82-ac02-08d9b5c74524 X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:644; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hScctRByA2MyrJFwL2Aa1ljcjzI1Qfw6gJqXUy4ha0yD7n2f+8BKV2ra8onP2AoTNc1Q3M/Gzh1Ic+7ORaJMWLpe9lJ69AqhXKKD8nmi3d3+RwRnw4h1cZwHO+BqXjOjmcHzJJI/aU/gzcdoVGzs9eG/y2+SY+n+IAZXQIiqQlVrsdcZIPY03oge+eozhl1F006tcEb7aN6wnSOQKge/tlivua+UstQgx4NVFtYo6PTKMjj4xt1foVsXS8XV/r7snCG8Vawc7O25f0Duzm8nkUoQ22pRfI5Tx/O9S0Tiiza5yVBOiB7nG3hBFQDKRz8bFyCdr4I8F7ZwUf9Tmj9qusayypZQQ+ln+bAw9Vzf+Og93sVxuYesfP3wkMrreHad4LrLx5L2DMZezEho9fuinjuF2/S+YPESkGmgvrNkFP5WxLzNboWZfscANg+pvlWZJWxOJ8OdHQ+LneUJCRdsKP6NXRsrZL/XHKsvOX8bHxrnWxm9+RPZ05dK0+mzHgheoLzPzWNDSiEwBEgUiZNVupFgVbC3bfU2TUTLBhR8vpR0X88hnFCaHMnffYkJx4+s1zrZAWedgHIq0BhePbv2uE+eaXCyYvKyI5z7oDc3CtRWaS+xuWIPomJo+ycHtXwivzJXYWPwyM2BPKDEOiuNLWm42U81d/mm1B6C7Y/aBnl+3Gjfbv9ljKh8rUepIRWVmSnaY/ijALHpN6qzCbt0pw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(83380400001)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TNT94/CR9BItA7wVZlT80hC3/76OaigPtUVp5YkTYkG/oazyLoeb9C0/00BG?= =?us-ascii?Q?zyCgDTWi9CBuu0iFnMne36b2gmgVL1n1Ymt2wsWhJi9nDL54AbYtu7WnW3eh?= =?us-ascii?Q?Z2ZrNnbMA+M0mKT5NoniL28cwI6LKbppkEOBar1RSPCr0wO/qSbyy7txJEjR?= =?us-ascii?Q?765V7Pjszhx0M1zEN3+A/4AA73fN2WJVcJTPSuAnPUGrjP6LYQcMiIYF1BHy?= =?us-ascii?Q?2erck0iNmcT8EE+qgtavGFiRmwMZkx2piBtlizru1cfSPCIUJbFuJgtffLlT?= =?us-ascii?Q?yr2mWDpYADXHrDiQCDyVHjZC/t554Ue7TNQBTwF8pDg3ljpiB0mV3dDyS7SC?= =?us-ascii?Q?zVJrYA0W5tYqPfa8Sff44EdQChIi54QSsQC839crcE7g86mGmFmxKdTLzU8r?= =?us-ascii?Q?PAC84ktIOBqOP/LGxyzFgrVWUfIfXn8ARJC5NFFhwFA5OpvA2y+4fZSQ2A72?= =?us-ascii?Q?H8ELm9QT0VpqFzZYebNz61QnGHTAH18MI8vSZByR+KiOfHIrOKvozgB4+Rdc?= =?us-ascii?Q?YmBU5m2+zDnQB+cLw7vLaO3J3fYgUMssGnPV5pMbtW/nTd6lWXgoxGpu1YX8?= =?us-ascii?Q?0BnbP1hNVwdtd0N0vkc/5plhyTS3cPNVlipXY71pfchhgWslpGuwSw1mLVfy?= =?us-ascii?Q?MS7msf0IQZO3vzMseNSC0qVjEINhv1nS0mTYwK/8yRsyjwHDYDkuqX4wd/DQ?= =?us-ascii?Q?zGhg6BxUNSFpbdC1JpAKKFT1IyOTZWEu8VOumSyHmjprALtPPb/f62t6AW81?= =?us-ascii?Q?Q691+dKmLluaahtiDdvurfUBMzsW8TiS2w3mogJMlnnmWe8f2mgJNZcAg1OE?= =?us-ascii?Q?LW6YKUlP8dvRpHFGzLSjScLhyHOmFQxSxWNlh2tCIurBIrhJrqrMKmGP+1do?= =?us-ascii?Q?P52QSo5Fwbz6dSmCZznO+P6CWid7prpmAW63+rhwVvxusY53ZZi6Zf/TIsxW?= =?us-ascii?Q?+2Y2tvYo045V1viAB0cmuorFb/lAKA/glJZGHTjYkb33iNbUTUjKOlTSEQut?= =?us-ascii?Q?GgvPzoGUzUk/okjiMg+xrIz1YDsLAzyCM6orSG5xTubGskbAssATcy03ERGp?= =?us-ascii?Q?+ukG7O4d3yrK75ytguyClQpqCLi286zEZUo3lAk91m2jnpPAN6OMBF3hOdYP?= =?us-ascii?Q?1dTjgghttLalWkeDNdapAoe6k9yv7n4Clx5IyodKCjmSMh3VHH9qt4cWF58U?= =?us-ascii?Q?mde9D6jmQsS3M7+5H9lRQHaw7mpazraaTo+44BGUrWpRtfwsmpwnahQUu/nj?= =?us-ascii?Q?CveeGpkLX4GL//Zs2g05jzW6Xh6l2LIK4tHazZHJHCAoFh60L9eZgy4iDHvK?= =?us-ascii?Q?pr2Ay8dO18BXiXtbU6Xz5JrzVLyVbiwvCZolvkOYhnJkvhlXBP5zRB/05xn3?= =?us-ascii?Q?ey7M7pKiPRn6I6AoIv2JrIVUJIp3+eRrtXE969rCaSyZ8K3RTJc4FbHtmMIC?= =?us-ascii?Q?f4FbUwvlo+LmYXfzVTUQU3qRwUgm+DdCy8JJQ8hjoPJye5NA4SjWBTqdfHnW?= =?us-ascii?Q?Ehz+J8ZQTRa/DrueRQyOzypTbUZL5gEURJFaTtgEZFjcw0OMGC/Yz52nA91/?= =?us-ascii?Q?ITczE8YHg7ao92lTOf6+F0TjDPyh6+jp0SYzwGyfWhs+piWl+3F5H6XRCKjf?= =?us-ascii?Q?4uSdsvkG5Tpsg4ThHPuVc5/+SpoyZibZ/ifTLds0OFBvEbzE+/NYoFfeqgC2?= =?us-ascii?Q?X0rDLQ=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0770db10-511e-4c82-ac02-08d9b5c74524 X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:31.4348 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: z7tBP1znJPNA4u5Kf4ovop+LPg0O+BmFdTErj92Bxeijrw3mqG3FeYA5c8Jn8x/S2FmdwaR9AqbGtXvrHTkyKvbF9FKHBjlm50XrRkc/JiA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: Ks3X1Bk1nH7KJVXrai7G9f9KfuZAwCyB X-Proofpoint-GUID: Ks3X1Bk1nH7KJVXrai7G9f9KfuZAwCyB Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472431879100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This change provides a qtest that locates and then does a simple interrogation of the ERST feature within the guest. Signed-off-by: Eric DeVolder Suggested-by: Konrad Wilk --- tests/qtest/erst-test.c | 167 ++++++++++++++++++++++++++++++++++++++++++++= ++++ tests/qtest/meson.build | 2 + 2 files changed, 169 insertions(+) create mode 100644 tests/qtest/erst-test.c diff --git a/tests/qtest/erst-test.c b/tests/qtest/erst-test.c new file mode 100644 index 0000000..370c119 --- /dev/null +++ b/tests/qtest/erst-test.c @@ -0,0 +1,167 @@ +/* + * QTest testcase for acpi-erst + * + * Copyright (c) 2021 Oracle + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include +#include "libqos/libqos-pc.h" +#include "libqos/libqtest.h" +#include "qemu-common.h" + +static void save_fn(QPCIDevice *dev, int devfn, void *data) +{ + QPCIDevice **pdev =3D (QPCIDevice **) data; + + *pdev =3D dev; +} + +static QPCIDevice *get_device(QPCIBus *pcibus) +{ + QPCIDevice *dev; + + dev =3D NULL; + qpci_device_foreach(pcibus, 0x1b36, 0x0012, save_fn, &dev); + g_assert(dev !=3D NULL); + + return dev; +} + +typedef struct _ERSTState { + QOSState *qs; + QPCIBar reg_bar, mem_bar; + uint64_t reg_barsize, mem_barsize; + QPCIDevice *dev; +} ERSTState; + +#define ACTION 0 +#define VALUE 8 + +static const char *reg2str(unsigned reg) +{ + switch (reg) { + case 0: + return "ACTION"; + case 8: + return "VALUE"; + default: + return NULL; + } +} + +static inline uint32_t in_reg32(ERSTState *s, unsigned reg) +{ + const char *name =3D reg2str(reg); + uint32_t res; + + res =3D qpci_io_readl(s->dev, s->reg_bar, reg); + g_test_message("*%s -> %08x", name, res); + + return res; +} + +static inline uint64_t in_reg64(ERSTState *s, unsigned reg) +{ + const char *name =3D reg2str(reg); + uint64_t res; + + res =3D qpci_io_readq(s->dev, s->reg_bar, reg); + g_test_message("*%s -> %016llx", name, (unsigned long long)res); + + return res; +} + +static inline void out_reg32(ERSTState *s, unsigned reg, uint32_t v) +{ + const char *name =3D reg2str(reg); + + g_test_message("%08x -> *%s", v, name); + qpci_io_writel(s->dev, s->reg_bar, reg, v); +} + +static inline void out_reg64(ERSTState *s, unsigned reg, uint64_t v) +{ + const char *name =3D reg2str(reg); + + g_test_message("%016llx -> *%s", (unsigned long long)v, name); + qpci_io_writeq(s->dev, s->reg_bar, reg, v); +} + +static void cleanup_vm(ERSTState *s) +{ + g_free(s->dev); + qtest_shutdown(s->qs); +} + +static void setup_vm_cmd(ERSTState *s, const char *cmd) +{ + const char *arch =3D qtest_get_arch(); + + if (strcmp(arch, "i386") =3D=3D 0 || strcmp(arch, "x86_64") =3D=3D 0) { + s->qs =3D qtest_pc_boot(cmd); + } else { + g_printerr("erst-test tests are only available on x86\n"); + exit(EXIT_FAILURE); + } + s->dev =3D get_device(s->qs->pcibus); + + s->reg_bar =3D qpci_iomap(s->dev, 0, &s->reg_barsize); + g_assert_cmpuint(s->reg_barsize, =3D=3D, 16); + + s->mem_bar =3D qpci_iomap(s->dev, 1, &s->mem_barsize); + g_assert_cmpuint(s->mem_barsize, =3D=3D, 0x2000); + + qpci_device_enable(s->dev); +} + +static void test_acpi_erst_basic(void) +{ + ERSTState state; + uint64_t log_address_range; + uint64_t log_address_length; + uint32_t log_address_attr; + + setup_vm_cmd(&state, + "-object memory-backend-file," + "mem-path=3Dacpi-erst.XXXXXX," + "size=3D64K," + "share=3Don," + "id=3Dnvram " + "-device acpi-erst," + "memdev=3Dnvram"); + + out_reg32(&state, ACTION, 0xD); + log_address_range =3D in_reg64(&state, VALUE); + out_reg32(&state, ACTION, 0xE); + log_address_length =3D in_reg64(&state, VALUE); + out_reg32(&state, ACTION, 0xF); + log_address_attr =3D in_reg32(&state, VALUE); + + /* Check log_address_range is not 0, ~0 or base */ + g_assert_cmpuint(log_address_range, !=3D, 0ULL); + g_assert_cmpuint(log_address_range, !=3D, ~0ULL); + g_assert_cmpuint(log_address_range, !=3D, state.reg_bar.addr); + g_assert_cmpuint(log_address_range, =3D=3D, state.mem_bar.addr); + + /* Check log_address_length is bar1_size */ + g_assert_cmpuint(log_address_length, =3D=3D, state.mem_barsize); + + /* Check log_address_attr is 0 */ + g_assert_cmpuint(log_address_attr, =3D=3D, 0); + + cleanup_vm(&state); +} + +int main(int argc, char **argv) +{ + int ret; + + g_test_init(&argc, &argv, NULL); + qtest_add_func("/acpi-erst/basic", test_acpi_erst_basic); + ret =3D g_test_run(); + return ret; +} diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index c9d8458..4b01c22 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -68,6 +68,7 @@ qtests_i386 =3D \ (config_all_devices.has_key('CONFIG_RTL8139_PCI') ? ['rtl8139-test'] : [= ]) + \ (config_all_devices.has_key('CONFIG_E1000E_PCI_EXPRESS') ? ['fuzz-e1000e= -test'] : []) + \ (config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] : []) = + \ + (config_all_devices.has_key('CONFIG_ACPI_ERST') ? ['erst-test'] : []) + = \ (unpack_edk2_blobs ? ['bios-tables-test'] : []) + = \ qtests_pci + = \ ['fdc-test', @@ -246,6 +247,7 @@ qtests =3D { 'bios-tables-test': [io, 'boot-sector.c', 'acpi-utils.c', 'tpm-emu.c'], 'cdrom-test': files('boot-sector.c'), 'dbus-vmstate-test': files('migration-helpers.c') + dbus_vmstate1, + 'erst-test': files('erst-test.c'), 'ivshmem-test': [rt, '../../contrib/ivshmem-server/ivshmem-server.c'], 'migration-test': files('migration-helpers.c'), 'pxe-test': files('boot-sector.c'), --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638472623; cv=pass; d=zohomail.com; s=zohoarc; b=ZYb5VaIuT2s8V/W1Csk0nA1PJXDcuSj86LdiZIfP6HK6IFFVo6NpUoq4BjB1r1f0nHZfNn5/eHNjoqhfbmn4GhuxyKe5e9YaujzDYVP/YIs09w4EfGiH7R5XsKDxz6e27zDiMU141tf1Rw4KUIDg9VRoe6aVDHY/SHKbN58IYtU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638472623; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hue1FbAQNu+6fNtHW6xreW4UF9J/jJW7uHhvWwkmuQk=; b=jG8zGkqObP1Gyc6OR68hJTVU02IkYrztuYaPfsIZ8w8E/5BHF+FiPDPwf5wFD6PdLQwRgUUa8R31n61ItE9NDgSKgZ6f7nsfzUxo+PxalyKgvz1cacZ9TjFvocf3ij/sDVfnX4UJePjRHRy0d2F+IBOvpbzl+AqnhREL4+5Esfw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638472623385404.29638113872886; Thu, 2 Dec 2021 11:17:03 -0800 (PST) Received: from localhost ([::1]:43128 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrZk-00083p-Mw for importer@patchew.org; Thu, 02 Dec 2021 14:17:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44952) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrT1-0007VH-C9 for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:03 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:17978) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSy-0006OV-MO for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:10:02 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2J2Yud020374; Thu, 2 Dec 2021 19:09:59 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3cp9r5a8tx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:56 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IoP4I115582; Thu, 2 Dec 2021 19:09:34 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2048.outbound.protection.outlook.com [104.47.51.48]) by userp3020.oracle.com with ESMTP id 3cke4urwd9-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:34 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:33 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:33 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=hue1FbAQNu+6fNtHW6xreW4UF9J/jJW7uHhvWwkmuQk=; b=wqeXmH6SlDdCVFt0TJvCeXkzzrGmzj/BpH2tH/tXj/zUwsYrf0EymiIkxSULxs+03rlP klGv0QiTQ3tk8F93qy2gKdkF/URMVZCaD+CqGs7NXTnlxhgF5/bKu9jwXPSxKDB1kadG C66S7FfJQ0xGTr2Y5ilJ8R6V/SNhMhb/EQWWVyPachxfHxH1ZvsFhoWmBJ2k+4H5+CPI BcRfoImvmr7UtOhwEV8jXtUaYX2em976jkBJO2J+1ZzN9MTo7eBfPJNTUWlinIdi/MrQ GD+bDPKk3oUgmO2zC9FZUXvnhqwWo7U0hqjkfKxbU3oYpoN20L8V4G5ymNhcHPPNT/tp 4w== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i63AHNCWBslZ+PNjsGcDrcYNcUpTavsRTeJe5NJqRncQ3sVSGIfNzKHZpmHCso2mY2ikc0aVlOrmZka3J/RT29fGhFILM2Ix6oO9gXA39MIIFKSiVw57URhXYC3fUWNKwNyy8OWs6Bj3VNwUMIDl4AxDQB9lGDp1e1eqzjHjphIWAR4gEteEM7CxVVd6xWc0mTEo8IXPsg/yZXU5uNn5eQ9xwZEqdLvv5jBgKZRqUx+ksTuuy/nvagw//+/SG3Uvj1Z0Clb9a16h1pP7MrNMlg4vyzJ/nreYPlAYkDNTtZUzo+YrzwZqQNl/u2htxesQhSn0XZxjA2W7pCSn4LqEwA== 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=hue1FbAQNu+6fNtHW6xreW4UF9J/jJW7uHhvWwkmuQk=; b=hrimXqcnxskqRO+6/fHmGY5VEomNCsLmamaufK7laciDyGPmBsfSDPRBVvh3FE87EBYe6F2Pq4EmbBlOEfcqjIo/FTTcluZtSQoruD39XHpkfL10PrQl+qoctkD1gEip/NE1Lep5/sotw+xZMSVUbKUfFwc6U7Lig6OzgZyaRIdjTIZzyMsf+aFxWpekbK4GC6vJDsTpbrfN+J9Sw3ZmmM7apujRo6V5ZFad1m0UGjoClN7J00OadqTA3+6V4mf5SD1hZSlOoYMAGrK3ZD1RX1KMNpzFATnt8KM/NopqmGDL/KtEPgjisbHUVwbs/vgb26Pndb9oLtt7ahr2Zi5BuQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hue1FbAQNu+6fNtHW6xreW4UF9J/jJW7uHhvWwkmuQk=; b=aedbL0AKzrABlmkyXc5BjJwG+Xp/XSp+6rzMfhltOhQEZutlSXZfXqyD60ROY3mIsEMMSsKdQWKDbckAz+TvcrpsxsEhYtNu2P2HtQvzE8paT4+LXGSipSu4SY6pT5pVq7VQgu5pff0sQLpLM3svnnz+74wmm8DFx3gcZTEbzr0= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 09/10] ACPI ERST: bios-tables-test testcase Date: Thu, 2 Dec 2021 14:09:01 -0500 Message-Id: <1638472142-14396-10-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cf2cd2e-3eae-4e90-2f69-08d9b5c74639 X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:415; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fiAvkfzIdCoRWsO7gSlA8pnqGHKS96snYdDTaRd4xioKDv4ueLpIDi2VBuxXKFu0TgeRyu9hn23jYSWUSkCJ4aZrl+SuloiStbB5j580Onb5TjDIsV3ZJjtNzMxvNL/7m6ypMBHkt7EcPF5qaGZI0mc3goqaSlX2V949ru+dWJeHM8SMkceo3DgFJTe3ybuLP/YLCrF0PJ0WhPdUX7duAHwJbBVdRN56Jglz/pk+tqh14B4P7ZTbShL+0EtstMSUaxZrY3har9fCCQd8UnVT9qCgKYfSBvjSgxyfHAsqJzzzb0XASngJUAbeRiHbA9NNp4Z55MFd/7UTJny7RWPVdB+IR6Z66RV8z0MzTUqouhIGMPA9QrojIlzbUu45CrKxwGX06RVVCsw0pSjRmqp9bZeGPTKRkN5qq5eL2XxmNqON0CeI7IPs2iLEdzKPktJ2z/994YGm0KyLBQur7SmFkYyxLrcxsktvU8oKR2EDm9lHoj/KaUUcYSC5AXvNK8vCluMkqNXInhPNqj8fUW1Exut9boa6XW862ROZ8GqntKeIgsI43PIpmFehXllx+9Pg3jgses1tC4IJ1peyRxleBQm5da3v81Yrq6eX1hjP0fkKK0GRCqkky9z3rIJviHsG2hCFXOHt1NbplhP4sKKf7Ua5tjZ+LF9TE3ljRkH00jSUdquXR2NVaaJArPuYkb4W9zJB6GRMlcCPbW9NdAR5YQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FKDxZh68gZwz93jDdOB1vyreDl6s1Ch9YmBtbWH8aWr29H4KD+Zn1My+U2kK?= =?us-ascii?Q?DEgW9tu1jkeBAgTuSQnoWZv8ImPj6xV90iKbe/mRh9OhJlMw1tm3x04Ynk4g?= =?us-ascii?Q?ybeSjyb6WQv/D0mK5SjZh9VbaiJz0eUKvGr4RFBqzO0R84nCen9x/4Aol9qa?= =?us-ascii?Q?r0UC/uf+9TG15CC6K+fq0rCZ/SrV1Hl/19n1HLH0IuJxpNBAoKXaOeZbqPK6?= =?us-ascii?Q?Umh8sMqRqWTe+EdZl1wlg11rnqhgFgWUSjoQfyFkmqiZWWP3EYATybsG08sk?= =?us-ascii?Q?eqomdA7V9ZXRGq/EfdhaY1jTdu9gtu3ESZuqadR8Xnz99Enxmw/9ZNJSfvYg?= =?us-ascii?Q?rfHmuFaGjy17iGZyXWgyW60mYszMqI3vi4tEGHzPrbHvv471tCgc+a3SnzNs?= =?us-ascii?Q?aG2pEEaPNZcDEico0nvM3LqGi2SA9rSl9xhfllPFRPep4cf2bzkeoY6qTM+L?= =?us-ascii?Q?nyMcfpisdJHbvevePt5OT1VTuXY5hRx59T0on5pkD8TVaJxR/1Vx8GbcP9Dv?= =?us-ascii?Q?WSP/kJGxn84JmtOnmjaddA1aPeFSihWVd+Z6LHiBZC9rVlnG4Y7IavrOncUn?= =?us-ascii?Q?DSOp8MRHPjIUI/Du5PVpvExk6sd3RZi7XDkW7FIYrUVLhxNfsCNkptGvMFD/?= =?us-ascii?Q?FpycTrzdfREcrDW0iPNoPKkRCHDpGr5JrdJHfXVEC4QXmNj35Hs5BgMl4E5h?= =?us-ascii?Q?qGsJf5bqpGS57mA3ymoMdrHnuifpqy1b3QGSjs8sibffIonh+x7GD8iH1Btv?= =?us-ascii?Q?E8FBOb93eAiTKeZsxET2le6g1LdG7QMpR7mGnsgR3AhhRnqktKKzw5lYmNRL?= =?us-ascii?Q?w2f6n+OJ/qH8JFy754Obo/Nlvu+yS9sFWw3/j1gdHg+6s3GrQbWalTpV1Y/Q?= =?us-ascii?Q?Lc62Y3nhFa0fq0XZSPcYV0wl4PEx4tVL7dBpuupPAabhBUMJARlfDuhCOTGI?= =?us-ascii?Q?r3eh3xf2kOpBWF7LkXb6KQcNDDTT0UUH/cxN7SvhmI8lXIMD2KxmY/PqpJAM?= =?us-ascii?Q?mWh1vwWeyLNnNkAy1J6Fsniyti8bvaNSB9uTnr5BQcMkXKiddrV8UyjA0j8f?= =?us-ascii?Q?+FXX0DVxqZDlPGS+V3R5JgCXfsd3kaO5n3MZ4uMaXeY09LRZ09RHjxwCnxCJ?= =?us-ascii?Q?p+SKJnLnCwFZXuVa5ElK2zunOWxdytsmELxTjKIHpGVmwMp2iitm2BbnQwY5?= =?us-ascii?Q?2A3HCbQJ9eKXb6Jm2Zh9T8QncSVwScrgiyj2w40GGCf4XnFGjtGD30pQ5yxb?= =?us-ascii?Q?516tJeDE9GOQtEmK+5a3Q6LmikiWEjNvR+nQmFlYFN9WaeplfJyi1SIzq5U+?= =?us-ascii?Q?yorRdaLxUhggy8GFqPNSQC4icioXs4lO/hC91514aMJXoprrK+TwD9l/My2h?= =?us-ascii?Q?cMOnRKKOAnFaxHkAJYiOHg/8LTjqm1dqjq/QIj9CGDnE/BQmsRkzmCByuOh+?= =?us-ascii?Q?aO4csYp5f7UQQYQaDnwpKilzVUbK0eMnZTx82tEcfACpQtHE7Jsu5abIZ41y?= =?us-ascii?Q?ADyfaJQYp0/Qko2ynIh9N+mfjCdNU+9d/QDjQOQs2cnYXqDXm4DPIrjwVh9f?= =?us-ascii?Q?azqiMGm1HZwQoTFJeOhdtn7HY5frSl38LxNaDMDWsZhSwL5MeX+ePsBmf+xy?= =?us-ascii?Q?z1bn/7TgODIkMNE2HC/MOr8rHYOSege/DGWUnaszhCqqltwQ2SIrmhuKb8xC?= =?us-ascii?Q?5K/Zpw=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cf2cd2e-3eae-4e90-2f69-08d9b5c74639 X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:33.2797 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tnU1Sf7FeJzt6jZhRPjj5vjejDOE0b9/HrxApERKEB4bHgDePv8VBS+Y+jvdF0vPwZOzakGkhADcHrSH+N7zKSGiQgyvApGVoKeaE0MSuMs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=984 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-ORIG-GUID: TYbAeKKTzKpVTBZhZrG7goyGsotJyusy X-Proofpoint-GUID: TYbAeKKTzKpVTBZhZrG7goyGsotJyusy Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.177.32; envelope-from=eric.devolder@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638472625260100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This change implements the test suite checks for the ERST table. Signed-off-by: Eric DeVolder Reviewed-by: Ani Sinha Suggested-by: Konrad Wilk --- tests/qtest/bios-tables-test.c | 56 ++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 56 insertions(+) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 2588741..2f073e6 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1446,6 +1446,57 @@ static void test_acpi_piix4_tcg_acpi_hmat(void) test_acpi_tcg_acpi_hmat(MACHINE_PC); } =20 +static void test_acpi_erst(const char *machine) +{ + gchar *tmp_path =3D g_dir_make_tmp("qemu-test-erst.XXXXXX", NULL); + gchar *params; + test_data data; + + memset(&data, 0, sizeof(data)); + data.machine =3D machine; + data.variant =3D ".acpierst"; + params =3D g_strdup_printf( + " -object memory-backend-file,id=3Derstnvram," + "mem-path=3D%s,size=3D0x10000,share=3Don" + " -device acpi-erst,memdev=3Derstnvram", tmp_path); + test_acpi_one(params, &data); + free_test_data(&data); + g_free(params); + g_assert(g_rmdir(tmp_path) =3D=3D 0); + g_free(tmp_path); +} + +static void test_acpi_piix4_acpi_erst(void) +{ + test_acpi_erst(MACHINE_PC); +} + +static void test_acpi_q35_acpi_erst(void) +{ + test_acpi_erst(MACHINE_Q35); +} + +static void test_acpi_microvm_acpi_erst(void) +{ + gchar *tmp_path =3D g_dir_make_tmp("qemu-test-erst.XXXXXX", NULL); + gchar *params; + test_data data; + + test_acpi_microvm_prepare(&data); + data.variant =3D ".pcie"; + data.tcg_only =3D true; /* need constant host-phys-bits */ + params =3D g_strdup_printf(" -machine microvm," + "acpi=3Don,ioapic2=3Doff,rtc=3Doff,pcie=3Don" + " -object memory-backend-file,id=3Derstnvram," + "mem-path=3D%s,size=3D0x10000,share=3Don" + " -device acpi-erst,memdev=3Derstnvram", tmp_path); + test_acpi_one(params, &data); + g_free(params); + g_assert(g_rmdir(tmp_path) =3D=3D 0); + g_free(tmp_path); + free_test_data(&data); +} + static void test_acpi_virt_tcg(void) { test_data data =3D { @@ -1624,6 +1675,8 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hma= t); qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); + qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_erst); + qtest_add_func("acpi/q35/acpierst", test_acpi_q35_acpi_erst); qtest_add_func("acpi/microvm", test_acpi_microvm_tcg); qtest_add_func("acpi/microvm/usb", test_acpi_microvm_usb_tcg); qtest_add_func("acpi/microvm/rtc", test_acpi_microvm_rtc_tcg); @@ -1639,6 +1692,9 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar); } + if (strcmp(arch, "x86_64") =3D=3D 0) { + qtest_add_func("acpi/microvm/acpierst", test_acpi_microvm_acpi= _erst); + } } else if (strcmp(arch, "aarch64") =3D=3D 0) { if (has_tcg) { qtest_add_func("acpi/virt", test_acpi_virt_tcg); --=20 1.8.3.1 From nobody Thu May 2 11:46:02 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1638473076; cv=pass; d=zohomail.com; s=zohoarc; b=mz6Ryo93RA59UC3zJ55noDM85/Eoe3DrY+R/SFZjJ33VcA9NILynKuFqeS/L7KS+EwozDfn4VHPgUgDfBRLWXWQvbF/UEN05MwfCwhB/8Ak8xnImgdPripi9TJ0fBJzS4kUNDze9hEIlGlLX2tkORlMLIuEnJSDSxVXzNKrbnBA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638473076; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wjU8eZmaW7smmH/zhs6MyIuQE/spXPGDYehAbMF8yh8=; b=Fs3MbkDQCzhB2MRD65mGim39vsHPe212BtmM0E3n46PUs7nlOWvZlOCpvFoVwh17MiI5PN+Bta45QBt+FMcytNy4+hwKdYd1h1X7TZN+9xkUKOdvTDbG3j3mM/IoFpYir8VAKDrYIRK1y5F6P2pCiZxRwDHK0EsY8t+Et3T0Sds= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1638473076179921.8901035720788; Thu, 2 Dec 2021 11:24:36 -0800 (PST) Received: from localhost ([::1]:56696 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1msrh4-0000eT-Nh for importer@patchew.org; Thu, 02 Dec 2021 14:24:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44906) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSx-0007Ri-1O for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:59 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:21726) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1msrSs-0006Nn-NG for qemu-devel@nongnu.org; Thu, 02 Dec 2021 14:09:58 -0500 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1B2IlR1t024274; Thu, 2 Dec 2021 19:09:48 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3cpasys3ak-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:44 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1B2Ipfrt085637; Thu, 2 Dec 2021 19:09:38 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam08lp2177.outbound.protection.outlook.com [104.47.73.177]) by aserp3030.oracle.com with ESMTP id 3ckaqk1y4s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 02 Dec 2021 19:09:38 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) by MWHPR10MB1760.namprd10.prod.outlook.com (2603:10b6:301:a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Thu, 2 Dec 2021 19:09:35 +0000 Received: from CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f]) by CO1PR10MB4531.namprd10.prod.outlook.com ([fe80::143c:ea64:7017:19f%4]) with mapi id 15.20.4755.015; Thu, 2 Dec 2021 19:09:35 +0000 Received: from ban25x6uut23.us.oracle.com (138.3.201.23) by SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Thu, 2 Dec 2021 19:09:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=wjU8eZmaW7smmH/zhs6MyIuQE/spXPGDYehAbMF8yh8=; b=ZVl+Yk50HbgOtC7yb8oippqhT5ojqyiQ72qWnou4PeSD7Yz3c1b4Y1vOjANq7xAqdmZ9 3kwipks5zufUAhNA+dqk0QjZ7cNi+nvY+YvyyfJGRfMraAQ8dE5I+7eOcWdlq6SMBNMl fJIlfNIcBZ2Kc1ZRyWgJ1MmyqKDupzFzcEZsPECRw8dPhydje7VERivus2UuGKXZ3gqR IdY0tiUHo6jxGNR3Gzssqoar1J7Vxc+pal4roUtyu2sseP7qWgPjv0HNoREYvAt7vaV3 ww19+tgTMeE2xtU1YMBe6Udj+WEY72uKvavBk6TeYKtV24kLnzPlUZ8y7/psriVss2MI hg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eRsiy/vrwm5FF776D9Oha7sCfOd8RRXaPzhhfVwOwxmMhp2Dx2+XDfZugOVgExtLFuZQQxrVD7Rldu43cOa6Yt7OIPjKrlyTBmFvoprm92gWv5Do94emOHJy5yuTiTuOrTUNMWv+BznIm6aV4jj9GTm7F3kPF6ybXbd28B/vuy3Cr2MV6F6I391Fi3RCf/WpbT7XRtfGdfTM20xwb1CxspvKjc8O8GMFKhi1tc2h19vlMIPmYFIn1Zl7XvQ8DUP5HPgGSyEy4WwINDfGTNadD54O/+MdibyOr8Se/3Zp2WBwjcgxuZmO5vMGwrodIh3gUrLruluMC18PSHPVtFBNUg== 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=wjU8eZmaW7smmH/zhs6MyIuQE/spXPGDYehAbMF8yh8=; b=B7+LNR9ZI8ToFXMG8tw1a3JpboPai26Pybrmr+EVyi82UThgP3LzQtankIAgTgpmUMnZq9q60Whb6J8qjg3H/+GAIN8Z3YcEil13Db1Z1C0fGX5fp43fEjCFrRH8z0wN0PUUrwZSoZ0HjHlngSMUAlsYM8cAln2LLkq0SRIH07BPldB/Shnd7e1Yw3qdqnW3ZPw2eDeP+GhKJapECN/AKAQi94XMRpyMrwtoxgsWFmJ3jhWw+fQOqoGeYRonWTonpBRVEvdNyfZzr73AsrgbUX2d4UHeUM6iA1xrL2qFLXzH25FQuwcgmqgFWhP5daxzRR7VqAtZrFgeDyIEk2xLmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wjU8eZmaW7smmH/zhs6MyIuQE/spXPGDYehAbMF8yh8=; b=Bwx1U6UmUjcK/3yWyH4G57rCE40jvNkSpovTk5Vo44Bam5FRDBHUPD6lQiukwS1PoC9q/1lUF70L4k5648LAmacfB5EaO6MOEoPO4vLOoJPZWoOAdT8mC9ALKmcm64IKeEAhgyQqf7dVJvXv1HMR+4m418bOMdvMc/+BvqeHNwg= From: Eric DeVolder To: qemu-devel@nongnu.org Subject: [PATCH v9 10/10] ACPI ERST: step 6 of bios-tables-test.c Date: Thu, 2 Dec 2021 14:09:02 -0500 Message-Id: <1638472142-14396-11-git-send-email-eric.devolder@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> References: <1638472142-14396-1-git-send-email-eric.devolder@oracle.com> X-ClientProxiedBy: SJ0PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:33a::19) To CO1PR10MB4531.namprd10.prod.outlook.com (2603:10b6:303:6c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2587caca-bd31-4da8-2fae-08d9b5c74768 X-MS-TrafficTypeDiagnostic: MWHPR10MB1760: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:126; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BVD3FfKgDoWr9SQIYHUb2mWFmVgxiGDmmmn5uMxz2KslLk6o6lPP2IoMHMkGQNmqMeQr5thu75fL+DfJfEd8kssuVH1DJU2im55FRW7MC7IFEaxd9N+bXcyuTr/+y0/AGd7aY3P5yI0B9tNSfuCnn3wWa044OJHwa7eQKWRLG58nAUIVX9wXabvh4f+X6UdWGt3iYXiCNwcqwAgYIEagMKrvMgSI5M5HJkAFDqHhyK2QK5S8gjUXFM5henCK7o8QpwJPDrYbahc3ofJ8A3SodMhsehbBLVo21ehdBclH3bIt4iKfUT2kehjlm3AYye1kAufCR8jEscoADPpt2HQihZmUx8tJzJ3ZxBSgKGtowY0st3SBo2QVBQ2W+/ctrZCM7lAfVgHiMBHvgt6CdR3Xt36fz5CpsjcbefqI70r82XKU8q/zthtvyzpgcR087VJfgANE7wt/0efpIMMzhKY/oBOLsCh0yaw3reXYsXAPNmbeYwkk1jrgl+eUfVsIFR5vxkCfesgBjk9js1fyW0KzFJhBBJXwnZ5nPBdeRdE59XckgfLyNzCEBchVtP8Ix1Q52cvSCv0yf3EkqLYaqGlDxlxhf1qx+rMjKZbG7fTFeUSAfYlIJaI43UcFw/jAtRSoBkIstqJy9sQTl3l58GaRtrW9xg83QPW0BG2LohqnJta1BT1LCjOAb3fIevJ56EIJizQnI9e2kDGY+qpGSUgODw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR10MB4531.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(6666004)(38100700002)(38350700002)(66556008)(36756003)(316002)(66476007)(66946007)(2906002)(186003)(6486002)(8676002)(6916009)(26005)(5660300002)(83380400001)(30864003)(107886003)(52116002)(8936002)(508600001)(7696005)(956004)(4326008)(2616005)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eUij6eL54asiKNteGCzzRPSD7Ni69bklZSDkLyTnOfpAelTxIS5lyZbHs4Zh?= =?us-ascii?Q?sgi47fWuiheAw6eSZSj0k4ikSMXOLc+GYMZmosttrn8GG+ArBKhu2/EcYi6E?= =?us-ascii?Q?2u+wsqM92ZGoo0Va77uPjGVj+fxKMBnh8lg7AxUHwnsuvLhgS/ORRzXIZVFz?= =?us-ascii?Q?HfiHlclZT06rG8xVWhcs7JDXt2ZkfhpSvqV0dXX/fa1UQf2SnckqD8s1m6q5?= =?us-ascii?Q?JNOuJ6mb8XV3BjOB0nfYrc1cZUfW/K3EibcisGTrChTfeKl8k/HcTRxLxLp6?= =?us-ascii?Q?jIrNm8oUa8jLV0e47SCNA4LHO0+xVaC1VBJxUKh8j5Yf+/8asu9deJXK30Q1?= =?us-ascii?Q?0KqLhfk6EZ+8oKXdWsgFTzG3wTiAcyI9qLNLDcIJaynhWqC5a73KFKoAeht5?= =?us-ascii?Q?HXU7ZMp3rztnv/L4KpemxfeNAM9CatYhqUk+ThM6GKSu5FzgbYas6EJu6dab?= =?us-ascii?Q?EOzMrQqJ86ZS0FU74Qj+vzkNwjfz+Xvq1KtKZgXFP9aGhno2TKDe/1E3RuDA?= =?us-ascii?Q?cl7gddSeUCSdQZR+rMWUZKty/OR/Do9dM9NBDlANK5GnbJuFsEUNHLaYaDEI?= =?us-ascii?Q?RzNag2n2d+1QtbCsky0/Ekj6yx656rgxS5uWKiqvven1yUbI2eDqGExOSe8k?= =?us-ascii?Q?rSQ8//23hrw9pY0891D/h0XyiDceJu93s2RFkuD6ZNIUa6U56mvivlrkehSK?= =?us-ascii?Q?lRPZWNhz2N433r2JLiD993OfgB/SuKE+BJ0bB/fRnfcHQZRnE3eLWcki48sg?= =?us-ascii?Q?ODU+1ae+UZk010XnU3bgd34AAeCe0A/ZqBfH6EBUyiaXYJDEdl2i5hknph4U?= =?us-ascii?Q?ULpyXEakano5+AgJUMtlgyDgz3OlwH4qmEY5g0E5jMjuQ8LJ75mtDo2xRmvD?= =?us-ascii?Q?hhXwA/78SYDpyRsU4jYuGY0yRa0dASjztLWJVyY1cuptfFLncnXyDfejrC43?= =?us-ascii?Q?EzczaHSTTfmnNnVxRl7+lhySh/1GLkOEl8xOjnjN0vmh5kHKBMzHXuhQHHg7?= =?us-ascii?Q?b1At5bsYHut6NSGn7UQ9u0UkgCte4MaSIsci/P/Mmm2V1KDJNQJdkpMizt0R?= =?us-ascii?Q?0qnoD005rsEgNpffNv6zP92F5e4wn4h11/E3npOsqAzfULV6uyKflrgnSi6t?= =?us-ascii?Q?190YZiNPqacYM07GZLzf9tNY28EGEcBczTWPgS6OHws2X9rLL0F5/Ov9LvgY?= =?us-ascii?Q?Rod11WaCmLIVV+5razcHCe8/kspXrgjJluITnXMGdW6tKAPtkFI3Y6OOpqP+?= =?us-ascii?Q?Gm7CK8n0jIHLCR4Ji7GU/mis74c2GYJCGO7U8n9augeFa5hLmL5hgNRwJuk0?= =?us-ascii?Q?Bn7+zR9qrj2AFaZq+DHP8hzg7isR8HdFxcgd/5C+i8Zos5P5GOnF/3CAUZuO?= =?us-ascii?Q?wTF3JjGcSC1HoPn87CNs2VJ3WvjGj+7uKOOqXa3e206RAX7ZhprOUprUiPtX?= =?us-ascii?Q?jdjXIRZgFs9mEvj/Uyuxvm8VqzNss2Kn4B1rDJjURFTe4to+Ez1hg+P9F4k6?= =?us-ascii?Q?qr6GAoMpLVjzdz6fuTvbNGz578rlkCF4/fFIaFkt9C3YHel73osg2HbOnVdR?= =?us-ascii?Q?8SZB4f6N4O3ONTpX+/x1CfxuJ375Aw6ovTYrE8BtXic6VlrWl3HfeBrRgdZc?= =?us-ascii?Q?r6yVHQJWUkUjad/jmTR2t3ReE63kbWSJgajWKD/ikws6NS1+hGzIG7nlF2M7?= =?us-ascii?Q?30OIug=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2587caca-bd31-4da8-2fae-08d9b5c74768 X-MS-Exchange-CrossTenant-AuthSource: CO1PR10MB4531.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2021 19:09:35.2578 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dq0mshpLdaqwqyyPnoToo0byrkHGVsF1E9W2oUMIPGxq/t1S70jtcgW9kk+x1rj9w2+AS4oDstkHPUjqW9wZCmyASUiXqNjt1VTM9yd3OEE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1760 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10185 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 suspectscore=0 mlxlogscore=967 spamscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112020121 X-Proofpoint-GUID: YGCjmyOdCIGH6xk7CEcgvnlrsn6vDF9N X-Proofpoint-ORIG-GUID: YGCjmyOdCIGH6xk7CEcgvnlrsn6vDF9N Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.165.32; envelope-from=eric.devolder@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: berrange@redhat.com, ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com, pbonzini@redhat.com, ani@anisinha.ca, imammedo@redhat.com, boris.ostrovsky@oracle.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1638473077732100003 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Following the guidelines in tests/qtest/bios-tables-test.c, this is step 6. Below is the disassembly of tests/data/acpi/pc/ERST.acpierst. /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20180508 (64-bit version) * Copyright (c) 2000 - 2018 Intel Corporation * * Disassembly of tests/data/acpi/pc/ERST.acpierst, Thu Dec 2 13:32:07 20= 21 * * ACPI Data Table [ERST] * * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue */ [000h 0000 4] Signature : "ERST" [Error Record Ser= ialization Table] [004h 0004 4] Table Length : 00000390 [008h 0008 1] Revision : 01 [009h 0009 1] Checksum : D6 [00Ah 0010 6] Oem ID : "BOCHS " [010h 0016 8] Oem Table ID : "BXPC " [018h 0024 4] Oem Revision : 00000001 [01Ch 0028 4] Asl Compiler ID : "BXPC" [020h 0032 4] Asl Compiler Revision : 00000001 [024h 0036 4] Serialization Header Length : 00000030 [028h 0040 4] Reserved : 00000000 [02Ch 0044 4] Instruction Entry Count : 0000001B [030h 0048 1] Action : 00 [Begin Write Operation] [031h 0049 1] Instruction : 03 [Write Register Value] [032h 0050 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [033h 0051 1] Reserved : 00 [034h 0052 12] Register Region : [Generic Address Structure] [034h 0052 1] Space ID : 00 [SystemMemory] [035h 0053 1] Bit Width : 20 [036h 0054 1] Bit Offset : 00 [037h 0055 1] Encoded Access Width : 03 [DWord Access:32] [038h 0056 8] Address : 00000000FEBF3000 [040h 0064 8] Value : 0000000000000000 [048h 0072 8] Mask : 00000000000000FF [050h 0080 1] Action : 01 [Begin Read Operation] [051h 0081 1] Instruction : 03 [Write Register Value] [052h 0082 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [053h 0083 1] Reserved : 00 [054h 0084 12] Register Region : [Generic Address Structure] [054h 0084 1] Space ID : 00 [SystemMemory] [055h 0085 1] Bit Width : 20 [056h 0086 1] Bit Offset : 00 [057h 0087 1] Encoded Access Width : 03 [DWord Access:32] [058h 0088 8] Address : 00000000FEBF3000 [060h 0096 8] Value : 0000000000000001 [068h 0104 8] Mask : 00000000000000FF [070h 0112 1] Action : 02 [Begin Clear Operation] [071h 0113 1] Instruction : 03 [Write Register Value] [072h 0114 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [073h 0115 1] Reserved : 00 [074h 0116 12] Register Region : [Generic Address Structure] [074h 0116 1] Space ID : 00 [SystemMemory] [075h 0117 1] Bit Width : 20 [076h 0118 1] Bit Offset : 00 [077h 0119 1] Encoded Access Width : 03 [DWord Access:32] [078h 0120 8] Address : 00000000FEBF3000 [080h 0128 8] Value : 0000000000000002 [088h 0136 8] Mask : 00000000000000FF [090h 0144 1] Action : 03 [End Operation] [091h 0145 1] Instruction : 03 [Write Register Value] [092h 0146 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [093h 0147 1] Reserved : 00 [094h 0148 12] Register Region : [Generic Address Structure] [094h 0148 1] Space ID : 00 [SystemMemory] [095h 0149 1] Bit Width : 20 [096h 0150 1] Bit Offset : 00 [097h 0151 1] Encoded Access Width : 03 [DWord Access:32] [098h 0152 8] Address : 00000000FEBF3000 [0A0h 0160 8] Value : 0000000000000003 [0A8h 0168 8] Mask : 00000000000000FF [0B0h 0176 1] Action : 04 [Set Record Offset] [0B1h 0177 1] Instruction : 02 [Write Register] [0B2h 0178 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [0B3h 0179 1] Reserved : 00 [0B4h 0180 12] Register Region : [Generic Address Structure] [0B4h 0180 1] Space ID : 00 [SystemMemory] [0B5h 0181 1] Bit Width : 20 [0B6h 0182 1] Bit Offset : 00 [0B7h 0183 1] Encoded Access Width : 03 [DWord Access:32] [0B8h 0184 8] Address : 00000000FEBF3008 [0C0h 0192 8] Value : 0000000000000000 [0C8h 0200 8] Mask : 00000000FFFFFFFF [0D0h 0208 1] Action : 04 [Set Record Offset] [0D1h 0209 1] Instruction : 03 [Write Register Value] [0D2h 0210 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [0D3h 0211 1] Reserved : 00 [0D4h 0212 12] Register Region : [Generic Address Structure] [0D4h 0212 1] Space ID : 00 [SystemMemory] [0D5h 0213 1] Bit Width : 20 [0D6h 0214 1] Bit Offset : 00 [0D7h 0215 1] Encoded Access Width : 03 [DWord Access:32] [0D8h 0216 8] Address : 00000000FEBF3000 [0E0h 0224 8] Value : 0000000000000004 [0E8h 0232 8] Mask : 00000000000000FF [0F0h 0240 1] Action : 05 [Execute Operation] [0F1h 0241 1] Instruction : 03 [Write Register Value] [0F2h 0242 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [0F3h 0243 1] Reserved : 00 [0F4h 0244 12] Register Region : [Generic Address Structure] [0F4h 0244 1] Space ID : 00 [SystemMemory] [0F5h 0245 1] Bit Width : 20 [0F6h 0246 1] Bit Offset : 00 [0F7h 0247 1] Encoded Access Width : 03 [DWord Access:32] [0F8h 0248 8] Address : 00000000FEBF3008 [100h 0256 8] Value : 000000000000009C [108h 0264 8] Mask : 00000000000000FF [110h 0272 1] Action : 05 [Execute Operation] [111h 0273 1] Instruction : 03 [Write Register Value] [112h 0274 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [113h 0275 1] Reserved : 00 [114h 0276 12] Register Region : [Generic Address Structure] [114h 0276 1] Space ID : 00 [SystemMemory] [115h 0277 1] Bit Width : 20 [116h 0278 1] Bit Offset : 00 [117h 0279 1] Encoded Access Width : 03 [DWord Access:32] [118h 0280 8] Address : 00000000FEBF3000 [120h 0288 8] Value : 0000000000000005 [128h 0296 8] Mask : 00000000000000FF [130h 0304 1] Action : 06 [Check Busy Status] [131h 0305 1] Instruction : 03 [Write Register Value] [132h 0306 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [133h 0307 1] Reserved : 00 [134h 0308 12] Register Region : [Generic Address Structure] [134h 0308 1] Space ID : 00 [SystemMemory] [135h 0309 1] Bit Width : 20 [136h 0310 1] Bit Offset : 00 [137h 0311 1] Encoded Access Width : 03 [DWord Access:32] [138h 0312 8] Address : 00000000FEBF3000 [140h 0320 8] Value : 0000000000000006 [148h 0328 8] Mask : 00000000000000FF [150h 0336 1] Action : 06 [Check Busy Status] [151h 0337 1] Instruction : 01 [Read Register Value] [152h 0338 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [153h 0339 1] Reserved : 00 [154h 0340 12] Register Region : [Generic Address Structure] [154h 0340 1] Space ID : 00 [SystemMemory] [155h 0341 1] Bit Width : 20 [156h 0342 1] Bit Offset : 00 [157h 0343 1] Encoded Access Width : 03 [DWord Access:32] [158h 0344 8] Address : 00000000FEBF3008 [160h 0352 8] Value : 0000000000000001 [168h 0360 8] Mask : 00000000000000FF [170h 0368 1] Action : 07 [Get Command Status] [171h 0369 1] Instruction : 03 [Write Register Value] [172h 0370 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [173h 0371 1] Reserved : 00 [174h 0372 12] Register Region : [Generic Address Structure] [174h 0372 1] Space ID : 00 [SystemMemory] [175h 0373 1] Bit Width : 20 [176h 0374 1] Bit Offset : 00 [177h 0375 1] Encoded Access Width : 03 [DWord Access:32] [178h 0376 8] Address : 00000000FEBF3000 [180h 0384 8] Value : 0000000000000007 [188h 0392 8] Mask : 00000000000000FF [190h 0400 1] Action : 07 [Get Command Status] [191h 0401 1] Instruction : 00 [Read Register] [192h 0402 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [193h 0403 1] Reserved : 00 [194h 0404 12] Register Region : [Generic Address Structure] [194h 0404 1] Space ID : 00 [SystemMemory] [195h 0405 1] Bit Width : 20 [196h 0406 1] Bit Offset : 00 [197h 0407 1] Encoded Access Width : 03 [DWord Access:32] [198h 0408 8] Address : 00000000FEBF3008 [1A0h 0416 8] Value : 0000000000000000 [1A8h 0424 8] Mask : 00000000000000FF [1B0h 0432 1] Action : 08 [Get Record Identifier] [1B1h 0433 1] Instruction : 03 [Write Register Value] [1B2h 0434 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [1B3h 0435 1] Reserved : 00 [1B4h 0436 12] Register Region : [Generic Address Structure] [1B4h 0436 1] Space ID : 00 [SystemMemory] [1B5h 0437 1] Bit Width : 20 [1B6h 0438 1] Bit Offset : 00 [1B7h 0439 1] Encoded Access Width : 03 [DWord Access:32] [1B8h 0440 8] Address : 00000000FEBF3000 [1C0h 0448 8] Value : 0000000000000008 [1C8h 0456 8] Mask : 00000000000000FF [1D0h 0464 1] Action : 08 [Get Record Identifier] [1D1h 0465 1] Instruction : 00 [Read Register] [1D2h 0466 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [1D3h 0467 1] Reserved : 00 [1D4h 0468 12] Register Region : [Generic Address Structure] [1D4h 0468 1] Space ID : 00 [SystemMemory] [1D5h 0469 1] Bit Width : 40 [1D6h 0470 1] Bit Offset : 00 [1D7h 0471 1] Encoded Access Width : 04 [QWord Access:64] [1D8h 0472 8] Address : 00000000FEBF3008 [1E0h 0480 8] Value : 0000000000000000 [1E8h 0488 8] Mask : FFFFFFFFFFFFFFFF [1F0h 0496 1] Action : 09 [Set Record Identifier] [1F1h 0497 1] Instruction : 02 [Write Register] [1F2h 0498 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [1F3h 0499 1] Reserved : 00 [1F4h 0500 12] Register Region : [Generic Address Structure] [1F4h 0500 1] Space ID : 00 [SystemMemory] [1F5h 0501 1] Bit Width : 40 [1F6h 0502 1] Bit Offset : 00 [1F7h 0503 1] Encoded Access Width : 04 [QWord Access:64] [1F8h 0504 8] Address : 00000000FEBF3008 [200h 0512 8] Value : 0000000000000000 [208h 0520 8] Mask : FFFFFFFFFFFFFFFF [210h 0528 1] Action : 09 [Set Record Identifier] [211h 0529 1] Instruction : 03 [Write Register Value] [212h 0530 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [213h 0531 1] Reserved : 00 [214h 0532 12] Register Region : [Generic Address Structure] [214h 0532 1] Space ID : 00 [SystemMemory] [215h 0533 1] Bit Width : 20 [216h 0534 1] Bit Offset : 00 [217h 0535 1] Encoded Access Width : 03 [DWord Access:32] [218h 0536 8] Address : 00000000FEBF3000 [220h 0544 8] Value : 0000000000000009 [228h 0552 8] Mask : 00000000000000FF [230h 0560 1] Action : 0A [Get Record Count] [231h 0561 1] Instruction : 03 [Write Register Value] [232h 0562 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [233h 0563 1] Reserved : 00 [234h 0564 12] Register Region : [Generic Address Structure] [234h 0564 1] Space ID : 00 [SystemMemory] [235h 0565 1] Bit Width : 20 [236h 0566 1] Bit Offset : 00 [237h 0567 1] Encoded Access Width : 03 [DWord Access:32] [238h 0568 8] Address : 00000000FEBF3000 [240h 0576 8] Value : 000000000000000A [248h 0584 8] Mask : 00000000000000FF [250h 0592 1] Action : 0A [Get Record Count] [251h 0593 1] Instruction : 00 [Read Register] [252h 0594 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [253h 0595 1] Reserved : 00 [254h 0596 12] Register Region : [Generic Address Structure] [254h 0596 1] Space ID : 00 [SystemMemory] [255h 0597 1] Bit Width : 20 [256h 0598 1] Bit Offset : 00 [257h 0599 1] Encoded Access Width : 03 [DWord Access:32] [258h 0600 8] Address : 00000000FEBF3008 [260h 0608 8] Value : 0000000000000000 [268h 0616 8] Mask : 00000000FFFFFFFF [270h 0624 1] Action : 0B [Begin Dummy Write] [271h 0625 1] Instruction : 03 [Write Register Value] [272h 0626 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [273h 0627 1] Reserved : 00 [274h 0628 12] Register Region : [Generic Address Structure] [274h 0628 1] Space ID : 00 [SystemMemory] [275h 0629 1] Bit Width : 20 [276h 0630 1] Bit Offset : 00 [277h 0631 1] Encoded Access Width : 03 [DWord Access:32] [278h 0632 8] Address : 00000000FEBF3000 [280h 0640 8] Value : 000000000000000B [288h 0648 8] Mask : 00000000000000FF [290h 0656 1] Action : 0D [Get Error Address Range] [291h 0657 1] Instruction : 03 [Write Register Value] [292h 0658 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [293h 0659 1] Reserved : 00 [294h 0660 12] Register Region : [Generic Address Structure] [294h 0660 1] Space ID : 00 [SystemMemory] [295h 0661 1] Bit Width : 20 [296h 0662 1] Bit Offset : 00 [297h 0663 1] Encoded Access Width : 03 [DWord Access:32] [298h 0664 8] Address : 00000000FEBF3000 [2A0h 0672 8] Value : 000000000000000D [2A8h 0680 8] Mask : 00000000000000FF [2B0h 0688 1] Action : 0D [Get Error Address Range] [2B1h 0689 1] Instruction : 00 [Read Register] [2B2h 0690 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [2B3h 0691 1] Reserved : 00 [2B4h 0692 12] Register Region : [Generic Address Structure] [2B4h 0692 1] Space ID : 00 [SystemMemory] [2B5h 0693 1] Bit Width : 40 [2B6h 0694 1] Bit Offset : 00 [2B7h 0695 1] Encoded Access Width : 04 [QWord Access:64] [2B8h 0696 8] Address : 00000000FEBF3008 [2C0h 0704 8] Value : 0000000000000000 [2C8h 0712 8] Mask : FFFFFFFFFFFFFFFF [2D0h 0720 1] Action : 0E [Get Error Address Lengt= h] [2D1h 0721 1] Instruction : 03 [Write Register Value] [2D2h 0722 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [2D3h 0723 1] Reserved : 00 [2D4h 0724 12] Register Region : [Generic Address Structure] [2D4h 0724 1] Space ID : 00 [SystemMemory] [2D5h 0725 1] Bit Width : 20 [2D6h 0726 1] Bit Offset : 00 [2D7h 0727 1] Encoded Access Width : 03 [DWord Access:32] [2D8h 0728 8] Address : 00000000FEBF3000 [2E0h 0736 8] Value : 000000000000000E [2E8h 0744 8] Mask : 00000000000000FF [2F0h 0752 1] Action : 0E [Get Error Address Lengt= h] [2F1h 0753 1] Instruction : 00 [Read Register] [2F2h 0754 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [2F3h 0755 1] Reserved : 00 [2F4h 0756 12] Register Region : [Generic Address Structure] [2F4h 0756 1] Space ID : 00 [SystemMemory] [2F5h 0757 1] Bit Width : 40 [2F6h 0758 1] Bit Offset : 00 [2F7h 0759 1] Encoded Access Width : 04 [QWord Access:64] [2F8h 0760 8] Address : 00000000FEBF3008 [300h 0768 8] Value : 0000000000000000 [308h 0776 8] Mask : 00000000FFFFFFFF [310h 0784 1] Action : 0F [Get Error Attributes] [311h 0785 1] Instruction : 03 [Write Register Value] [312h 0786 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [313h 0787 1] Reserved : 00 [314h 0788 12] Register Region : [Generic Address Structure] [314h 0788 1] Space ID : 00 [SystemMemory] [315h 0789 1] Bit Width : 20 [316h 0790 1] Bit Offset : 00 [317h 0791 1] Encoded Access Width : 03 [DWord Access:32] [318h 0792 8] Address : 00000000FEBF3000 [320h 0800 8] Value : 000000000000000F [328h 0808 8] Mask : 00000000000000FF [330h 0816 1] Action : 0F [Get Error Attributes] [331h 0817 1] Instruction : 00 [Read Register] [332h 0818 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [333h 0819 1] Reserved : 00 [334h 0820 12] Register Region : [Generic Address Structure] [334h 0820 1] Space ID : 00 [SystemMemory] [335h 0821 1] Bit Width : 20 [336h 0822 1] Bit Offset : 00 [337h 0823 1] Encoded Access Width : 03 [DWord Access:32] [338h 0824 8] Address : 00000000FEBF3008 [340h 0832 8] Value : 0000000000000000 [348h 0840 8] Mask : 00000000FFFFFFFF [350h 0848 1] Action : 10 [Execute Timings] [351h 0849 1] Instruction : 03 [Write Register Value] [352h 0850 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [353h 0851 1] Reserved : 00 [354h 0852 12] Register Region : [Generic Address Structure] [354h 0852 1] Space ID : 00 [SystemMemory] [355h 0853 1] Bit Width : 20 [356h 0854 1] Bit Offset : 00 [357h 0855 1] Encoded Access Width : 03 [DWord Access:32] [358h 0856 8] Address : 00000000FEBF3000 [360h 0864 8] Value : 0000000000000010 [368h 0872 8] Mask : 00000000000000FF [370h 0880 1] Action : 10 [Execute Timings] [371h 0881 1] Instruction : 00 [Read Register] [372h 0882 1] Flags (decoded below) : 00 Preserve Register Bits : 0 [373h 0883 1] Reserved : 00 [374h 0884 12] Register Region : [Generic Address Structure] [374h 0884 1] Space ID : 00 [SystemMemory] [375h 0885 1] Bit Width : 40 [376h 0886 1] Bit Offset : 00 [377h 0887 1] Encoded Access Width : 04 [QWord Access:64] [378h 0888 8] Address : 00000000FEBF3008 [380h 0896 8] Value : 0000000000000000 [388h 0904 8] Mask : FFFFFFFFFFFFFFFF Raw Table Data: Length 912 (0x390) Note that the contents of tests/data/q35/ERST.acpierst and tests/data/microvm/ERST.pcie are the same except for differences due to assigned base address. Files tests/data/pc/DSDT.acpierst and tests/data/acpi/q35/DSDT.acpierst are new files (and are included as a result of 'make check' process). Rather than provide the entire content, I am providing the differences between pc/DSDT and pc/DSDT.acpierst, and the difference between q35/DSDT and q35/DSDT.acpierst, with an explanation to follow. diff pc/DSDT pc/DSDT.acpierst: @@ -5,13 +5,13 @@ * * Disassembling to symbolic ASL+ operators * - * Disassembly of tests/data/acpi/pc/DSDT, Thu Dec 2 10:10:13 2021 + * Disassembly of tests/data/acpi/pc/DSDT.acpierst, Thu Dec 2 12:59:36 2= 021 * * Original Table Header: * Signature "DSDT" - * Length 0x00001772 (6002) + * Length 0x00001751 (5969) * Revision 0x01 **** 32-bit table (V1), no 64-bit math suppo= rt - * Checksum 0x9E + * Checksum 0x95 * OEM ID "BOCHS " * OEM Table ID "BXPC " * OEM Revision 0x00000001 (1) @@ -964,16 +964,11 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS " Device (S18) { - Name (_SUN, 0x03) // _SUN: Slot User Number Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device - { - PCEJ (BSEL, _SUN) - } - + Name (ASUN, 0x03) Method (_DSM, 4, Serialized) // _DSM: Device-Specific Me= thod { - Return (PDSM (Arg0, Arg1, Arg2, Arg3, BSEL, _SUN)) + Return (PDSM (Arg0, Arg1, Arg2, Arg3, BSEL, ASUN)) } } @@ -1399,11 +1394,6 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS " Method (DVNT, 2, NotSerialized) { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - If ((Arg0 & 0x10)) { Notify (S20, Arg1) diff q35/DSDT and q35/DSDT.acpierst: @@ -5,13 +5,13 @@ * * Disassembling to symbolic ASL+ operators * - * Disassembly of tests/data/acpi/q35/DSDT, Thu Dec 2 10:10:13 2021 + * Disassembly of tests/data/acpi/q35/DSDT.acpierst, Thu Dec 2 12:59:36 = 2021 * * Original Table Header: * Signature "DSDT" - * Length 0x00002061 (8289) + * Length 0x00002072 (8306) * Revision 0x01 **** 32-bit table (V1), no 64-bit math suppo= rt - * Checksum 0xFA + * Checksum 0x9A * OEM ID "BOCHS " * OEM Table ID "BXPC " * OEM Revision 0x00000001 (1) @@ -3278,6 +3278,11 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS " } } + Device (S10) + { + Name (_ADR, 0x00020000) // _ADR: Address + } + Method (PCNT, 0, NotSerialized) { } For both pc and q35, there is but a small difference between this DSDT.acpierst and the corresponding DSDT. In both cases, the changes occur under the hiearchy: Scope (\_SB) { Scope (PCI0) { which leads me to believe that the change to the DSDT was needed due to the introduction of the ERST PCI device. Signed-off-by: Eric DeVolder Acked-by: Ani Sinha Suggested-by: Konrad Wilk --- tests/data/acpi/microvm/ERST.pcie | Bin 0 -> 912 bytes tests/data/acpi/pc/DSDT.acpierst | Bin 0 -> 5969 bytes tests/data/acpi/pc/ERST.acpierst | Bin 0 -> 912 bytes tests/data/acpi/q35/DSDT.acpierst | Bin 0 -> 8306 bytes tests/data/acpi/q35/ERST.acpierst | Bin 0 -> 912 bytes tests/qtest/bios-tables-test-allowed-diff.h | 5 ----- 6 files changed, 5 deletions(-) diff --git a/tests/data/acpi/microvm/ERST.pcie b/tests/data/acpi/microvm/ER= ST.pcie index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d9a2b3211ab5893a50751ad52be= 3782579e367f2 100644 GIT binary patch literal 912 zcmaKpO%8%E5QPUQ|KVrvh9h_c12J)@5f?5!k_Ygv*jGA8UW7?#`}+D#XXyDpKHiZ? z@anI_W$gOrZRl(SB7!yMqx}#E4EC&a5=3D}m^g_!0^0`kEl)DOuIXM6D@@*xq*8vyqH z)b0KTlmlgmH~xt7vGp5lnFb*Ui&1&BGpsO$pT3_)pk?J?$-jLiezjJ$6`=3Dr)uYry0Rn7KuJIp&j)|! zckaizM=3D~sYzU*-I~PkUtAn>Dr`~u=3D;o(_O$t$PK8~R}U#&P6`{0u*{ zz`m8fl|Wu#ucTKJu-TjNQ`rN~%rBccG0yWwF_}_zQl+X71|-_g)Pr`x1*Xgb!&xdP4yUPQ>QealcAR5Lj8F@vR~&d_hFrfVBOumUtb3< zL8GI#8|W0leXv|!GGL=3D~vE5*uM7z%Af!czNXYqlQL#IT$!9xR0zORu68XY#=3DM-SGy z3b+$tZv(*Hu4BBt4F>MUo>Padde^ZZU%V_4TiQ&t&6ruaomTLcp<9-2bBZ=3Dqyp40+ ziEQ&$6L)c>%cI)0;%&VWL5E5@F~Or>jX}g)!VlmH>3A6L#ZGj;i8(jvxl3w$XL%gc z#4Y0Q*ces>sy7Obm6bTnr@oqih!n=3DP&+!w*&jZjVy;9R95=3D2i+)QqA9kLa1VJk2ES zOh6C4;>puBt75SyO`ippr%I9Z{pk6j=3D(st4aP-WP=3Dov412KgP0p3z1}&)7R9%3U9d z&O-shXOD!>df~G};j<@%&-TL`!{M=3DJ{^0EAj)b4{!p{wbpF1J^oV~LmWA@f?c-apx zmJl5aIOP$4%5j~Id6TV0{V^u0sG`|bSAOB2V2gb1@Ki7>g+T~D<}I$cZmy;lKl#kP zxAm*k{f|HWWb1z8<4?h6y1Bg6FLiOw7Z@DC0gGYf$3^AUwgVosAOD1e9Hex!P-c3u zY%#r3y2G$SrRg@$K+^S+fmJX`o|0}AmQ(0%hN|GcJ*{Ry{RpZVR_9(>4G!#sMm9K*-Kb2oqvI?7dL24<1WVww+F6k zrAwi@3blP`ov2|RQA!4yn|HMt+&l|rp;ky|p}*s4Bhi{tS7b7IwWYtO z($_%y0DUt+12O0t{g&d0!qm$i(>FX+UGsM;osE9mca!r!@5Ld6Jt2$-nabyyC?4*zT@l2 z4LgzF3U^-%E&8T*RhMxH{B|{Nmd$hyhrlm@q(4&m{QfcO=3DjBztZw|gWU^0Q+lFdc4 z;t%ATAUG5ws_1bncmXfi8SEC{UBmF!TrD{!GvtiVS87Q`#ts;JTa>Png~+QvKOAg( z=3Dl%H)^?9Gb?Lui47fY7Bv8_MKSPiRTs@3YkU)Q{@YvnKAT;;J8U>fgQ>9qeF0+gJ! zS_V9pumOy9sSU)%^lS1X17&Pw`o1`MA>W^ePI^H@E*S%`|HOx^c$lLHVkhwcpCba771jDZ#SdZmhM`3K=3Dq{% zNdudV5*`|Tn?lmSM!~R<_iYsI+Q3HPu(0YhlR~GImZVAKI~h z+O@D02|KpVC?DEYlCeYxd&-j!?Kerrtt;#;Pd>DJ8RM1`cI=3DOKE&Yg{vc{!8uv6Z~ u5j$m$OK@OMk$l8{6J=3DZ)1AB{Pv}@<7F~|QN>AydkHSF$IS^vS{(*FTuhT2R3 literal 0 HcmV?d00001 diff --git a/tests/data/acpi/pc/ERST.acpierst b/tests/data/acpi/pc/ERST.acp= ierst index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f24fadd345c798ee5c17cdb66e0= e1703bd1b2f26 100644 GIT binary patch literal 912 zcmaKpOAdlC6h#XZC=3Dfn#CoF*_7>J28jW}>wF2KFG3zs9lTPTnl;U#=3D7r>E_sr(1u2 z21W+{ zr+@MJrMD_~fBw&3-hS0e0dO9FP5iwO(II>Q|7$G zoVF=3Dc*370~>q(Ucw2`X*UeoWjna$X}Z?i1bzv)oC^kS{!mHe(ZC>5U_1icE2s3nZ3 zY5U#Ka>9}Q$uMNYFgqR}u+hRN!)^AvZJYi3f9V5uU@eNi<*kJe=3DczCEzGW%K(3|f) zNxh-*?(d&$1(g9GVw69NuK2C)X2J?B+gV$DDk*`4>hC|jR`mcD_b7?pqgS%bacj9@ zge+u+(J-#EtN42^folEz$J!fPhpfdVjb&Qtb2LKz{qyU7Z&l__iTiD6SjWmWjJK0- zCr$I*9?yK<-Dn?j(m-Q0XK?N(?n{28O7Ue=3DtUS zz8mz6>|NV3acd}WF?L%e9K2G0FQ{F_Ecm-^;l^btaI59oMO>(M+Fc`iPtYiEtDUWO z$!~ctmHI|?-CbkF$9=3DbUG0}gNqVYJ|B}DX&ag9-q{`aZ*fEAypfHMn4xgt7*F*YoE z8Q%-q3#0XTYTSG7AO8uSdAI$^%Gd1^e{CtL5V)tERpa9(Exo7$}ef`$x|2%4;rOQ9c_Ndgx~!~$?ZT;n`I zWk^iq=3Dhy^i0vkufl+Xm@Oh7pkAu-V#j!kl=3D>_L(dQ$mx12`FbGB&Mu_c_pwsPl_`o zG$oj_^9WU)X-#LEGbJ=3DFn6mQ-Rh=3D14XNEH+G^6W8sOp^4bk1oy=3DX9M2Rh_1$)6{gD zx=3Dw_uPP~DXk)GFd&g(i6syZ!Ar=3D{t%be#xQomow1R@0f)bs|)C;$5iRPg~Pz>pBst zI&+%NoTf9U>qMyPT+nnbXgU{kod{K(i<-_wP3NMn6QQcp(R4bRPDj^?P}P~&bmldk zd0i($RcArdSiBQ#f zOw)Nx(|JtSiBQ#vF9|$-@;$Vo>0HruB2;xA*K{7&bRO4rB2;yr;LJ+=3DCOpBJ)%az1 zLNMJ2Au+ueds1Vb)R-rACPI~YN@JeVn5T3mLX~-1W1iNSr*$SmmHCLqd_-eDqB9Yy z%rl%RUFHmD%6I%3!IUp2Z%2?G^a&V+#~P%=3D;f zu&LjgxD0RX>1(q{mpbC@>R6seC3>2Z%2?G^a&V+#~P%=3D;f=3D3{*fllMEE0)CmI> zSk8ojDo`>|0p(0GP=3Drz^3{+q_69%e4$v_2^Gs!>^N}VuJf#pmXr~)Me6;RG314Srx z!axOM_lrzad z5lWpfP=3DV!47^ngz0~JutBm+e#b;3XemNQ|X3X}{~Ksl2P6rt1!0~J`#gn=3DqhGEf2K zOfpb}QYQ>lU^x>8szAv=3D1(Y+%KoLrvFi=3DE_fg(~36rpOM2o(cWm@rUrJ|DqSSTCWL;la|0sTXICqsWK z{hL31DoOvP(y9incNl(mvjWH6tkS`ygJ&|Vy=3D>O#yiSJ(9hzowskMpKfYJPW*4{1_ zS>_L{Z1L&VrrVtdpj*x_SlN#=3DY@V+Ky~A!(o0Z0~6}`7>EiyVoC%RaAS)aocbd=3Dl=3D)@cw3a6JzzFxX9Om4yX(0O{JJ0c&&iFPv_PiZ&{@E zC&pkx>rc%Di%Qq*=3DH;*XaMEMlG$|lP@qP%>0;IjhLU98{gZN&_q^7upZI!-q^ zjjg<%4&NG6=3D|tPibW`)Ppr^wJ$W%JfHZ$GSJi`(&%`+(sUnNuNMBB`CQ}d>%r^Bbp zR65Z%Gu_lYSk}|w`(-MfXq%aC>bX9qr^83hR65Z%Gu_m4x}vAUm(El=3D(Wa+!PCZ!9 z-d_ybRcy6jTg6Ud&EMI0LF`U6t;-Kq{QYh%kWZXv#f^kmHm}%*jUwvC(+XRSGHyMZ~lOS3M;vOtz)>YPGGp* z_KOAptfED+^h6TSZi)|T4uzk5l{Vv%UlmSBs!U^xPGf# zUM*8M#Kuv&n0I^imlGpvxXV6t%jNR5Vl#u)`^tR((aTSz}YjKG}?75er8r zhm#jbLS!vs*?sED`r1KQY^O=3Dq!xb_nQz665{Kfh)H*h=3DV5i(4-Q@d11j3c%a8CSpX z3d5^L#I8n07_sdy*6rU8L*ug@G=3D6ym-#}Cs3&$W3#Pd8>jyVA>NEt6rjfxbhF3)nR6Wl0R%y>`8L3X`Yd*9Nunc^1!j znn?6aIU6au#3z0{r^?T=3D;!l8GWi$|nJAz`zN@?)j4)3XkaN5gart(c8zE^rNYyIU` zjwP@}fZv!7*fG3s-?t4D?FQaS_wL6`E~j%9*^m>n0^VSZNHk> z#`=3D@E!v3gTxr=3D?-Z^f0nFWi0tTefjF(MF?1dtewi?ME?fQo1P&j@YHn(=3D;}&UM$mYa7S0P5HyiC?8xH z6f!9TeaHFJgMyi|5*8Nm5IsXzNQv{a2e+ZW|787=3DD||1vS!-|MF*;9ZZ04#xcG6Co z-r~+i`ZC|zYozHe_V=3D?vxh(dKF(f|<%Fl}ccg$cg<6zZe*tEpSd3kbyPWmvO)tCru Lf)z9L%&`9h*%QBN literal 0 HcmV?d00001 diff --git a/tests/data/acpi/q35/ERST.acpierst b/tests/data/acpi/q35/ERST.a= cpierst index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f24fadd345c798ee5c17cdb66e0= e1703bd1b2f26 100644 GIT binary patch literal 912 zcmaKpOAdlC6h#XZC=3Dfn#CoF*_7>J28jW}>wF2KFG3zs9lTPTnl;U#=3D7r>E_sr(1u2 z21