de85123395
Add documentation for sysfs entries like feature_config_id and feature_config_value for runtime feature configuration. The support is added for an over temperature and external watchdog features. Acked-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Ronak Jain <ronak.jain@xilinx.com> Link: https://lore.kernel.org/r/20220209082709.32378-3-ronak.jain@xilinx.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
257 lines
9.7 KiB
Plaintext
257 lines
9.7 KiB
Plaintext
What: /sys/devices/platform/firmware\:zynqmp-firmware/ggs*
|
|
Date: March 2020
|
|
KernelVersion: 5.6
|
|
Contact: "Jolly Shah" <jollys@xilinx.com>
|
|
Description:
|
|
Read/Write PMU global general storage register value,
|
|
GLOBAL_GEN_STORAGE{0:3}.
|
|
Global general storage register that can be used
|
|
by system to pass information between masters.
|
|
|
|
The register is reset during system or power-on
|
|
resets. Three registers are used by the FSBL and
|
|
other Xilinx software products: GLOBAL_GEN_STORAGE{4:6}.
|
|
|
|
Usage::
|
|
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
|
|
# echo <value> > /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
|
|
|
|
Example::
|
|
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
|
|
# echo 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
|
|
|
|
Users: Xilinx
|
|
|
|
What: /sys/devices/platform/firmware\:zynqmp-firmware/pggs*
|
|
Date: March 2020
|
|
KernelVersion: 5.6
|
|
Contact: "Jolly Shah" <jollys@xilinx.com>
|
|
Description:
|
|
Read/Write PMU persistent global general storage register
|
|
value, PERS_GLOB_GEN_STORAGE{0:3}.
|
|
Persistent global general storage register that
|
|
can be used by system to pass information between
|
|
masters.
|
|
|
|
This register is only reset by the power-on reset
|
|
and maintains its value through a system reset.
|
|
Four registers are used by the FSBL and other Xilinx
|
|
software products: PERS_GLOB_GEN_STORAGE{4:7}.
|
|
Register is reset only by a POR reset.
|
|
|
|
Usage::
|
|
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
|
|
# echo <value> > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
|
|
|
|
Example::
|
|
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
|
|
# echo 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
|
|
|
|
Users: Xilinx
|
|
|
|
What: /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
|
|
Date: March 2020
|
|
KernelVersion: 5.6
|
|
Contact: "Jolly Shah" <jollys@xilinx.com>
|
|
Description:
|
|
This sysfs interface allows to set the shutdown scope for the
|
|
next shutdown request. When the next shutdown is performed, the
|
|
platform specific portion of PSCI-system_off can use the chosen
|
|
shutdown scope.
|
|
|
|
Following are available shutdown scopes(subtypes):
|
|
|
|
subsystem:
|
|
Only the APU along with all of its peripherals
|
|
not used by other processing units will be
|
|
shut down. This may result in the FPD power
|
|
domain being shut down provided that no other
|
|
processing unit uses FPD peripherals or DRAM.
|
|
ps_only:
|
|
The complete PS will be shut down, including the
|
|
RPU, PMU, etc. Only the PL domain (FPGA)
|
|
remains untouched.
|
|
system:
|
|
The complete system/device is shut down.
|
|
|
|
Usage::
|
|
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
|
|
# echo <scope> > /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
|
|
|
|
Example::
|
|
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
|
|
# echo "subsystem" > /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
|
|
|
|
Users: Xilinx
|
|
|
|
What: /sys/devices/platform/firmware\:zynqmp-firmware/health_status
|
|
Date: March 2020
|
|
KernelVersion: 5.6
|
|
Contact: "Jolly Shah" <jollys@xilinx.com>
|
|
Description:
|
|
This sysfs interface allows to set the health status. If PMUFW
|
|
is compiled with CHECK_HEALTHY_BOOT, it will check the healthy
|
|
bit on FPD WDT expiration. If healthy bit is set by a user
|
|
application running in Linux, PMUFW will do APU only restart. If
|
|
healthy bit is not set during FPD WDT expiration, PMUFW will do
|
|
system restart.
|
|
|
|
Usage:
|
|
|
|
Set healthy bit::
|
|
|
|
# echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status
|
|
|
|
Unset healthy bit::
|
|
|
|
# echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status
|
|
|
|
Users: Xilinx
|
|
|
|
What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
Date: Feb 2022
|
|
KernelVersion: 5.18
|
|
Contact: "Ronak Jain" <ronak.jain@xilinx.com>
|
|
Description:
|
|
This sysfs interface allows user to configure features at
|
|
runtime. The user can enable or disable features running at
|
|
firmware as well as 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.
|
|
|
|
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:
|
|
|
|
Select over temperature config ID to enable/disable feature
|
|
# echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
|
|
Check over temperature config ID is selected or not
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
The expected result is 1.
|
|
|
|
Select over temperature config ID to configure OT limit
|
|
# echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
|
|
Check over temperature config ID is selected or not
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
The expected result is 2.
|
|
|
|
Select external watchdog config ID to enable/disable feature
|
|
# echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
|
|
Check external watchdog config ID is selected or not
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
The expected result is 3.
|
|
|
|
Select external watchdog config ID to configure time interval
|
|
# echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
|
|
Check external watchdog config ID is selected or not
|
|
# cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
|
|
The expected result is 4.
|
|
|
|
Users: Xilinx
|
|
|
|
What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
|
|
Date: Feb 2022
|
|
KernelVersion: 5.18
|
|
Contact: "Ronak Jain" <ronak.jain@xilinx.com>
|
|
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
|