9e58f52d3f
A CXL 2.0 component is any entity in the CXL topology. All components have a analogous function in PCIe. Except for the CXL host bridge, all have a PCIe config space that is accessible via the common PCIe mechanisms. CXL components are enumerated via DVSEC fields in the extended PCIe header space. CXL components will minimally implement some subset of CXL.mem and CXL.cache registers defined in 8.2.5 of the CXL 2.0 specification. Two headers and a utility library are introduced to support the minimum functionality needed to enumerate components. The cxl_pci header manages bits associated with PCI, specifically the DVSEC and related fields. The cxl_component.h variant has data structures and APIs that are useful for drivers implementing any of the CXL 2.0 components. The library takes care of making use of the DVSEC bits and the CXL.[mem|cache] registers. Per spec, the registers are little endian. None of the mechanisms required to enumerate a CXL capable hostbridge are introduced at this point. Note that the CXL.mem and CXL.cache registers used are always 4B wide. It's possible in the future that this constraint will not hold. Signed-off-by: Ben Widawsky <ben.widawsky@intel.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Adam Manzanares <a.manzanares@samsung.com> Message-Id: <20220429144110.25167-3-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
87 lines
1.6 KiB
Plaintext
87 lines
1.6 KiB
Plaintext
# devices Kconfig
|
|
source 9pfs/Kconfig
|
|
source acpi/Kconfig
|
|
source adc/Kconfig
|
|
source audio/Kconfig
|
|
source block/Kconfig
|
|
source char/Kconfig
|
|
source core/Kconfig
|
|
source cxl/Kconfig
|
|
source display/Kconfig
|
|
source dma/Kconfig
|
|
source gpio/Kconfig
|
|
source hyperv/Kconfig
|
|
source i2c/Kconfig
|
|
source ide/Kconfig
|
|
source input/Kconfig
|
|
source intc/Kconfig
|
|
source ipack/Kconfig
|
|
source ipmi/Kconfig
|
|
source isa/Kconfig
|
|
source mem/Kconfig
|
|
source misc/Kconfig
|
|
source net/Kconfig
|
|
source nubus/Kconfig
|
|
source nvme/Kconfig
|
|
source nvram/Kconfig
|
|
source pci-bridge/Kconfig
|
|
source pci-host/Kconfig
|
|
source pcmcia/Kconfig
|
|
source pci/Kconfig
|
|
source rdma/Kconfig
|
|
source remote/Kconfig
|
|
source rtc/Kconfig
|
|
source scsi/Kconfig
|
|
source sd/Kconfig
|
|
source sensor/Kconfig
|
|
source smbios/Kconfig
|
|
source ssi/Kconfig
|
|
source timer/Kconfig
|
|
source tpm/Kconfig
|
|
source usb/Kconfig
|
|
source virtio/Kconfig
|
|
source vfio/Kconfig
|
|
source watchdog/Kconfig
|
|
|
|
# arch Kconfig
|
|
source arm/Kconfig
|
|
source alpha/Kconfig
|
|
source avr/Kconfig
|
|
source cris/Kconfig
|
|
source hppa/Kconfig
|
|
source i386/Kconfig
|
|
source m68k/Kconfig
|
|
source microblaze/Kconfig
|
|
source mips/Kconfig
|
|
source nios2/Kconfig
|
|
source openrisc/Kconfig
|
|
source ppc/Kconfig
|
|
source riscv/Kconfig
|
|
source rx/Kconfig
|
|
source s390x/Kconfig
|
|
source sh4/Kconfig
|
|
source sparc/Kconfig
|
|
source sparc64/Kconfig
|
|
source tricore/Kconfig
|
|
source xtensa/Kconfig
|
|
|
|
# Symbols used by multiple targets
|
|
config TEST_DEVICES
|
|
bool
|
|
|
|
config XILINX
|
|
bool
|
|
select PTIMER # for hw/timer/xilinx_timer.c
|
|
|
|
config XILINX_AXI
|
|
bool
|
|
select PTIMER # for hw/dma/xilinx_axidma.c
|
|
|
|
config XLNX_ZYNQMP
|
|
bool
|
|
select REGISTER
|
|
select CAN_BUS
|
|
select PTIMER
|
|
select XLNX_BBRAM
|
|
select XLNX_EFUSE_ZYNQMP
|