From patchwork Thu Mar 2 07:13:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuppuswamy Sathyanarayanan X-Patchwork-Id: 63257 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp4092867wrd; Wed, 1 Mar 2023 23:20:17 -0800 (PST) X-Google-Smtp-Source: AK7set8LqwE9mmRV4LSmoW6bIpg8KNrnvBYqRaKo4fnLPnteuC6qcIhmQLRZx3KnW92Qj0fbtCWM X-Received: by 2002:a05:6a20:158b:b0:cc:3f87:a80c with SMTP id h11-20020a056a20158b00b000cc3f87a80cmr12661534pzj.3.1677741617521; Wed, 01 Mar 2023 23:20:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677741617; cv=none; d=google.com; s=arc-20160816; b=JYECW8rBzpeKUNOUXUn5nF3Mk3Gu17cMV8DkBceaTx9byWSvQaeEXQl8i8DzSQRebL I3Jeqqo/g1pjXWvOCLGT8YkbURGDkEHv9JPkGSUv8+cLV2xSBf/vSMt10+56WKqCrTvv efS7T39d543fzh0Yj5UzedX7//JwBVG24/9fmAUeX8lD8mgIxmH0MEKV5wm+TLNIq6/n FYsYB//kLgIpT38KjgWcHT5+uIHQsZ8yjKGsWKH/N88T9/xVWUFXpJo73M27JVQnVR5A RcT52p2DuFwj0Z1d/DEaeADQFdTdvhCY7cP6T7HjCa6RxI0Sjgot1nAN1XLTedwIHNx4 2Wyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=KHEDy56/+EVtcj1PV9Jd1PNMprJgeTDAGb24wzb1SB0=; b=BCz/fgUIwLDzf61WT6l4VYkrMFSVlGOpDOPflyFRSLO50Eu21O04gNoezMfyIBuTv3 z8MQ/YjMK8k74yP488QGkPv9xXeigXRbxVhZ2/lrNnBV5lBh8vGGlci/gISh6i8bzaW4 n+1QYGeEbW0NjvTqqzeHgRWeQUCHSAa7sojg8XaFdkFJ3RhGTrALoN73KIh2TBjSQjtK A79Qs3a7sT5BkKNX7YTKhcn4v8yybwn8UPP5vp7nidu6tYOhrqP27+ggQFSK134GNe79 cYODrfVvX8LTCQkBukPyMtnTrHJpMtbOgLd4XSfOEyoZQudAqMKyS84UiGAgtCl8Z3Em Ud9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QM8M5rYO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 6-20020a630106000000b00502d65e848asi14879787pgb.466.2023.03.01.23.20.02; Wed, 01 Mar 2023 23:20:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QM8M5rYO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229951AbjCBHN5 (ORCPT + 99 others); Thu, 2 Mar 2023 02:13:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229937AbjCBHNt (ORCPT ); Thu, 2 Mar 2023 02:13:49 -0500 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 739D01CACC; Wed, 1 Mar 2023 23:13:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677741227; x=1709277227; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=UdkTPsx3MTqmp7pHb8Bec5X8LW5Hn5DgBrG6bqKjGQw=; b=QM8M5rYOtgCNJiTyQSYgNvBHyvz7bqT4plRtJ4NkdcYDOSafLP9xMAog WGrZXZAkIbMMgKodRAAolFDIHsdzms0Qf6Pf7zQC9t6wW8BB2Jsooo4Q4 9HX9R3xrCbEdUVpMMgruCih4WyaJXqW3Qe1fMps5WMW38IVWXdfNDhZws zz6hmJyf9YjGJnrgu4Dzle3+SpRWobDjvNEPUfj05tqU+CSBIQ+0+36Or JxZgKYbmw45r7s5H7TT/vs0tFlVkvibfeuwwmDh3Dwny2OCMmGN+CbT0n T5uysc9TjU/zowM98FCrS2yjWGF/GzOfBMinfa8uKlfpG3vuqIdyOxQLc Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10636"; a="336937207" X-IronPort-AV: E=Sophos;i="5.98,226,1673942400"; d="scan'208";a="336937207" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2023 23:13:46 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10636"; a="1003999093" X-IronPort-AV: E=Sophos;i="5.98,226,1673942400"; d="scan'208";a="1003999093" Received: from htchen-mobl2.amr.corp.intel.com (HELO skuppusw-desk1.amr.corp.intel.com) ([10.212.212.13]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2023 23:13:46 -0800 From: Kuppuswamy Sathyanarayanan To: Rafael J Wysocki Cc: Len Brown , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Kuppuswamy Sathyanarayanan Subject: [PATCH v1] ACPI: sysfs: Enable ACPI sysfs support for CCEL records Date: Wed, 1 Mar 2023 23:13:27 -0800 Message-Id: <20230302071327.557734-1-sathyanarayanan.kuppuswamy@linux.intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759239594199310721?= X-GMAIL-MSGID: =?utf-8?q?1759239594199310721?= The Confidential Computing Event Log (CCEL) table provides the address and length of the CCEL records area in UEFI reserved memory. To access these records, userspace can use /dev/mem to retrieve them. But '/dev/mem' is not enabled on many systems for security reasons. So to allow user space access these event log records without the /dev/mem interface, add support to access it via sysfs interface. The ACPI driver has provided read only access to BERT records area via '/sys/firmware/acpi/tables/data/BERT' in sysfs. So follow the same way, and add support for /sys/firmware/acpi/tables/data/CCEL to enable read-only access to the CCEL recorids area. More details about the CCEL table can be found in ACPI specification r6.5, sec titled "CC Event Log ACPI Table". Original-patch-by: Haibo Xu [Original patch is for TDEL table, modified it for CCEL support] Signed-off-by: Kuppuswamy Sathyanarayanan --- drivers/acpi/sysfs.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c index 7db3b530279b..afeac925b31b 100644 --- a/drivers/acpi/sysfs.c +++ b/drivers/acpi/sysfs.c @@ -458,11 +458,28 @@ static int acpi_bert_data_init(void *th, struct acpi_data_attr *data_attr) return sysfs_create_bin_file(tables_data_kobj, &data_attr->attr); } +static int acpi_ccel_data_init(void *th, struct acpi_data_attr *data_attr) +{ + struct acpi_table_ccel *ccel = th; + + if (ccel->header.length < sizeof(struct acpi_table_ccel) || + !(ccel->log_area_start_address) || !(ccel->log_area_minimum_length)) { + kfree(data_attr); + return -EINVAL; + } + data_attr->addr = ccel->log_area_start_address; + data_attr->attr.size = ccel->log_area_minimum_length; + data_attr->attr.attr.name = "CCEL"; + + return sysfs_create_bin_file(tables_data_kobj, &data_attr->attr); +} + static struct acpi_data_obj { char *name; int (*fn)(void *, struct acpi_data_attr *); } acpi_data_objs[] = { { ACPI_SIG_BERT, acpi_bert_data_init }, + { ACPI_SIG_CCEL, acpi_ccel_data_init }, }; #define NUM_ACPI_DATA_OBJS ARRAY_SIZE(acpi_data_objs)