Message ID | 20200904235305.6254-10-russell.h.weight@intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Intel FPGA Security Manager Class Driver | expand |
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@intel.com> > Reviewed-by: Wu Hao <hao.wu@intel.com> > --- > 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@intel.com> > +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@redhat.com>
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@intel.com> +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, };