xemu/hw/Kconfig
Ben Widawsky 9e58f52d3f hw/cxl/component: Introduce CXL components (8.1.x, 8.2.5)
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>
2022-05-13 06:13:35 -04:00

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