7c3dc440b1
- CXL RAM region enumeration: instantiate 'struct cxl_region' objects for platform firmware created memory regions - CXL RAM region provisioning: complement the existing PMEM region creation support with RAM region support - "Soft Reservation" policy change: Online (memory hot-add) soft-reserved memory (EFI_MEMORY_SP) by default, but still allow for setting aside such memory for dedicated access via device-dax. - CXL Events and Interrupts: Takeover CXL event handling from platform-firmware (ACPI calls this CXL Memory Error Reporting) and export CXL Events via Linux Trace Events. - Convey CXL _OSC results to drivers: Similar to PCI, let the CXL subsystem interrogate the result of CXL _OSC negotiation. - Emulate CXL DVSEC Range Registers as "decoders": Allow for first-generation devices that pre-date the definition of the CXL HDM Decoder Capability to translate the CXL DVSEC Range Registers into 'struct cxl_decoder' objects. - Set timestamp: Per spec, set the device timestamp in case of hotplug, or if platform-firwmare failed to set it. - General fixups: linux-next build issues, non-urgent fixes for pre-production hardware, unit test fixes, spelling and debug message improvements. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQSbo+XnGs+rwLz9XGXfioYZHlFsZwUCY/WYcgAKCRDfioYZHlFs Z6m3APkBUtiEEm1o8ikdu5llUS1OTLBwqjJDwGMTyf8X/WDXhgD+J2mLsCgARS7X 5IS0RAtefutrW5sQpUucPM7QiLuraAY= =kOXC -----END PGP SIGNATURE----- Merge tag 'cxl-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl Pull Compute Express Link (CXL) updates from Dan Williams: "To date Linux has been dependent on platform-firmware to map CXL RAM regions and handle events / errors from devices. With this update we can now parse / update the CXL memory layout, and report events / errors from devices. This is a precursor for the CXL subsystem to handle the end-to-end "RAS" flow for CXL memory. i.e. the flow that for DDR-attached-DRAM is handled by the EDAC driver where it maps system physical address events to a field-replaceable-unit (FRU / endpoint device). In general, CXL has the potential to standardize what has historically been a pile of memory-controller-specific error handling logic. Another change of note is the default policy for handling RAM-backed device-dax instances. Previously the default access mode was "device", mmap(2) a device special file to access memory. The new default is "kmem" where the address range is assigned to the core-mm via add_memory_driver_managed(). This saves typical users from wondering why their platform memory is not visible via free(1) and stuck behind a device-file. At the same time it allows expert users to deploy policy to, for example, get dedicated access to high performance memory, or hide low performance memory from general purpose kernel allocations. This affects not only CXL, but also systems with high-bandwidth-memory that platform-firmware tags with the EFI_MEMORY_SP (special purpose) designation. Summary: - CXL RAM region enumeration: instantiate 'struct cxl_region' objects for platform firmware created memory regions - CXL RAM region provisioning: complement the existing PMEM region creation support with RAM region support - "Soft Reservation" policy change: Online (memory hot-add) soft-reserved memory (EFI_MEMORY_SP) by default, but still allow for setting aside such memory for dedicated access via device-dax. - CXL Events and Interrupts: Takeover CXL event handling from platform-firmware (ACPI calls this CXL Memory Error Reporting) and export CXL Events via Linux Trace Events. - Convey CXL _OSC results to drivers: Similar to PCI, let the CXL subsystem interrogate the result of CXL _OSC negotiation. - Emulate CXL DVSEC Range Registers as "decoders": Allow for first-generation devices that pre-date the definition of the CXL HDM Decoder Capability to translate the CXL DVSEC Range Registers into 'struct cxl_decoder' objects. - Set timestamp: Per spec, set the device timestamp in case of hotplug, or if platform-firwmare failed to set it. - General fixups: linux-next build issues, non-urgent fixes for pre-production hardware, unit test fixes, spelling and debug message improvements" * tag 'cxl-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (66 commits) dax/kmem: Fix leak of memory-hotplug resources cxl/mem: Add kdoc param for event log driver state cxl/trace: Add serial number to trace points cxl/trace: Add host output to trace points cxl/trace: Standardize device information output cxl/pci: Remove locked check for dvsec_range_allowed() cxl/hdm: Add emulation when HDM decoders are not committed cxl/hdm: Create emulated cxl_hdm for devices that do not have HDM decoders cxl/hdm: Emulate HDM decoder from DVSEC range registers cxl/pci: Refactor cxl_hdm_decode_init() cxl/port: Export cxl_dvsec_rr_decode() to cxl_port cxl/pci: Break out range register decoding from cxl_hdm_decode_init() cxl: add RAS status unmasking for CXL cxl: remove unnecessary calling of pci_enable_pcie_error_reporting() dax/hmem: build hmem device support as module if possible dax: cxl: add CXL_REGION dependency cxl: avoid returning uninitialized error code cxl/pmem: Fix nvdimm registration races cxl/mem: Fix UAPI command comment cxl/uapi: Tag commands from cxl_query_cmd() ...
192 lines
5.3 KiB
Makefile
192 lines
5.3 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the Linux kernel device drivers.
|
|
#
|
|
# 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
|
|
# Rewritten to use lists instead of if-statements.
|
|
#
|
|
|
|
obj-y += irqchip/
|
|
obj-y += bus/
|
|
|
|
obj-$(CONFIG_GENERIC_PHY) += phy/
|
|
|
|
# GPIO must come after pinctrl as gpios may need to mux pins etc
|
|
obj-$(CONFIG_PINCTRL) += pinctrl/
|
|
obj-$(CONFIG_GPIOLIB) += gpio/
|
|
obj-y += pwm/
|
|
|
|
obj-y += pci/
|
|
|
|
obj-$(CONFIG_PARISC) += parisc/
|
|
obj-$(CONFIG_RAPIDIO) += rapidio/
|
|
obj-y += video/
|
|
obj-y += idle/
|
|
|
|
# IPMI must come before ACPI in order to provide IPMI opregion support
|
|
obj-y += char/ipmi/
|
|
|
|
obj-$(CONFIG_ACPI) += acpi/
|
|
|
|
# PnP must come after ACPI since it will eventually need to check if acpi
|
|
# was used and do nothing if so
|
|
obj-$(CONFIG_PNP) += pnp/
|
|
obj-y += amba/
|
|
|
|
obj-y += clk/
|
|
# Many drivers will want to use DMA so this has to be made available
|
|
# really early.
|
|
obj-$(CONFIG_DMADEVICES) += dma/
|
|
|
|
# SOC specific infrastructure drivers.
|
|
obj-y += soc/
|
|
|
|
obj-y += virtio/
|
|
obj-$(CONFIG_VDPA) += vdpa/
|
|
obj-$(CONFIG_XEN) += xen/
|
|
|
|
# regulators early, since some subsystems rely on them to initialize
|
|
obj-$(CONFIG_REGULATOR) += regulator/
|
|
|
|
# reset controllers early, since gpu drivers might rely on them to initialize
|
|
obj-$(CONFIG_RESET_CONTROLLER) += reset/
|
|
|
|
# tty/ comes before char/ so that the VT console is the boot-time
|
|
# default.
|
|
obj-y += tty/
|
|
obj-y += char/
|
|
|
|
# iommu/ comes before gpu as gpu are using iommu controllers
|
|
obj-y += iommu/
|
|
|
|
# gpu/ comes after char for AGP vs DRM startup and after iommu
|
|
obj-y += gpu/
|
|
|
|
obj-$(CONFIG_CONNECTOR) += connector/
|
|
|
|
# i810fb and intelfb depend on char/agp/
|
|
obj-$(CONFIG_FB_I810) += video/fbdev/i810/
|
|
obj-$(CONFIG_FB_INTEL) += video/fbdev/intelfb/
|
|
|
|
obj-$(CONFIG_PARPORT) += parport/
|
|
obj-y += base/ block/ misc/ mfd/ nfc/
|
|
obj-$(CONFIG_LIBNVDIMM) += nvdimm/
|
|
obj-y += dax/
|
|
obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/
|
|
obj-$(CONFIG_NUBUS) += nubus/
|
|
obj-y += cxl/
|
|
obj-y += macintosh/
|
|
obj-y += scsi/
|
|
obj-y += nvme/
|
|
obj-$(CONFIG_ATA) += ata/
|
|
obj-$(CONFIG_TARGET_CORE) += target/
|
|
obj-$(CONFIG_MTD) += mtd/
|
|
obj-$(CONFIG_SPI) += spi/
|
|
obj-$(CONFIG_SPMI) += spmi/
|
|
obj-$(CONFIG_HSI) += hsi/
|
|
obj-$(CONFIG_SLIMBUS) += slimbus/
|
|
obj-y += net/
|
|
obj-$(CONFIG_ATM) += atm/
|
|
obj-$(CONFIG_FUSION) += message/
|
|
obj-y += firewire/
|
|
obj-$(CONFIG_UIO) += uio/
|
|
obj-$(CONFIG_VFIO) += vfio/
|
|
obj-y += cdrom/
|
|
obj-y += auxdisplay/
|
|
obj-$(CONFIG_PCCARD) += pcmcia/
|
|
obj-$(CONFIG_DIO) += dio/
|
|
obj-$(CONFIG_SBUS) += sbus/
|
|
obj-$(CONFIG_ZORRO) += zorro/
|
|
obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
|
|
obj-$(CONFIG_TC) += tc/
|
|
obj-$(CONFIG_USB_PHY) += usb/
|
|
obj-$(CONFIG_USB) += usb/
|
|
obj-$(CONFIG_USB_SUPPORT) += usb/
|
|
obj-$(CONFIG_PCI) += usb/
|
|
obj-$(CONFIG_USB_GADGET) += usb/
|
|
obj-$(CONFIG_OF) += usb/
|
|
obj-$(CONFIG_SERIO) += input/serio/
|
|
obj-$(CONFIG_GAMEPORT) += input/gameport/
|
|
obj-$(CONFIG_INPUT) += input/
|
|
obj-$(CONFIG_RTC_LIB) += rtc/
|
|
obj-y += i2c/ i3c/ media/
|
|
obj-$(CONFIG_PPS) += pps/
|
|
obj-y += ptp/
|
|
obj-$(CONFIG_W1) += w1/
|
|
obj-y += power/
|
|
obj-$(CONFIG_HWMON) += hwmon/
|
|
obj-$(CONFIG_THERMAL) += thermal/
|
|
obj-$(CONFIG_WATCHDOG) += watchdog/
|
|
obj-$(CONFIG_MD) += md/
|
|
obj-$(CONFIG_BT) += bluetooth/
|
|
obj-$(CONFIG_ACCESSIBILITY) += accessibility/
|
|
obj-$(CONFIG_ISDN) += isdn/
|
|
obj-$(CONFIG_EDAC) += edac/
|
|
obj-$(CONFIG_EISA) += eisa/
|
|
obj-$(CONFIG_PM_OPP) += opp/
|
|
obj-$(CONFIG_CPU_FREQ) += cpufreq/
|
|
obj-$(CONFIG_CPU_IDLE) += cpuidle/
|
|
obj-y += mmc/
|
|
obj-y += ufs/
|
|
obj-$(CONFIG_MEMSTICK) += memstick/
|
|
obj-$(CONFIG_NEW_LEDS) += leds/
|
|
obj-$(CONFIG_INFINIBAND) += infiniband/
|
|
obj-y += firmware/
|
|
obj-$(CONFIG_CRYPTO) += crypto/
|
|
obj-$(CONFIG_SUPERH) += sh/
|
|
obj-y += clocksource/
|
|
obj-$(CONFIG_DCA) += dca/
|
|
obj-$(CONFIG_HID_SUPPORT) += hid/
|
|
obj-$(CONFIG_PPC_PS3) += ps3/
|
|
obj-$(CONFIG_OF) += of/
|
|
obj-$(CONFIG_SSB) += ssb/
|
|
obj-$(CONFIG_BCMA) += bcma/
|
|
obj-$(CONFIG_VHOST_RING) += vhost/
|
|
obj-$(CONFIG_VHOST_IOTLB) += vhost/
|
|
obj-$(CONFIG_VHOST) += vhost/
|
|
obj-$(CONFIG_VLYNQ) += vlynq/
|
|
obj-$(CONFIG_GREYBUS) += greybus/
|
|
obj-$(CONFIG_COMEDI) += comedi/
|
|
obj-$(CONFIG_STAGING) += staging/
|
|
obj-y += platform/
|
|
|
|
obj-$(CONFIG_MAILBOX) += mailbox/
|
|
obj-$(CONFIG_HWSPINLOCK) += hwspinlock/
|
|
obj-$(CONFIG_REMOTEPROC) += remoteproc/
|
|
obj-$(CONFIG_RPMSG) += rpmsg/
|
|
obj-$(CONFIG_SOUNDWIRE) += soundwire/
|
|
|
|
# Virtualization drivers
|
|
obj-$(CONFIG_VIRT_DRIVERS) += virt/
|
|
obj-$(subst m,y,$(CONFIG_HYPERV)) += hv/
|
|
|
|
obj-$(CONFIG_PM_DEVFREQ) += devfreq/
|
|
obj-$(CONFIG_EXTCON) += extcon/
|
|
obj-$(CONFIG_MEMORY) += memory/
|
|
obj-$(CONFIG_IIO) += iio/
|
|
obj-$(CONFIG_IPACK_BUS) += ipack/
|
|
obj-$(CONFIG_NTB) += ntb/
|
|
obj-$(CONFIG_POWERCAP) += powercap/
|
|
obj-$(CONFIG_MCB) += mcb/
|
|
obj-$(CONFIG_PERF_EVENTS) += perf/
|
|
obj-$(CONFIG_RAS) += ras/
|
|
obj-$(CONFIG_USB4) += thunderbolt/
|
|
obj-$(CONFIG_CORESIGHT) += hwtracing/coresight/
|
|
obj-y += hwtracing/intel_th/
|
|
obj-$(CONFIG_STM) += hwtracing/stm/
|
|
obj-$(CONFIG_HISI_PTT) += hwtracing/ptt/
|
|
obj-y += android/
|
|
obj-$(CONFIG_NVMEM) += nvmem/
|
|
obj-$(CONFIG_FPGA) += fpga/
|
|
obj-$(CONFIG_FSI) += fsi/
|
|
obj-$(CONFIG_TEE) += tee/
|
|
obj-$(CONFIG_MULTIPLEXER) += mux/
|
|
obj-$(CONFIG_SIOX) += siox/
|
|
obj-$(CONFIG_GNSS) += gnss/
|
|
obj-$(CONFIG_INTERCONNECT) += interconnect/
|
|
obj-$(CONFIG_COUNTER) += counter/
|
|
obj-$(CONFIG_MOST) += most/
|
|
obj-$(CONFIG_PECI) += peci/
|
|
obj-$(CONFIG_HTE) += hte/
|
|
obj-$(CONFIG_DRM_ACCEL) += accel/
|