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