Re: [PATCH v1 09/12] fpga: expose sec-mgr update size
From: Tom Rix
Date: Sun Sep 06 2020 - 12:39:37 EST
On 9/4/20 4:53 PM, Russ Weight wrote:
> Extend the Intel 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 <russell.h.weight@xxxxxxxxx>
> Reviewed-by: Wu Hao <hao.wu@xxxxxxxxx>
> ---
> Documentation/ABI/testing/sysfs-class-ifpga-sec-mgr | 11 +++++++++++
> drivers/fpga/ifpga-sec-mgr.c | 10 ++++++++++
> 2 files changed, 21 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-class-ifpga-sec-mgr b/Documentation/ABI/testing/sysfs-class-ifpga-sec-mgr
> index e7b1b02bf7ee..cf1967f1b3e3 100644
> --- a/Documentation/ABI/testing/sysfs-class-ifpga-sec-mgr
> +++ b/Documentation/ABI/testing/sysfs-class-ifpga-sec-mgr
> @@ -98,6 +98,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/ifpga_sec_mgr/ifpga_secX/update/remaining_size
> +Date: Sep 2020
> +KernelVersion: 5.10
> +Contact: Russ Weight <russell.h.weight@xxxxxxxxx>
> +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/ifpga_sec_mgr/ifpga_secX/update/error
> Date: Sep 2020
> KernelVersion: 5.10
> diff --git a/drivers/fpga/ifpga-sec-mgr.c b/drivers/fpga/ifpga-sec-mgr.c
> index a7718bd8ee61..4ca5d13e5656 100644
> --- a/drivers/fpga/ifpga-sec-mgr.c
> +++ b/drivers/fpga/ifpga-sec-mgr.c
> @@ -325,6 +325,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 ifpga_sec_mgr *imgr = to_sec_mgr(dev);
> +
> + return sprintf(buf, "%u\n", imgr->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)
> {
> @@ -364,6 +373,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,
> };
>
Looks fine.
Reviewed-by: Tom Rix <trix@xxxxxxxxxx>