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