1Note: Attributes that are shared between devices are stored in the directory
2pointed to by the symlink device/.
3Example: 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. Possible values:
73                        none: No prefaulting (default)
74                        work_element_descriptor: Treat the work element
75                                 descriptor as an effective address and
76                                 prefault what it points to.
77                        all: all segments process calling START_WORK maps.
78Users:		https://github.com/ibm-capi/libcxl
79
80What:           /sys/class/cxl/<afu>/reset
81Date:           September 2014
82Contact:        linuxppc-dev@lists.ozlabs.org
83Description:    write only
84                Writing 1 here will reset the AFU provided there are not
85                contexts active on the AFU.
86Users:		https://github.com/ibm-capi/libcxl
87
88What:           /sys/class/cxl/<afu>/api_version
89Date:           September 2014
90Contact:        linuxppc-dev@lists.ozlabs.org
91Description:    read only
92                Decimal value of the current version of the kernel/user API.
93Users:		https://github.com/ibm-capi/libcxl
94
95What:           /sys/class/cxl/<afu>/api_version_compatible
96Date:           September 2014
97Contact:        linuxppc-dev@lists.ozlabs.org
98Description:    read only
99                Decimal value of the the lowest version of the userspace API
100                this this kernel supports.
101Users:		https://github.com/ibm-capi/libcxl
102
103
104AFU configuration records (eg. /sys/class/cxl/afu0.0/cr0):
105
106An AFU may optionally export one or more PCIe like configuration records, known
107as AFU configuration records, which will show up here (if present).
108
109What:           /sys/class/cxl/<afu>/cr<config num>/vendor
110Date:           February 2015
111Contact:        linuxppc-dev@lists.ozlabs.org
112Description:    read only
113		Hexadecimal value of the vendor ID found in this AFU
114		configuration record.
115Users:		https://github.com/ibm-capi/libcxl
116
117What:           /sys/class/cxl/<afu>/cr<config num>/device
118Date:           February 2015
119Contact:        linuxppc-dev@lists.ozlabs.org
120Description:    read only
121		Hexadecimal value of the device ID found in this AFU
122		configuration record.
123Users:		https://github.com/ibm-capi/libcxl
124
125What:           /sys/class/cxl/<afu>/cr<config num>/class
126Date:           February 2015
127Contact:        linuxppc-dev@lists.ozlabs.org
128Description:    read only
129		Hexadecimal value of the class code found in this AFU
130		configuration record.
131Users:		https://github.com/ibm-capi/libcxl
132
133What:           /sys/class/cxl/<afu>/cr<config num>/config
134Date:           February 2015
135Contact:        linuxppc-dev@lists.ozlabs.org
136Description:    read only
137		This binary file provides raw access to the AFU configuration
138		record. The format is expected to match the either the standard
139		or extended configuration space defined by the PCIe
140		specification.
141Users:		https://github.com/ibm-capi/libcxl
142
143
144
145Master contexts (eg. /sys/class/cxl/afu0.0m)
146
147What:           /sys/class/cxl/<afu>m/mmio_size
148Date:           September 2014
149Contact:        linuxppc-dev@lists.ozlabs.org
150Description:    read only
151                Decimal value of the size of the MMIO space that may be mmaped
152                by userspace. This includes all slave contexts space also.
153Users:		https://github.com/ibm-capi/libcxl
154
155What:           /sys/class/cxl/<afu>m/pp_mmio_len
156Date:           September 2014
157Contact:        linuxppc-dev@lists.ozlabs.org
158Description:    read only
159                Decimal value of the Per Process MMIO space length.
160Users:		https://github.com/ibm-capi/libcxl
161
162What:           /sys/class/cxl/<afu>m/pp_mmio_off (not in a guest)
163Date:           September 2014
164Contact:        linuxppc-dev@lists.ozlabs.org
165Description:    read only
166                Decimal value of the Per Process MMIO space offset.
167Users:		https://github.com/ibm-capi/libcxl
168
169
170Card info (eg. /sys/class/cxl/card0)
171
172What:           /sys/class/cxl/<card>/caia_version
173Date:           September 2014
174Contact:        linuxppc-dev@lists.ozlabs.org
175Description:    read only
176                Identifies the CAIA Version the card implements.
177Users:		https://github.com/ibm-capi/libcxl
178
179What:           /sys/class/cxl/<card>/psl_revision
180Date:           September 2014
181Contact:        linuxppc-dev@lists.ozlabs.org
182Description:    read only
183                Identifies the revision level of the PSL.
184Users:		https://github.com/ibm-capi/libcxl
185
186What:           /sys/class/cxl/<card>/base_image (not in a guest)
187Date:           September 2014
188Contact:        linuxppc-dev@lists.ozlabs.org
189Description:    read only
190                Identifies the revision level of the base image for devices
191                that support loadable PSLs. For FPGAs this field identifies
192                the image contained in the on-adapter flash which is loaded
193                during the initial program load.
194Users:		https://github.com/ibm-capi/libcxl
195
196What:           /sys/class/cxl/<card>/image_loaded (not in a guest)
197Date:           September 2014
198Contact:        linuxppc-dev@lists.ozlabs.org
199Description:    read only
200                Will return "user" or "factory" depending on the image loaded
201                onto the card.
202Users:		https://github.com/ibm-capi/libcxl
203
204What:           /sys/class/cxl/<card>/load_image_on_perst (not in a guest)
205Date:           December 2014
206Contact:        linuxppc-dev@lists.ozlabs.org
207Description:    read/write
208                Valid entries are "none", "user", and "factory".
209                "none" means PERST will not cause image to be loaded to the
210                card.  A power cycle is required to load the image.
211                "none" could be useful for debugging because the trace arrays
212                are preserved.
213                "user" and "factory" means PERST will cause either the user or
214                user or factory image to be loaded.
215                Default is to reload on PERST whichever image the card has
216                loaded.
217Users:		https://github.com/ibm-capi/libcxl
218
219What:           /sys/class/cxl/<card>/reset
220Date:           October 2014
221Contact:        linuxppc-dev@lists.ozlabs.org
222Description:    write only
223                Writing 1 will issue a PERST to card provided there are no
224                contexts active on any one of the card AFUs. This may cause
225                the card to reload the FPGA depending on load_image_on_perst.
226                Writing -1 will do a force PERST irrespective of any active
227                contexts on the card AFUs.
228Users:		https://github.com/ibm-capi/libcxl
229
230What:		/sys/class/cxl/<card>/perst_reloads_same_image (not in a guest)
231Date:		July 2015
232Contact:	linuxppc-dev@lists.ozlabs.org
233Description:	read/write
234		Trust that when an image is reloaded via PERST, it will not
235		have changed.
236		0 = don't trust, the image may be different (default)
237		1 = trust that the image will not change.
238Users:		https://github.com/ibm-capi/libcxl
239
240What:           /sys/class/cxl/<card>/psl_timebase_synced
241Date:           March 2016
242Contact:        linuxppc-dev@lists.ozlabs.org
243Description:    read only
244                Returns 1 if the psl timebase register is synchronized
245                with the core timebase register, 0 otherwise.
246Users:          https://github.com/ibm-capi/libcxl
247
248What:           /sys/class/cxl/<card>/tunneled_ops_supported
249Date:           May 2018
250Contact:        linuxppc-dev@lists.ozlabs.org
251Description:    read only
252                Returns 1 if tunneled operations are supported in capi mode,
253                0 otherwise.
254Users:          https://github.com/ibm-capi/libcxl
255