1Please note that attributes that are shared between devices are stored in
2the directory pointed to by the symlink device/.
3For example, the real path of the attribute /sys/class/cxl/afu0.0s/irqs_max is
4/sys/class/cxl/afu0.0s/device/irqs_max, i.e. /sys/class/cxl/afu0.0/irqs_max.
5
6
7Slave contexts (eg. /sys/class/cxl/afu0.0s):
8
9What:           /sys/class/cxl/<afu>/afu_err_buf
10Date:           September 2014
11Contact:        linuxppc-dev@lists.ozlabs.org
12Description:    read only
13                AFU Error Buffer contents. The contents of this file are
14		application specific and depends on the AFU being used.
15		Applications interacting with the AFU can use this attribute
16		to know about the current error condition and take appropriate
17		action like logging the event etc.
18
19
20What:           /sys/class/cxl/<afu>/irqs_max
21Date:           September 2014
22Contact:        linuxppc-dev@lists.ozlabs.org
23Description:    read/write
24                Decimal value of maximum number of interrupts that can be
25                requested by userspace.  The default on probe is the maximum
26                that hardware can support (eg. 2037). Write values will limit
27                userspace applications to that many userspace interrupts. Must
28                be >= irqs_min.
29Users:		https://github.com/ibm-capi/libcxl
30
31What:           /sys/class/cxl/<afu>/irqs_min
32Date:           September 2014
33Contact:        linuxppc-dev@lists.ozlabs.org
34Description:    read only
35                Decimal value of the minimum number of interrupts that
36                userspace must request on a CXL_START_WORK ioctl. Userspace may
37                omit the num_interrupts field in the START_WORK IOCTL to get
38                this minimum automatically.
39Users:		https://github.com/ibm-capi/libcxl
40
41What:           /sys/class/cxl/<afu>/mmio_size
42Date:           September 2014
43Contact:        linuxppc-dev@lists.ozlabs.org
44Description:    read only
45                Decimal value of the size of the MMIO space that may be mmaped
46                by userspace.
47Users:		https://github.com/ibm-capi/libcxl
48
49What:           /sys/class/cxl/<afu>/modes_supported
50Date:           September 2014
51Contact:        linuxppc-dev@lists.ozlabs.org
52Description:    read only
53                List of the modes this AFU supports. One per line.
54                Valid entries are: "dedicated_process" and "afu_directed"
55Users:		https://github.com/ibm-capi/libcxl
56
57What:           /sys/class/cxl/<afu>/mode
58Date:           September 2014
59Contact:        linuxppc-dev@lists.ozlabs.org
60Description:    read/write
61                The current mode the AFU is using. Will be one of the modes
62                given in modes_supported. Writing will change the mode
63                provided that no user contexts are attached.
64Users:		https://github.com/ibm-capi/libcxl
65
66
67What:           /sys/class/cxl/<afu>/prefault_mode
68Date:           September 2014
69Contact:        linuxppc-dev@lists.ozlabs.org
70Description:    read/write
71                Set the mode for prefaulting in segments into the segment table
72                when performing the START_WORK ioctl. Only applicable when
73                running under hashed page table mmu.
74                Possible values:
75
76                =======================  ======================================
77		none			 No prefaulting (default)
78		work_element_descriptor  Treat the work element
79					 descriptor as an effective address and
80					 prefault what it points to.
81                all			 all segments process calling
82					 START_WORK maps.
83                =======================  ======================================
84
85Users:		https://github.com/ibm-capi/libcxl
86
87What:           /sys/class/cxl/<afu>/reset
88Date:           September 2014
89Contact:        linuxppc-dev@lists.ozlabs.org
90Description:    write only
91                Writing 1 here will reset the AFU provided there are not
92                contexts active on the AFU.
93Users:		https://github.com/ibm-capi/libcxl
94
95What:           /sys/class/cxl/<afu>/api_version
96Date:           September 2014
97Contact:        linuxppc-dev@lists.ozlabs.org
98Description:    read only
99                Decimal value of the current version of the kernel/user API.
100Users:		https://github.com/ibm-capi/libcxl
101
102What:           /sys/class/cxl/<afu>/api_version_compatible
103Date:           September 2014
104Contact:        linuxppc-dev@lists.ozlabs.org
105Description:    read only
106                Decimal value of the lowest version of the userspace API
107                this kernel supports.
108Users:		https://github.com/ibm-capi/libcxl
109
110
111AFU configuration records (eg. /sys/class/cxl/afu0.0/cr0):
112
113An AFU may optionally export one or more PCIe like configuration records, known
114as AFU configuration records, which will show up here (if present).
115
116What:           /sys/class/cxl/<afu>/cr<config num>/vendor
117Date:           February 2015
118Contact:        linuxppc-dev@lists.ozlabs.org
119Description:    read only
120		Hexadecimal value of the vendor ID found in this AFU
121		configuration record.
122Users:		https://github.com/ibm-capi/libcxl
123
124What:           /sys/class/cxl/<afu>/cr<config num>/device
125Date:           February 2015
126Contact:        linuxppc-dev@lists.ozlabs.org
127Description:    read only
128		Hexadecimal value of the device ID found in this AFU
129		configuration record.
130Users:		https://github.com/ibm-capi/libcxl
131
132What:           /sys/class/cxl/<afu>/cr<config num>/class
133Date:           February 2015
134Contact:        linuxppc-dev@lists.ozlabs.org
135Description:    read only
136		Hexadecimal value of the class code found in this AFU
137		configuration record.
138Users:		https://github.com/ibm-capi/libcxl
139
140What:           /sys/class/cxl/<afu>/cr<config num>/config
141Date:           February 2015
142Contact:        linuxppc-dev@lists.ozlabs.org
143Description:    read only
144		This binary file provides raw access to the AFU configuration
145		record. The format is expected to match the either the standard
146		or extended configuration space defined by the PCIe
147		specification.
148Users:		https://github.com/ibm-capi/libcxl
149
150
151
152Master contexts (eg. /sys/class/cxl/afu0.0m)
153
154What:           /sys/class/cxl/<afu>m/mmio_size
155Date:           September 2014
156Contact:        linuxppc-dev@lists.ozlabs.org
157Description:    read only
158                Decimal value of the size of the MMIO space that may be mmaped
159                by userspace. This includes all slave contexts space also.
160Users:		https://github.com/ibm-capi/libcxl
161
162What:           /sys/class/cxl/<afu>m/pp_mmio_len
163Date:           September 2014
164Contact:        linuxppc-dev@lists.ozlabs.org
165Description:    read only
166                Decimal value of the Per Process MMIO space length.
167Users:		https://github.com/ibm-capi/libcxl
168
169What:           /sys/class/cxl/<afu>m/pp_mmio_off
170Date:           September 2014
171Contact:        linuxppc-dev@lists.ozlabs.org
172Description:    read only
173                (not in a guest)
174                Decimal value of the Per Process MMIO space offset.
175Users:		https://github.com/ibm-capi/libcxl
176
177
178Card info (eg. /sys/class/cxl/card0)
179
180What:           /sys/class/cxl/<card>/caia_version
181Date:           September 2014
182Contact:        linuxppc-dev@lists.ozlabs.org
183Description:    read only
184                Identifies the CAIA Version the card implements.
185Users:		https://github.com/ibm-capi/libcxl
186
187What:           /sys/class/cxl/<card>/psl_revision
188Date:           September 2014
189Contact:        linuxppc-dev@lists.ozlabs.org
190Description:    read only
191                Identifies the revision level of the PSL.
192Users:		https://github.com/ibm-capi/libcxl
193
194What:           /sys/class/cxl/<card>/base_image
195Date:           September 2014
196Contact:        linuxppc-dev@lists.ozlabs.org
197Description:    read only
198                (not in a guest)
199                Identifies the revision level of the base image for devices
200                that support loadable PSLs. For FPGAs this field identifies
201                the image contained in the on-adapter flash which is loaded
202                during the initial program load.
203Users:		https://github.com/ibm-capi/libcxl
204
205What:           /sys/class/cxl/<card>/image_loaded
206Date:           September 2014
207Contact:        linuxppc-dev@lists.ozlabs.org
208Description:    read only
209                (not in a guest)
210                Will return "user" or "factory" depending on the image loaded
211                onto the card.
212Users:		https://github.com/ibm-capi/libcxl
213
214What:           /sys/class/cxl/<card>/load_image_on_perst
215Date:           December 2014
216Contact:        linuxppc-dev@lists.ozlabs.org
217Description:    read/write
218                (not in a guest)
219                Valid entries are "none", "user", and "factory".
220                "none" means PERST will not cause image to be loaded to the
221                card.  A power cycle is required to load the image.
222                "none" could be useful for debugging because the trace arrays
223                are preserved.
224
225                "user" and "factory" means PERST will cause either the user or
226                user or factory image to be loaded.
227                Default is to reload on PERST whichever image the card has
228                loaded.
229Users:		https://github.com/ibm-capi/libcxl
230
231What:           /sys/class/cxl/<card>/reset
232Date:           October 2014
233Contact:        linuxppc-dev@lists.ozlabs.org
234Description:    write only
235                Writing 1 will issue a PERST to card provided there are no
236                contexts active on any one of the card AFUs. This may cause
237                the card to reload the FPGA depending on load_image_on_perst.
238                Writing -1 will do a force PERST irrespective of any active
239                contexts on the card AFUs.
240Users:		https://github.com/ibm-capi/libcxl
241
242What:		/sys/class/cxl/<card>/perst_reloads_same_image
243Date:		July 2015
244Contact:	linuxppc-dev@lists.ozlabs.org
245Description:	read/write
246                (not in a guest)
247		Trust that when an image is reloaded via PERST, it will not
248		have changed.
249
250		==  =================================================
251		0   don't trust, the image may be different (default)
252		1   trust that the image will not change.
253		==  =================================================
254Users:		https://github.com/ibm-capi/libcxl
255
256What:           /sys/class/cxl/<card>/psl_timebase_synced
257Date:           March 2016
258Contact:        linuxppc-dev@lists.ozlabs.org
259Description:    read only
260                Returns 1 if the psl timebase register is synchronized
261                with the core timebase register, 0 otherwise.
262Users:          https://github.com/ibm-capi/libcxl
263
264What:           /sys/class/cxl/<card>/tunneled_ops_supported
265Date:           May 2018
266Contact:        linuxppc-dev@lists.ozlabs.org
267Description:    read only
268                Returns 1 if tunneled operations are supported in capi mode,
269                0 otherwise.
270Users:          https://github.com/ibm-capi/libcxl
271