2021-12-03 09:18:37

by Ronak Jain

[permalink] [raw]
Subject: [PATCH v3 2/3] firmware: zynqmp: Add sysfs entry for runtime features

Create sysfs entry for runtime feature configuration. The support
is added for an over temperature and external watchdog feature.

The below listed files are used for runtime features configuration:
/sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
/sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value

In order to configure an over temperature or external watchdog
features, first the user need to select the valid config id and then
the user can configure the value for selected feature config id.

Signed-off-by: Ronak Jain <[email protected]>
---
Changes in v3:
- None

Changes in v2:
- Update commit message
---
.../ABI/stable/sysfs-driver-firmware-zynqmp | 84 +++++++++++++++++++
1 file changed, 84 insertions(+)

diff --git a/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp b/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
index f5724bb5b462..2fde354715a5 100644
--- a/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
+++ b/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
@@ -113,3 +113,87 @@ Description:
# echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status

Users: Xilinx
+
+What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_*
+Date: Aug 2021
+KernelVersion: 5.14
+Contact: "Ronak Jain" <[email protected]>
+Description:
+ This sysfs interface allows to configure features at runtime.
+ The user can enable or disable features running at firmware.
+ Also, the user can configure the parameters of the features
+ at runtime. The supported features are over temperature and
+ external watchdog. Here, the external watchdog is completely
+ different than the /dev/watchdog as the external watchdog is
+ running on the firmware and it is used to monitor the health
+ of firmware not APU(Linux). Also, the external watchdog is
+ interfaced outside of the zynqmp soc.
+
+ By default the features are disabled in the firmware. The user
+ can enable features by querying appropriate config id of the
+ features.
+
+ The default limit for the over temperature is 90 Degree Celsius.
+ The default timer interval for the external watchdog is 570ms.
+
+ The supported config ids are for the feature configuration is,
+ 1. PM_FEATURE_OVERTEMP_STATUS = 1, the user can enable or
+ disable the over temperature feature.
+ 2. PM_FEATURE_OVERTEMP_VALUE = 2, the user can configure the
+ over temperature limit in Degree Celsius.
+ 3. PM_FEATURE_EXTWDT_STATUS = 3, the user can enable or disable
+ the external watchdog feature.
+ 4. PM_FEATURE_EXTWDT_VALUE = 4, the user can configure the
+ external watchdog feature.
+
+ Usage:
+
+ Enable over temperature feature
+ # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
+ # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+
+ Check whether the over temperature feature is enabled or not
+ # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+ The expected result is 1.
+
+ Disable over temperature feature
+ # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
+ # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+
+ Check whether the over temperature feature is disabled or not
+ # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+ The expected result is 0.
+
+ Configure over temperature limit to 50 Degree Celsius
+ # echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
+ # echo 50 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+
+ Check whether the over temperature limit is configured or not
+ # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+ The expected result is 50.
+
+ Enable external watchdog feature
+ # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
+ # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+
+ Check whether the external watchdog feature is enabled or not
+ # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+ The expected result is 1.
+
+ Disable external watchdog feature
+ # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
+ # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+
+ Check whether the external watchdog feature is disabled or not
+ # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+ The expected result is 0.
+
+ Configure external watchdog timer interval to 500ms
+ # echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
+ # echo 500 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+
+ Check whether the external watchdog timer interval is configured or not
+ # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
+ The expected result is 500.
+
+Users: Xilinx
--
2.32.0.93.g670b81a



2021-12-03 09:25:28

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v3 2/3] firmware: zynqmp: Add sysfs entry for runtime features

On Fri, Dec 03, 2021 at 01:18:13AM -0800, Ronak Jain wrote:
> Create sysfs entry for runtime feature configuration. The support
> is added for an over temperature and external watchdog feature.
>
> The below listed files are used for runtime features configuration:
> /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
> /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
>
> In order to configure an over temperature or external watchdog
> features, first the user need to select the valid config id and then
> the user can configure the value for selected feature config id.
>
> Signed-off-by: Ronak Jain <[email protected]>

Ah, here's the documentation.

You should say so in the Subject line, and the changelog text is not
correct, this is a documentation update.


> ---
> Changes in v3:
> - None
>
> Changes in v2:
> - Update commit message
> ---
> .../ABI/stable/sysfs-driver-firmware-zynqmp | 84 +++++++++++++++++++
> 1 file changed, 84 insertions(+)
>
> diff --git a/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp b/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> index f5724bb5b462..2fde354715a5 100644
> --- a/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> +++ b/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> @@ -113,3 +113,87 @@ Description:
> # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status
>
> Users: Xilinx
> +
> +What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_*
> +Date: Aug 2021
> +KernelVersion: 5.14

5.14?

Are these sysfs files already in the kernel tree?

And can you break this up into one entry per sysfs file?

One for the feature_config_id file and one for feature_config_value?

thanks,

greg k-h

2021-12-03 10:17:50

by Ronak Jain

[permalink] [raw]
Subject: RE: [PATCH v3 2/3] firmware: zynqmp: Add sysfs entry for runtime features

Hi Greg,

Thanks for reviewing the patch.

> -----Original Message-----
> From: Greg KH <[email protected]>
> Sent: Friday, December 3, 2021 2:55 PM
> To: Ronak Jain <[email protected]>
> Cc: Michal Simek <[email protected]>; [email protected]; Rajan
> Vaja <[email protected]>; [email protected]; linux-arm-
> [email protected]; [email protected]; Sai Krishna Potthuri
> <[email protected]>
> Subject: Re: [PATCH v3 2/3] firmware: zynqmp: Add sysfs entry for runtime
> features
>
> On Fri, Dec 03, 2021 at 01:18:13AM -0800, Ronak Jain wrote:
> > Create sysfs entry for runtime feature configuration. The support is
> > added for an over temperature and external watchdog feature.
> >
> > The below listed files are used for runtime features configuration:
> > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
> > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
> >
> > In order to configure an over temperature or external watchdog
> > features, first the user need to select the valid config id and then
> > the user can configure the value for selected feature config id.
> >
> > Signed-off-by: Ronak Jain <[email protected]>
>
> Ah, here's the documentation.
>
> You should say so in the Subject line, and the changelog text is not correct, this
> is a documentation update.
I will fix the suggested changes.

>
>
> > ---
> > Changes in v3:
> > - None
> >
> > Changes in v2:
> > - Update commit message
> > ---
> > .../ABI/stable/sysfs-driver-firmware-zynqmp | 84 +++++++++++++++++++
> > 1 file changed, 84 insertions(+)
> >
> > diff --git a/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> > b/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> > index f5724bb5b462..2fde354715a5 100644
> > --- a/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> > +++ b/Documentation/ABI/stable/sysfs-driver-firmware-zynqmp
> > @@ -113,3 +113,87 @@ Description:
> > # echo 0 >
> > /sys/devices/platform/firmware\:zynqmp-firmware/health_status
> >
> > Users: Xilinx
> > +
> > +What: /sys/devices/platform/firmware\:zynqmp-
> firmware/feature_config_*
> > +Date: Aug 2021
> > +KernelVersion: 5.14
>
> 5.14?
Will fix it.
>
> Are these sysfs files already in the kernel tree?
No
>
> And can you break this up into one entry per sysfs file?
>
> One for the feature_config_id file and one for feature_config_value?
Yes, I will make a separate documentation for the sysfs files.

Thanks,
Ronak
>
> thanks,
>
> greg k-h