Hi, On 4/5/23 15:16, Khalil Blaiech wrote: > Add a new sysfs to initiate firmware reset in isolation mode. > > Reviewed-by: David Thompson <davthompson@xxxxxxxxxx> > Signed-off-by: Khalil Blaiech <kblaiech@xxxxxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > drivers/platform/mellanox/mlxbf-bootctl.c | 19 +++++++++++++++++++ > drivers/platform/mellanox/mlxbf-bootctl.h | 6 ++++++ > 2 files changed, 25 insertions(+) > > diff --git a/drivers/platform/mellanox/mlxbf-bootctl.c b/drivers/platform/mellanox/mlxbf-bootctl.c > index 1c7a288b59a5..5e41c270195c 100644 > --- a/drivers/platform/mellanox/mlxbf-bootctl.c > +++ b/drivers/platform/mellanox/mlxbf-bootctl.c > @@ -244,11 +244,29 @@ static ssize_t secure_boot_fuse_state_show(struct device *dev, > return buf_len; > } > > +static ssize_t fw_reset_store(struct device *dev, > + struct device_attribute *attr, > + const char *buf, size_t count) > +{ > + unsigned long key; > + int err; > + > + err = kstrtoul(buf, 16, &key); > + if (err) > + return err; > + > + if (mlxbf_bootctl_smc(MLXBF_BOOTCTL_FW_RESET, key) < 0) > + return -EINVAL; > + > + return count; > +} > + > static DEVICE_ATTR_RW(post_reset_wdog); > static DEVICE_ATTR_RW(reset_action); > static DEVICE_ATTR_RW(second_reset_action); > static DEVICE_ATTR_RO(lifecycle_state); > static DEVICE_ATTR_RO(secure_boot_fuse_state); > +static DEVICE_ATTR_WO(fw_reset); > > static struct attribute *mlxbf_bootctl_attrs[] = { > &dev_attr_post_reset_wdog.attr, > @@ -256,6 +274,7 @@ static struct attribute *mlxbf_bootctl_attrs[] = { > &dev_attr_second_reset_action.attr, > &dev_attr_lifecycle_state.attr, > &dev_attr_secure_boot_fuse_state.attr, > + &dev_attr_fw_reset.attr, > NULL > }; > > diff --git a/drivers/platform/mellanox/mlxbf-bootctl.h b/drivers/platform/mellanox/mlxbf-bootctl.h > index 148fdb43b435..b48243f60a59 100644 > --- a/drivers/platform/mellanox/mlxbf-bootctl.h > +++ b/drivers/platform/mellanox/mlxbf-bootctl.h > @@ -75,6 +75,12 @@ > > #define MLXBF_BOOTCTL_GET_DIMM_INFO 0x82000008 > > +/* > + * Initiate Firmware Reset via TYU. This might be invoked during the reset > + * flow in isolation mode. > + */ > +#define MLXBF_BOOTCTL_FW_RESET 0x8200000D > + > /* SMC function IDs for SiP Service queries */ > #define MLXBF_BOOTCTL_SIP_SVC_CALL_COUNT 0x8200ff00 > #define MLXBF_BOOTCTL_SIP_SVC_UID 0x8200ff01