Note: Attributes that are shared between devices are stored in the directory
pointed to by the symlink device/.
Example: The real path of the attribute /sys/class/cxl/afu0.0s/irqs_max is
/sys/class/cxl/afu0.0s/device/irqs_max, i.e. /sys/class/cxl/afu0.0/irqs_max.


Slave contexts (eg. /sys/class/cxl/afu0.0s):

What:           /sys/class/cxl/<afu>/afu_err_buf
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                AFU Error Buffer contents. The contents of this file are
		application specific and depends on the AFU being used.
		Applications interacting with the AFU can use this attribute
		to know about the current error condition and take appropriate
		action like logging the event etc.


What:           /sys/class/cxl/<afu>/irqs_max
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read/write
                Decimal value of maximum number of interrupts that can be
                requested by userspace.  The default on probe is the maximum
                that hardware can support (eg. 2037). Write values will limit
                userspace applications to that many userspace interrupts. Must
                be >= irqs_min.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/irqs_min
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the minimum number of interrupts that
                userspace must request on a CXL_START_WORK ioctl. Userspace may
                omit the num_interrupts field in the START_WORK IOCTL to get
                this minimum automatically.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/mmio_size
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the size of the MMIO space that may be mmaped
                by userspace.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/modes_supported
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                List of the modes this AFU supports. One per line.
                Valid entries are: "dedicated_process" and "afu_directed"
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/mode
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read/write
                The current mode the AFU is using. Will be one of the modes
                given in modes_supported. Writing will change the mode
                provided that no user contexts are attached.
Users:		https://github.com/ibm-capi/libcxl


What:           /sys/class/cxl/<afu>/prefault_mode
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read/write
                Set the mode for prefaulting in segments into the segment table
                when performing the START_WORK ioctl. Possible values:
                        none: No prefaulting (default)
                        work_element_descriptor: Treat the work element
                                 descriptor as an effective address and
                                 prefault what it points to.
                        all: all segments process calling START_WORK maps.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/reset
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    write only
                Writing 1 here will reset the AFU provided there are not
                contexts active on the AFU.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/api_version
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the current version of the kernel/user API.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/api_version_compatible
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the the lowest version of the userspace API
                this this kernel supports.
Users:		https://github.com/ibm-capi/libcxl


AFU configuration records (eg. /sys/class/cxl/afu0.0/cr0):

An AFU may optionally export one or more PCIe like configuration records, known
as AFU configuration records, which will show up here (if present).

What:           /sys/class/cxl/<afu>/cr<config num>/vendor
Date:           February 2015
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
		Hexadecimal value of the vendor ID found in this AFU
		configuration record.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/cr<config num>/device
Date:           February 2015
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
		Hexadecimal value of the device ID found in this AFU
		configuration record.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/cr<config num>/class
Date:           February 2015
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
		Hexadecimal value of the class code found in this AFU
		configuration record.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>/cr<config num>/config
Date:           February 2015
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
		This binary file provides raw access to the AFU configuration
		record. The format is expected to match the either the standard
		or extended configuration space defined by the PCIe
		specification.
Users:		https://github.com/ibm-capi/libcxl



Master contexts (eg. /sys/class/cxl/afu0.0m)

What:           /sys/class/cxl/<afu>m/mmio_size
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the size of the MMIO space that may be mmaped
                by userspace. This includes all slave contexts space also.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>m/pp_mmio_len
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the Per Process MMIO space length.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<afu>m/pp_mmio_off (not in a guest)
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Decimal value of the Per Process MMIO space offset.
Users:		https://github.com/ibm-capi/libcxl


Card info (eg. /sys/class/cxl/card0)

What:           /sys/class/cxl/<card>/caia_version
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Identifies the CAIA Version the card implements.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<card>/psl_revision
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Identifies the revision level of the PSL.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<card>/base_image (not in a guest)
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Identifies the revision level of the base image for devices
                that support loadable PSLs. For FPGAs this field identifies
                the image contained in the on-adapter flash which is loaded
                during the initial program load.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<card>/image_loaded (not in a guest)
Date:           September 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Will return "user" or "factory" depending on the image loaded
                onto the card.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<card>/load_image_on_perst (not in a guest)
Date:           December 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read/write
                Valid entries are "none", "user", and "factory".
                "none" means PERST will not cause image to be loaded to the
                card.  A power cycle is required to load the image.
                "none" could be useful for debugging because the trace arrays
                are preserved.
                "user" and "factory" means PERST will cause either the user or
                user or factory image to be loaded.
                Default is to reload on PERST whichever image the card has
                loaded.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<card>/reset
Date:           October 2014
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    write only
                Writing 1 will issue a PERST to card provided there are no
                contexts active on any one of the card AFUs. This may cause
                the card to reload the FPGA depending on load_image_on_perst.
                Writing -1 will do a force PERST irrespective of any active
                contexts on the card AFUs.
Users:		https://github.com/ibm-capi/libcxl

What:		/sys/class/cxl/<card>/perst_reloads_same_image (not in a guest)
Date:		July 2015
Contact:	linuxppc-dev@lists.ozlabs.org
Description:	read/write
		Trust that when an image is reloaded via PERST, it will not
		have changed.
		0 = don't trust, the image may be different (default)
		1 = trust that the image will not change.
Users:		https://github.com/ibm-capi/libcxl

What:           /sys/class/cxl/<card>/psl_timebase_synced
Date:           March 2016
Contact:        linuxppc-dev@lists.ozlabs.org
Description:    read only
                Returns 1 if the psl timebase register is synchronized
                with the core timebase register, 0 otherwise.
Users:          https://github.com/ibm-capi/libcxl
