Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp3076951pxy; Mon, 3 May 2021 14:39:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw6nz0sUfS6nH4YH61/vmOTVB2I1qBh6/SUE2mJrfHRkZjc3jtVgFlfxRVCPwwpNKFSzh+j X-Received: by 2002:a05:6402:1004:: with SMTP id c4mr22302585edu.364.1620077984466; Mon, 03 May 2021 14:39:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620077984; cv=none; d=google.com; s=arc-20160816; b=KS361MeQ/s9Gc3qWnxeYPrvM9cOxzseGkjjs/BD7walIMlZzEAH6akQgmppWsEQpJj WXTc2XVVQYbRj0Gf201yhH9O6FG8ed5WYEh/jM5rn3Ys9GgDSSVYIYayJKA6bJtikzOt my6bY0C4A2fHd24z5sx3KmRTDgSPfW1Ye1C9OcOM027hQoB8IsILQ0e7BcIgCZ3k5mo8 0iEuluFVESwNYYhng/AY0bgsCijeWUSFBICs7C++FCfzVBkFN6ctYaszpJqciYx1pbn7 YEBvEFPCeLQPwYGcLeAbiyMfN6up6Z1gDzKgJOhsxEoTIwcp7JOF/fI331LLdrIRAohV grog== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=z7E+e/UklBLM1UQJsH+5Cummh9A0scKG/+eg9A8uCXc=; b=yxZM4f2FniPiEgzOn9tTfvICvPG0TJEIB6W1crwHa4c6LH7KiZvr6vUzjnF7xbgK8F q/wp0vTFnfyTuljbbmfONQpZE3dTIWOv1Cuq2EkT/lGRwOZDOMpmLkBMqRsctamox7jp z5lIrCUPbhGftNqpQTVfhWM/n20EZr8dtwHaL6c0gIp04HBuyYI0zSutpbfv0fRNRoic tl4OiWx5A3s6OVHf2vE6T0oyChirF1ag0jlK8zbEY5SYRnD0pK7r0ZpUEHYR9XiIMojK hWzcEVJby2n4rINEmvI17wHh2upX1ZCRhfNuzZroPBjOSUpedwFiyHHqmjdRaTpD4F3b Xl2w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q1si1026592ejy.298.2021.05.03.14.39.20; Mon, 03 May 2021 14:39:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229897AbhECVhC (ORCPT + 99 others); Mon, 3 May 2021 17:37:02 -0400 Received: from mga18.intel.com ([134.134.136.126]:6730 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229576AbhECVgy (ORCPT ); Mon, 3 May 2021 17:36:54 -0400 IronPort-SDR: 2IRwDfd+9Tc8raynmHLLG8xc4R5+6Q7QFkhYDMQX1bQvA8WHMU5awH88Hr002KfvENN7tJjTnh M3ClG0lxQNyg== X-IronPort-AV: E=McAfee;i="6200,9189,9973"; a="185312173" X-IronPort-AV: E=Sophos;i="5.82,271,1613462400"; d="scan'208";a="185312173" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:35:58 -0700 IronPort-SDR: qLLTUm4AbammiaqPkIcmk+jHV/e4alvBru1V2MHdIE1bVZyfk7kZlC0tuP7N5TRrfnbz/Mg1Gv 8AHFoxfzkdmw== X-IronPort-AV: E=Sophos;i="5.82,271,1613462400"; d="scan'208";a="428548818" Received: from rhweight-mobl2.amr.corp.intel.com (HELO rhweight-mobl2.ra.intel.com) ([10.212.218.202]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:35:58 -0700 From: Russ Weight To: mdf@kernel.org, linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org Cc: trix@redhat.com, lgoncalv@redhat.com, yilun.xu@intel.com, hao.wu@intel.com, matthew.gerlach@intel.com, richard.gong@intel.com, Russ Weight Subject: [PATCH v12 5/7] fpga: sec-mgr: expose sec-mgr update size Date: Mon, 3 May 2021 14:35:44 -0700 Message-Id: <20210503213546.316439-6-russell.h.weight@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210503213546.316439-1-russell.h.weight@intel.com> References: <20210503213546.316439-1-russell.h.weight@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Extend the FPGA Security Manager class driver to include an update/remaining_size sysfs node that can be read to determine how much data remains to be transferred to the secure update engine. This file can be used to monitor progress during the "writing" phase of an update. Signed-off-by: Russ Weight Reviewed-by: Tom Rix --- v12: - Updated Date and KernelVersion fields in ABI documentation v11: - No change v10: - Rebased to 5.12-rc2 next - Updated Date and KernelVersion in ABI documentation v9: - Updated Date and KernelVersion in ABI documentation v8: - No change v7: - Changed Date in documentation file to December 2020 v6: - No change v5: - Use new function sysfs_emit() in the remaining_size_show() function v4: - Changed from "Intel FPGA Security Manager" to FPGA Security Manager" and removed unnecessary references to "Intel". - Changed: imgr -> smgr, ifpga_ to fpga_ v3: - No change v2: - Bumped documentation date and version --- Documentation/ABI/testing/sysfs-class-fpga-sec-mgr | 11 +++++++++++ drivers/fpga/fpga-sec-mgr.c | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-class-fpga-sec-mgr b/Documentation/ABI/testing/sysfs-class-fpga-sec-mgr index 24890d04521f..c5d0b9d7c7e4 100644 --- a/Documentation/ABI/testing/sysfs-class-fpga-sec-mgr +++ b/Documentation/ABI/testing/sysfs-class-fpga-sec-mgr @@ -28,6 +28,17 @@ Description: Read-only. Returns a string describing the current as it will be signaled by sysfs_notify() on each state change. +What: /sys/class/fpga_sec_mgr/fpga_secX/update/remaining_size +Date: June 2021 +KernelVersion: 5.14 +Contact: Russ Weight +Description: Read-only. Returns the size of data that remains to + be written to the secure update engine. The size + value is initialized to the full size of the file + image and the value is updated periodically during + the "writing" phase of the update. + Format: "%u". + What: /sys/class/fpga_sec_mgr/fpga_secX/update/error Date: June 2021 KernelVersion: 5.14 diff --git a/drivers/fpga/fpga-sec-mgr.c b/drivers/fpga/fpga-sec-mgr.c index e43fa2797d27..2487042ace82 100644 --- a/drivers/fpga/fpga-sec-mgr.c +++ b/drivers/fpga/fpga-sec-mgr.c @@ -198,6 +198,15 @@ error_show(struct device *dev, struct device_attribute *attr, char *buf) } static DEVICE_ATTR_RO(error); +static ssize_t remaining_size_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct fpga_sec_mgr *smgr = to_sec_mgr(dev); + + return sysfs_emit(buf, "%u\n", smgr->remaining_size); +} +static DEVICE_ATTR_RO(remaining_size); + static ssize_t filename_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { @@ -234,6 +243,7 @@ static struct attribute *sec_mgr_update_attrs[] = { &dev_attr_filename.attr, &dev_attr_status.attr, &dev_attr_error.attr, + &dev_attr_remaining_size.attr, NULL, }; -- 2.25.1