1ae5c961dSRajan VajaWhat: /sys/devices/platform/firmware\:zynqmp-firmware/ggs* 2ae5c961dSRajan VajaDate: March 2020 3ae5c961dSRajan VajaKernelVersion: 5.6 4ae5c961dSRajan VajaContact: "Jolly Shah" <jollys@xilinx.com> 5ae5c961dSRajan VajaDescription: 6ae5c961dSRajan Vaja Read/Write PMU global general storage register value, 7ae5c961dSRajan Vaja GLOBAL_GEN_STORAGE{0:3}. 8ae5c961dSRajan Vaja Global general storage register that can be used 9ae5c961dSRajan Vaja by system to pass information between masters. 10ae5c961dSRajan Vaja 11ae5c961dSRajan Vaja The register is reset during system or power-on 12ae5c961dSRajan Vaja resets. Three registers are used by the FSBL and 13ae5c961dSRajan Vaja other Xilinx software products: GLOBAL_GEN_STORAGE{4:6}. 14ae5c961dSRajan Vaja 15002a9c2fSMauro Carvalho Chehab Usage:: 16002a9c2fSMauro Carvalho Chehab 17ae5c961dSRajan Vaja # cat /sys/devices/platform/firmware\:zynqmp-firmware/ggs0 18ae5c961dSRajan Vaja # echo <value> > /sys/devices/platform/firmware\:zynqmp-firmware/ggs0 19ae5c961dSRajan Vaja 20002a9c2fSMauro Carvalho Chehab Example:: 21002a9c2fSMauro Carvalho Chehab 22ae5c961dSRajan Vaja # cat /sys/devices/platform/firmware\:zynqmp-firmware/ggs0 23ae5c961dSRajan Vaja # echo 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/ggs0 24ae5c961dSRajan Vaja 25ae5c961dSRajan VajaUsers: Xilinx 26ae5c961dSRajan Vaja 27ae5c961dSRajan VajaWhat: /sys/devices/platform/firmware\:zynqmp-firmware/pggs* 28ae5c961dSRajan VajaDate: March 2020 29ae5c961dSRajan VajaKernelVersion: 5.6 30ae5c961dSRajan VajaContact: "Jolly Shah" <jollys@xilinx.com> 31ae5c961dSRajan VajaDescription: 32ae5c961dSRajan Vaja Read/Write PMU persistent global general storage register 33ae5c961dSRajan Vaja value, PERS_GLOB_GEN_STORAGE{0:3}. 34ae5c961dSRajan Vaja Persistent global general storage register that 35ae5c961dSRajan Vaja can be used by system to pass information between 36ae5c961dSRajan Vaja masters. 37ae5c961dSRajan Vaja 38ae5c961dSRajan Vaja This register is only reset by the power-on reset 39ae5c961dSRajan Vaja and maintains its value through a system reset. 40ae5c961dSRajan Vaja Four registers are used by the FSBL and other Xilinx 41ae5c961dSRajan Vaja software products: PERS_GLOB_GEN_STORAGE{4:7}. 42ae5c961dSRajan Vaja Register is reset only by a POR reset. 43ae5c961dSRajan Vaja 44002a9c2fSMauro Carvalho Chehab Usage:: 45002a9c2fSMauro Carvalho Chehab 46ae5c961dSRajan Vaja # cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0 47ae5c961dSRajan Vaja # echo <value> > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0 48ae5c961dSRajan Vaja 49002a9c2fSMauro Carvalho Chehab Example:: 50002a9c2fSMauro Carvalho Chehab 51ae5c961dSRajan Vaja # cat /sys/devices/platform/firmware\:zynqmp-firmware/pggs0 52ae5c961dSRajan Vaja # echo 0x1234ABCD > /sys/devices/platform/firmware\:zynqmp-firmware/pggs0 53ae5c961dSRajan Vaja 54ae5c961dSRajan VajaUsers: Xilinx 55b3ae24c4SRajan Vaja 56b3ae24c4SRajan VajaWhat: /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope 57b3ae24c4SRajan VajaDate: March 2020 58b3ae24c4SRajan VajaKernelVersion: 5.6 59b3ae24c4SRajan VajaContact: "Jolly Shah" <jollys@xilinx.com> 60b3ae24c4SRajan VajaDescription: 61b3ae24c4SRajan Vaja This sysfs interface allows to set the shutdown scope for the 62b3ae24c4SRajan Vaja next shutdown request. When the next shutdown is performed, the 63b3ae24c4SRajan Vaja platform specific portion of PSCI-system_off can use the chosen 64b3ae24c4SRajan Vaja shutdown scope. 65b3ae24c4SRajan Vaja 66b3ae24c4SRajan Vaja Following are available shutdown scopes(subtypes): 67b3ae24c4SRajan Vaja 68002a9c2fSMauro Carvalho Chehab subsystem: 69002a9c2fSMauro Carvalho Chehab Only the APU along with all of its peripherals 70b3ae24c4SRajan Vaja not used by other processing units will be 71b3ae24c4SRajan Vaja shut down. This may result in the FPD power 72b3ae24c4SRajan Vaja domain being shut down provided that no other 73b3ae24c4SRajan Vaja processing unit uses FPD peripherals or DRAM. 74002a9c2fSMauro Carvalho Chehab ps_only: 75002a9c2fSMauro Carvalho Chehab The complete PS will be shut down, including the 76b3ae24c4SRajan Vaja RPU, PMU, etc. Only the PL domain (FPGA) 77b3ae24c4SRajan Vaja remains untouched. 78002a9c2fSMauro Carvalho Chehab system: 79002a9c2fSMauro Carvalho Chehab The complete system/device is shut down. 80b3ae24c4SRajan Vaja 81002a9c2fSMauro Carvalho Chehab Usage:: 82002a9c2fSMauro Carvalho Chehab 83b3ae24c4SRajan Vaja # cat /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope 84b3ae24c4SRajan Vaja # echo <scope> > /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope 85b3ae24c4SRajan Vaja 86002a9c2fSMauro Carvalho Chehab Example:: 87002a9c2fSMauro Carvalho Chehab 88b3ae24c4SRajan Vaja # cat /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope 89b3ae24c4SRajan Vaja # echo "subsystem" > /sys/devices/platform/firmware\:zynqmp-firmware/shutdown_scope 90b3ae24c4SRajan Vaja 91b3ae24c4SRajan VajaUsers: Xilinx 92a2cc220aSRajan Vaja 93a2cc220aSRajan VajaWhat: /sys/devices/platform/firmware\:zynqmp-firmware/health_status 94a2cc220aSRajan VajaDate: March 2020 95a2cc220aSRajan VajaKernelVersion: 5.6 96a2cc220aSRajan VajaContact: "Jolly Shah" <jollys@xilinx.com> 97a2cc220aSRajan VajaDescription: 98a2cc220aSRajan Vaja This sysfs interface allows to set the health status. If PMUFW 99a2cc220aSRajan Vaja is compiled with CHECK_HEALTHY_BOOT, it will check the healthy 100a2cc220aSRajan Vaja bit on FPD WDT expiration. If healthy bit is set by a user 101a2cc220aSRajan Vaja application running in Linux, PMUFW will do APU only restart. If 102a2cc220aSRajan Vaja healthy bit is not set during FPD WDT expiration, PMUFW will do 103a2cc220aSRajan Vaja system restart. 104a2cc220aSRajan Vaja 105a2cc220aSRajan Vaja Usage: 106002a9c2fSMauro Carvalho Chehab 107002a9c2fSMauro Carvalho Chehab Set healthy bit:: 108002a9c2fSMauro Carvalho Chehab 109a2cc220aSRajan Vaja # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status 110a2cc220aSRajan Vaja 111002a9c2fSMauro Carvalho Chehab Unset healthy bit:: 112002a9c2fSMauro Carvalho Chehab 113a2cc220aSRajan Vaja # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/health_status 114a2cc220aSRajan Vaja 115a2cc220aSRajan VajaUsers: Xilinx 116*de851233SRonak Jain 117*de851233SRonak JainWhat: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 118*de851233SRonak JainDate: Feb 2022 119*de851233SRonak JainKernelVersion: 5.18 120*de851233SRonak JainContact: "Ronak Jain" <ronak.jain@xilinx.com> 121*de851233SRonak JainDescription: 122*de851233SRonak Jain This sysfs interface allows user to configure features at 123*de851233SRonak Jain runtime. The user can enable or disable features running at 124*de851233SRonak Jain firmware as well as the user can configure the parameters of 125*de851233SRonak Jain the features at runtime. The supported features are over 126*de851233SRonak Jain temperature and external watchdog. Here, the external watchdog 127*de851233SRonak Jain is completely different than the /dev/watchdog as the external 128*de851233SRonak Jain watchdog is running on the firmware and it is used to monitor 129*de851233SRonak Jain the health of firmware not APU(Linux). Also, the external 130*de851233SRonak Jain watchdog is interfaced outside of the zynqmp soc. 131*de851233SRonak Jain 132*de851233SRonak Jain The supported config ids are for the feature configuration is, 133*de851233SRonak Jain 1. PM_FEATURE_OVERTEMP_STATUS = 1, the user can enable or 134*de851233SRonak Jain disable the over temperature feature. 135*de851233SRonak Jain 2. PM_FEATURE_OVERTEMP_VALUE = 2, the user can configure the 136*de851233SRonak Jain over temperature limit in Degree Celsius. 137*de851233SRonak Jain 3. PM_FEATURE_EXTWDT_STATUS = 3, the user can enable or disable 138*de851233SRonak Jain the external watchdog feature. 139*de851233SRonak Jain 4. PM_FEATURE_EXTWDT_VALUE = 4, the user can configure the 140*de851233SRonak Jain external watchdog feature. 141*de851233SRonak Jain 142*de851233SRonak Jain Usage: 143*de851233SRonak Jain 144*de851233SRonak Jain Select over temperature config ID to enable/disable feature 145*de851233SRonak Jain # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 146*de851233SRonak Jain 147*de851233SRonak Jain Check over temperature config ID is selected or not 148*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 149*de851233SRonak Jain The expected result is 1. 150*de851233SRonak Jain 151*de851233SRonak Jain Select over temperature config ID to configure OT limit 152*de851233SRonak Jain # echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 153*de851233SRonak Jain 154*de851233SRonak Jain Check over temperature config ID is selected or not 155*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 156*de851233SRonak Jain The expected result is 2. 157*de851233SRonak Jain 158*de851233SRonak Jain Select external watchdog config ID to enable/disable feature 159*de851233SRonak Jain # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 160*de851233SRonak Jain 161*de851233SRonak Jain Check external watchdog config ID is selected or not 162*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 163*de851233SRonak Jain The expected result is 3. 164*de851233SRonak Jain 165*de851233SRonak Jain Select external watchdog config ID to configure time interval 166*de851233SRonak Jain # echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 167*de851233SRonak Jain 168*de851233SRonak Jain Check external watchdog config ID is selected or not 169*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 170*de851233SRonak Jain The expected result is 4. 171*de851233SRonak Jain 172*de851233SRonak JainUsers: Xilinx 173*de851233SRonak Jain 174*de851233SRonak JainWhat: /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 175*de851233SRonak JainDate: Feb 2022 176*de851233SRonak JainKernelVersion: 5.18 177*de851233SRonak JainContact: "Ronak Jain" <ronak.jain@xilinx.com> 178*de851233SRonak JainDescription: 179*de851233SRonak Jain This sysfs interface allows to configure features at runtime. 180*de851233SRonak Jain The user can enable or disable features running at firmware. 181*de851233SRonak Jain Also, the user can configure the parameters of the features 182*de851233SRonak Jain at runtime. The supported features are over temperature and 183*de851233SRonak Jain external watchdog. Here, the external watchdog is completely 184*de851233SRonak Jain different than the /dev/watchdog as the external watchdog is 185*de851233SRonak Jain running on the firmware and it is used to monitor the health 186*de851233SRonak Jain of firmware not APU(Linux). Also, the external watchdog is 187*de851233SRonak Jain interfaced outside of the zynqmp soc. 188*de851233SRonak Jain 189*de851233SRonak Jain By default the features are disabled in the firmware. The user 190*de851233SRonak Jain can enable features by querying appropriate config id of the 191*de851233SRonak Jain features. 192*de851233SRonak Jain 193*de851233SRonak Jain The default limit for the over temperature is 90 Degree Celsius. 194*de851233SRonak Jain The default timer interval for the external watchdog is 570ms. 195*de851233SRonak Jain 196*de851233SRonak Jain The supported config ids are for the feature configuration is, 197*de851233SRonak Jain 1. PM_FEATURE_OVERTEMP_STATUS = 1, the user can enable or 198*de851233SRonak Jain disable the over temperature feature. 199*de851233SRonak Jain 2. PM_FEATURE_OVERTEMP_VALUE = 2, the user can configure the 200*de851233SRonak Jain over temperature limit in Degree Celsius. 201*de851233SRonak Jain 3. PM_FEATURE_EXTWDT_STATUS = 3, the user can enable or disable 202*de851233SRonak Jain the external watchdog feature. 203*de851233SRonak Jain 4. PM_FEATURE_EXTWDT_VALUE = 4, the user can configure the 204*de851233SRonak Jain external watchdog feature. 205*de851233SRonak Jain 206*de851233SRonak Jain Usage: 207*de851233SRonak Jain 208*de851233SRonak Jain Enable over temperature feature 209*de851233SRonak Jain # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 210*de851233SRonak Jain # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 211*de851233SRonak Jain 212*de851233SRonak Jain Check whether the over temperature feature is enabled or not 213*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 214*de851233SRonak Jain The expected result is 1. 215*de851233SRonak Jain 216*de851233SRonak Jain Disable over temperature feature 217*de851233SRonak Jain # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 218*de851233SRonak Jain # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 219*de851233SRonak Jain 220*de851233SRonak Jain Check whether the over temperature feature is disabled or not 221*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 222*de851233SRonak Jain The expected result is 0. 223*de851233SRonak Jain 224*de851233SRonak Jain Configure over temperature limit to 50 Degree Celsius 225*de851233SRonak Jain # echo 2 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 226*de851233SRonak Jain # echo 50 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 227*de851233SRonak Jain 228*de851233SRonak Jain Check whether the over temperature limit is configured or not 229*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 230*de851233SRonak Jain The expected result is 50. 231*de851233SRonak Jain 232*de851233SRonak Jain Enable external watchdog feature 233*de851233SRonak Jain # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 234*de851233SRonak Jain # echo 1 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 235*de851233SRonak Jain 236*de851233SRonak Jain Check whether the external watchdog feature is enabled or not 237*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 238*de851233SRonak Jain The expected result is 1. 239*de851233SRonak Jain 240*de851233SRonak Jain Disable external watchdog feature 241*de851233SRonak Jain # echo 3 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 242*de851233SRonak Jain # echo 0 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 243*de851233SRonak Jain 244*de851233SRonak Jain Check whether the external watchdog feature is disabled or not 245*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 246*de851233SRonak Jain The expected result is 0. 247*de851233SRonak Jain 248*de851233SRonak Jain Configure external watchdog timer interval to 500ms 249*de851233SRonak Jain # echo 4 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_id 250*de851233SRonak Jain # echo 500 > /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 251*de851233SRonak Jain 252*de851233SRonak Jain Check whether the external watchdog timer interval is configured or not 253*de851233SRonak Jain # cat /sys/devices/platform/firmware\:zynqmp-firmware/feature_config_value 254*de851233SRonak Jain The expected result is 500. 255*de851233SRonak Jain 256*de851233SRonak JainUsers: Xilinx 257