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>/irqs_max
10Date:           September 2014
11Contact:        linuxppc-dev@lists.ozlabs.org
12Description:    read/write
13                Decimal value of maximum number of interrupts that can be
14                requested by userspace.  The default on probe is the maximum
15                that hardware can support (eg. 2037). Write values will limit
16                userspace applications to that many userspace interrupts. Must
17                be >= irqs_min.
18
19What:           /sys/class/cxl/<afu>/irqs_min
20Date:           September 2014
21Contact:        linuxppc-dev@lists.ozlabs.org
22Description:    read only
23                Decimal value of the minimum number of interrupts that
24                userspace must request on a CXL_START_WORK ioctl. Userspace may
25                omit the num_interrupts field in the START_WORK IOCTL to get
26                this minimum automatically.
27
28What:           /sys/class/cxl/<afu>/mmio_size
29Date:           September 2014
30Contact:        linuxppc-dev@lists.ozlabs.org
31Description:    read only
32                Decimal value of the size of the MMIO space that may be mmaped
33                by userspace.
34
35What:           /sys/class/cxl/<afu>/modes_supported
36Date:           September 2014
37Contact:        linuxppc-dev@lists.ozlabs.org
38Description:    read only
39                List of the modes this AFU supports. One per line.
40                Valid entries are: "dedicated_process" and "afu_directed"
41
42What:           /sys/class/cxl/<afu>/mode
43Date:           September 2014
44Contact:        linuxppc-dev@lists.ozlabs.org
45Description:    read/write
46                The current mode the AFU is using. Will be one of the modes
47                given in modes_supported. Writing will change the mode
48                provided that no user contexts are attached.
49
50
51What:           /sys/class/cxl/<afu>/prefault_mode
52Date:           September 2014
53Contact:        linuxppc-dev@lists.ozlabs.org
54Description:    read/write
55                Set the mode for prefaulting in segments into the segment table
56                when performing the START_WORK ioctl. Possible values:
57                        none: No prefaulting (default)
58                        work_element_descriptor: Treat the work element
59                                 descriptor as an effective address and
60                                 prefault what it points to.
61                        all: all segments process calling START_WORK maps.
62
63What:           /sys/class/cxl/<afu>/reset
64Date:           September 2014
65Contact:        linuxppc-dev@lists.ozlabs.org
66Description:    write only
67                Writing 1 here will reset the AFU provided there are not
68                contexts active on the AFU.
69
70What:           /sys/class/cxl/<afu>/api_version
71Date:           September 2014
72Contact:        linuxppc-dev@lists.ozlabs.org
73Description:    read only
74                Decimal value of the current version of the kernel/user API.
75
76What:           /sys/class/cxl/<afu>/api_version_compatible
77Date:           September 2014
78Contact:        linuxppc-dev@lists.ozlabs.org
79Description:    read only
80                Decimal value of the the lowest version of the userspace API
81                this this kernel supports.
82
83
84AFU configuration records (eg. /sys/class/cxl/afu0.0/cr0):
85
86An AFU may optionally export one or more PCIe like configuration records, known
87as AFU configuration records, which will show up here (if present).
88
89What:           /sys/class/cxl/<afu>/cr<config num>/vendor
90Date:           February 2015
91Contact:        linuxppc-dev@lists.ozlabs.org
92Description:    read only
93		Hexadecimal value of the vendor ID found in this AFU
94		configuration record.
95
96What:           /sys/class/cxl/<afu>/cr<config num>/device
97Date:           February 2015
98Contact:        linuxppc-dev@lists.ozlabs.org
99Description:    read only
100		Hexadecimal value of the device ID found in this AFU
101		configuration record.
102
103What:           /sys/class/cxl/<afu>/cr<config num>/vendor
104Date:           February 2015
105Contact:        linuxppc-dev@lists.ozlabs.org
106Description:    read only
107		Hexadecimal value of the class code found in this AFU
108		configuration record.
109
110What:           /sys/class/cxl/<afu>/cr<config num>/config
111Date:           February 2015
112Contact:        linuxppc-dev@lists.ozlabs.org
113Description:    read only
114		This binary file provides raw access to the AFU configuration
115		record. The format is expected to match the either the standard
116		or extended configuration space defined by the PCIe
117		specification.
118
119
120
121Master contexts (eg. /sys/class/cxl/afu0.0m)
122
123What:           /sys/class/cxl/<afu>m/mmio_size
124Date:           September 2014
125Contact:        linuxppc-dev@lists.ozlabs.org
126Description:    read only
127                Decimal value of the size of the MMIO space that may be mmaped
128                by userspace. This includes all slave contexts space also.
129
130What:           /sys/class/cxl/<afu>m/pp_mmio_len
131Date:           September 2014
132Contact:        linuxppc-dev@lists.ozlabs.org
133Description:    read only
134                Decimal value of the Per Process MMIO space length.
135
136What:           /sys/class/cxl/<afu>m/pp_mmio_off
137Date:           September 2014
138Contact:        linuxppc-dev@lists.ozlabs.org
139Description:    read only
140                Decimal value of the Per Process MMIO space offset.
141
142
143Card info (eg. /sys/class/cxl/card0)
144
145What:           /sys/class/cxl/<card>/caia_version
146Date:           September 2014
147Contact:        linuxppc-dev@lists.ozlabs.org
148Description:    read only
149                Identifies the CAIA Version the card implements.
150
151What:           /sys/class/cxl/<card>/psl_revision
152Date:           September 2014
153Contact:        linuxppc-dev@lists.ozlabs.org
154Description:    read only
155                Identifies the revision level of the PSL.
156
157What:           /sys/class/cxl/<card>/base_image
158Date:           September 2014
159Contact:        linuxppc-dev@lists.ozlabs.org
160Description:    read only
161                Identifies the revision level of the base image for devices
162                that support loadable PSLs. For FPGAs this field identifies
163                the image contained in the on-adapter flash which is loaded
164                during the initial program load.
165
166What:           /sys/class/cxl/<card>/image_loaded
167Date:           September 2014
168Contact:        linuxppc-dev@lists.ozlabs.org
169Description:    read only
170                Will return "user" or "factory" depending on the image loaded
171                onto the card.
172
173What:           /sys/class/cxl/<card>/load_image_on_perst
174Date:           December 2014
175Contact:        linuxppc-dev@lists.ozlabs.org
176Description:    read/write
177                Valid entries are "none", "user", and "factory".
178                "none" means PERST will not cause image to be loaded to the
179                card.  A power cycle is required to load the image.
180                "none" could be useful for debugging because the trace arrays
181                are preserved.
182                "user" and "factory" means PERST will cause either the user or
183                user or factory image to be loaded.
184                Default is to reload on PERST whichever image the card has
185                loaded.
186
187What:           /sys/class/cxl/<card>/reset
188Date:           October 2014
189Contact:        linuxppc-dev@lists.ozlabs.org
190Description:    write only
191                Writing 1 will issue a PERST to card which may cause the card
192                to reload the FPGA depending on load_image_on_perst.
193