0001 What: /sys/devices/platform/firmware\:zynqmp-firmware/ggs*
0002 Date: March 2020
0003 KernelVersion: 5.6
0004 Contact: "Jolly Shah" <jollys@xilinx.com>
0005 Description:
0006 Read/Write PMU global general storage register value,
0007 GLOBAL_GEN_STORAGE{0:3}.
0008 Global general storage register that can be used
0009 by system to pass information between masters.
0010
0011 The register is reset during system or power-on
0012 resets. Three registers are used by the FSBL and
0013 other Xilinx software products: GLOBAL_GEN_STORAGE{4:6}.
0014
0015 Usage::
0016
0017 # cat /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
0018 # echo <value> > /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
0019
0020 Example::
0021
0022 # cat /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
0023 # echo 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/ggs0
0024
0025 Users: Xilinx
0026
0027 What: /sys/devices/platform/firmware\:zynqmp-firmware/pggs*
0028 Date: March 2020
0029 KernelVersion: 5.6
0030 Contact: "Jolly Shah" <jollys@xilinx.com>
0031 Description:
0032 Read/Write PMU persistent global general storage register
0033 value, PERS_GLOB_GEN_STORAGE{0:3}.
0034 Persistent global general storage register that
0035 can be used by system to pass information between
0036 masters.
0037
0038 This register is only reset by the power-on reset
0039 and maintains its value through a system reset.
0040 Four registers are used by the FSBL and other Xilinx
0041 software products: PERS_GLOB_GEN_STORAGE{4:7}.
0042 Register is reset only by a POR reset.
0043
0044 Usage::
0045
0046 # cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
0047 # echo <value> > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
0048
0049 Example::
0050
0051 # cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
0052 # echo 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0
0053
0054 Users: Xilinx
0055
0056 What: /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
0057 Date: March 2020
0058 KernelVersion: 5.6
0059 Contact: "Jolly Shah" <jollys@xilinx.com>
0060 Description:
0061 This sysfs interface allows to set the shutdown scope for the
0062 next shutdown request. When the next shutdown is performed, the
0063 platform specific portion of PSCI-system_off can use the chosen
0064 shutdown scope.
0065
0066 Following are available shutdown scopes(subtypes):
0067
0068 subsystem:
0069 Only the APU along with all of its peripherals
0070 not used by other processing units will be
0071 shut down. This may result in the FPD power
0072 domain being shut down provided that no other
0073 processing unit uses FPD peripherals or DRAM.
0074 ps_only:
0075 The complete PS will be shut down, including the
0076 RPU, PMU, etc. Only the PL domain (FPGA)
0077 remains untouched.
0078 system:
0079 The complete system/device is shut down.
0080
0081 Usage::
0082
0083 # cat /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
0084 # echo <scope> > /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
0085
0086 Example::
0087
0088 # cat /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
0089 # echo "subsystem" > /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope
0090
0091 Users: Xilinx
0092
0093 What: /sys/devices/platform/firmware\:zynqmp-firmware/health_status
0094 Date: March 2020
0095 KernelVersion: 5.6
0096 Contact: "Jolly Shah" <jollys@xilinx.com>
0097 Description:
0098 This sysfs interface allows to set the health status. If PMUFW
0099 is compiled with CHECK_HEALTHY_BOOT, it will check the healthy
0100 bit on FPD WDT expiration. If healthy bit is set by a user
0101 application running in Linux, PMUFW will do APU only restart. If
0102 healthy bit is not set during FPD WDT expiration, PMUFW will do
0103 system restart.
0104
0105 Usage:
0106
0107 Set healthy bit::
0108
0109 # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status
0110
0111 Unset healthy bit::
0112
0113 # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status
0114
0115 Users: Xilinx
0116
0117 What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0118 Date: Feb 2022
0119 KernelVersion: 5.18
0120 Contact: "Ronak Jain" <ronak.jain@xilinx.com>
0121 Description:
0122 This sysfs interface allows user to configure features at
0123 runtime. The user can enable or disable features running at
0124 firmware as well as the user can configure the parameters of
0125 the features at runtime. The supported features are over
0126 temperature and external watchdog. Here, the external watchdog
0127 is completely different than the /dev/watchdog as the external
0128 watchdog is running on the firmware and it is used to monitor
0129 the health of firmware not APU(Linux). Also, the external
0130 watchdog is interfaced outside of the zynqmp soc.
0131
0132 The supported config ids are for the feature configuration is,
0133 1. PM_FEATURE_OVERTEMP_STATUS = 1, the user can enable or
0134 disable the over temperature feature.
0135 2. PM_FEATURE_OVERTEMP_VALUE = 2, the user can configure the
0136 over temperature limit in Degree Celsius.
0137 3. PM_FEATURE_EXTWDT_STATUS = 3, the user can enable or disable
0138 the external watchdog feature.
0139 4. PM_FEATURE_EXTWDT_VALUE = 4, the user can configure the
0140 external watchdog feature.
0141
0142 Usage:
0143
0144 Select over temperature config ID to enable/disable feature
0145 # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0146
0147 Check over temperature config ID is selected or not
0148 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0149 The expected result is 1.
0150
0151 Select over temperature config ID to configure OT limit
0152 # echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0153
0154 Check over temperature config ID is selected or not
0155 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0156 The expected result is 2.
0157
0158 Select external watchdog config ID to enable/disable feature
0159 # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0160
0161 Check external watchdog config ID is selected or not
0162 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0163 The expected result is 3.
0164
0165 Select external watchdog config ID to configure time interval
0166 # echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0167
0168 Check external watchdog config ID is selected or not
0169 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0170 The expected result is 4.
0171
0172 Users: Xilinx
0173
0174 What: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0175 Date: Feb 2022
0176 KernelVersion: 5.18
0177 Contact: "Ronak Jain" <ronak.jain@xilinx.com>
0178 Description:
0179 This sysfs interface allows to configure features at runtime.
0180 The user can enable or disable features running at firmware.
0181 Also, the user can configure the parameters of the features
0182 at runtime. The supported features are over temperature and
0183 external watchdog. Here, the external watchdog is completely
0184 different than the /dev/watchdog as the external watchdog is
0185 running on the firmware and it is used to monitor the health
0186 of firmware not APU(Linux). Also, the external watchdog is
0187 interfaced outside of the zynqmp soc.
0188
0189 By default the features are disabled in the firmware. The user
0190 can enable features by querying appropriate config id of the
0191 features.
0192
0193 The default limit for the over temperature is 90 Degree Celsius.
0194 The default timer interval for the external watchdog is 570ms.
0195
0196 The supported config ids are for the feature configuration is,
0197 1. PM_FEATURE_OVERTEMP_STATUS = 1, the user can enable or
0198 disable the over temperature feature.
0199 2. PM_FEATURE_OVERTEMP_VALUE = 2, the user can configure the
0200 over temperature limit in Degree Celsius.
0201 3. PM_FEATURE_EXTWDT_STATUS = 3, the user can enable or disable
0202 the external watchdog feature.
0203 4. PM_FEATURE_EXTWDT_VALUE = 4, the user can configure the
0204 external watchdog feature.
0205
0206 Usage:
0207
0208 Enable over temperature feature
0209 # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0210 # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0211
0212 Check whether the over temperature feature is enabled or not
0213 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0214 The expected result is 1.
0215
0216 Disable over temperature feature
0217 # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0218 # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0219
0220 Check whether the over temperature feature is disabled or not
0221 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0222 The expected result is 0.
0223
0224 Configure over temperature limit to 50 Degree Celsius
0225 # echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0226 # echo 50 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0227
0228 Check whether the over temperature limit is configured or not
0229 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0230 The expected result is 50.
0231
0232 Enable external watchdog feature
0233 # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0234 # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0235
0236 Check whether the external watchdog feature is enabled or not
0237 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0238 The expected result is 1.
0239
0240 Disable external watchdog feature
0241 # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0242 # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0243
0244 Check whether the external watchdog feature is disabled or not
0245 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0246 The expected result is 0.
0247
0248 Configure external watchdog timer interval to 500ms
0249 # echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id
0250 # echo 500 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0251
0252 Check whether the external watchdog timer interval is configured or not
0253 # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value
0254 The expected result is 500.
0255
0256 Users: Xilinx