/openbmc/qemu/docs/system/devices/ |
H A D | cxl.rst | 139 by creating an upstream port (cxl-upstream) and a number of 140 downstream ports on the internal switch bus (cxl-downstream). 305 qemu-system-x86_64 -M q35,cxl=on -m 4G,maxmem=8G,slots=8 -smp 4 \ 307 -object memory-backend-file,id=cxl-mem1,share=on,mem-path=/tmp/cxltest.raw,size=256M \ 308 -object memory-backend-file,id=cxl-lsa1,share=on,mem-path=/tmp/lsa.raw,size=256M \ 309 -device pxb-cxl,bus_nr=12,bus=pcie.0,id=cxl.1 \ 310 -device cxl-rp,port=0,bus=cxl.1,id=root_port13,chassis=0,slot=2 \ 311 -device cxl-type3,bus=root_port13,persistent-memdev=cxl-mem1,lsa=cxl-lsa1,id=cxl-pmem0 \ 312 -M cxl-fmw.0.targets.0=cxl.1,cxl-fmw.0.size=4G 316 qemu-system-x86_64 -M q35,cxl=on -m 4G,maxmem=8G,slots=8 -smp 4 \ [all …]
|
/openbmc/linux/drivers/misc/cxl/ |
H A D | cxl.h | 443 #define to_cxl_adapter(d) container_of(d, struct cxl, dev) 488 struct cxl *adapter; 628 int (*adapter_regs_init)(struct cxl *adapter, struct pci_dev *dev); 629 int (*invalidate_all)(struct cxl *adapter); 640 void (*debugfs_add_adapter_regs)(struct cxl *adapter, struct dentry *dir); 643 void (*err_irq_dump_registers)(struct cxl *adapter); 644 void (*debugfs_stop_trace)(struct cxl *adapter); 645 void (*write_timebase_ctrl)(struct cxl *adapter); 646 u64 (*timebase_read)(struct cxl *adapter); 678 struct cxl { struct [all …]
|
H A D | Makefile | 5 cxl-y += main.o file.o irq.o fault.o native.o 6 cxl-y += context.o sysfs.o pci.o trace.o 7 cxl-y += vphb.o api.o cxllib.o 8 cxl-$(CONFIG_PPC_PSERIES) += flash.o guest.o of.o hcalls.o 9 cxl-$(CONFIG_DEBUG_FS) += debugfs.o 10 obj-$(CONFIG_CXL) += cxl.o
|
H A D | main.c | 78 struct cxl *adapter; in cxl_slbia_core() 184 struct cxl *get_cxl_adapter(int num) in get_cxl_adapter() 186 struct cxl *adapter; in get_cxl_adapter() 196 static int cxl_alloc_adapter_nr(struct cxl *adapter) in cxl_alloc_adapter_nr() 213 void cxl_remove_adapter_nr(struct cxl *adapter) in cxl_remove_adapter_nr() 218 struct cxl *cxl_alloc_adapter(void) in cxl_alloc_adapter() 220 struct cxl *adapter; in cxl_alloc_adapter() 222 if (!(adapter = kzalloc(sizeof(struct cxl), GFP_KERNEL))) in cxl_alloc_adapter() 244 struct cxl_afu *cxl_alloc_afu(struct cxl *adapter, int slice) in cxl_alloc_afu() 278 int cxl_adapter_context_get(struct cxl *adapter) in cxl_adapter_context_get() [all …]
|
H A D | pci.c | 474 static int init_implementation_adapter_regs_psl9(struct cxl *adapter, in init_implementation_adapter_regs_psl9() 542 static int init_implementation_adapter_regs_psl8(struct cxl *adapter, struct pci_dev *dev) in init_implementation_adapter_regs_psl8() 581 static void write_timebase_ctrl_psl8(struct cxl *adapter) in write_timebase_ctrl_psl8() 587 static u64 timebase_read_psl9(struct cxl *adapter) in timebase_read_psl9() 592 static u64 timebase_read_psl8(struct cxl *adapter) in timebase_read_psl8() 597 static void cxl_setup_psl_timebase(struct cxl *adapter, struct pci_dev *dev) in cxl_setup_psl_timebase() 647 int cxl_pci_setup_irq(struct cxl *adapter, unsigned int hwirq, in cxl_pci_setup_irq() 655 int cxl_update_image_control(struct cxl *adapter) in cxl_update_image_control() 690 int cxl_pci_alloc_one_irq(struct cxl *adapter) in cxl_pci_alloc_one_irq() 697 void cxl_pci_release_one_irq(struct cxl *adapter, int hwirq) in cxl_pci_release_one_irq() [all …]
|
H A D | flash.c | 174 static int update_devicetree(struct cxl *adapter, s32 scope) in update_devicetree() 228 static int handle_image(struct cxl *adapter, int operation, in handle_image() 323 static int transfer_image(struct cxl *adapter, int operation, in transfer_image() 372 static long ioctl_transfer_image(struct cxl *adapter, int operation, in ioctl_transfer_image() 395 struct cxl *adapter; in device_open() 461 struct cxl *adapter = file->private_data; in device_ioctl() 479 struct cxl *adapter = file->private_data; in device_close() 516 void cxl_guest_remove_chardev(struct cxl *adapter) in cxl_guest_remove_chardev() 521 int cxl_guest_add_chardev(struct cxl *adapter) in cxl_guest_add_chardev()
|
H A D | guest.c | 70 static ssize_t guest_collect_vpd(struct cxl *adapter, struct cxl_afu *afu, in guest_collect_vpd() 223 static int irq_alloc_range(struct cxl *adapter, int len, int *irq) in irq_alloc_range() 244 static int irq_free_range(struct cxl *adapter, int irq, int len) in irq_free_range() 266 static int guest_reset(struct cxl *adapter) in guest_reset() 293 static int guest_alloc_one_irq(struct cxl *adapter) in guest_alloc_one_irq() 304 static void guest_release_one_irq(struct cxl *adapter, int irq) in guest_release_one_irq() 312 struct cxl *adapter, unsigned int num) in guest_alloc_irq_ranges() 345 struct cxl *adapter) in guest_release_irq_ranges() 524 struct cxl *adapter = ctx->afu->adapter; in attach_afu_directed() 896 static bool guest_link_ok(struct cxl *cxl, struct cxl_afu *afu) in guest_link_ok() argument [all …]
|
H A D | sysfs.c | 21 struct cxl *adapter = to_cxl_adapter(device); in caia_version_show() 31 struct cxl *adapter = to_cxl_adapter(device); in psl_revision_show() 40 struct cxl *adapter = to_cxl_adapter(device); in base_image_show() 49 struct cxl *adapter = to_cxl_adapter(device); in image_loaded_show() 60 struct cxl *adapter = to_cxl_adapter(device); in psl_timebase_synced_show() 81 struct cxl *adapter = to_cxl_adapter(device); in tunneled_ops_supported_show() 90 struct cxl *adapter = to_cxl_adapter(device); in reset_adapter_store() 126 struct cxl *adapter = to_cxl_adapter(device); in load_image_on_perst_show() 140 struct cxl *adapter = to_cxl_adapter(device); in load_image_on_perst_store() 164 struct cxl *adapter = to_cxl_adapter(device); in perst_reloads_same_image_show() [all …]
|
H A D | debugfs.c | 36 void cxl_debugfs_add_adapter_regs_psl9(struct cxl *adapter, struct dentry *dir) in cxl_debugfs_add_adapter_regs_psl9() 49 void cxl_debugfs_add_adapter_regs_psl8(struct cxl *adapter, struct dentry *dir) in cxl_debugfs_add_adapter_regs_psl8() 57 void cxl_debugfs_adapter_add(struct cxl *adapter) in cxl_debugfs_adapter_add() 75 void cxl_debugfs_adapter_remove(struct cxl *adapter) in cxl_debugfs_adapter_remove()
|
/openbmc/linux/drivers/nvdimm/ |
H A D | nd.h | 33 bool cxl; member 42 if (ndd->cxl) in nsl_ref_name() 43 return nd_label->cxl.name; in nsl_ref_name() 50 if (ndd->cxl) in nsl_get_name() 51 return memcpy(name, nd_label->cxl.name, NSLABEL_NAME_LEN); in nsl_get_name() 60 if (ndd->cxl) in nsl_set_name() 61 return memcpy(nd_label->cxl.name, name, NSLABEL_NAME_LEN); in nsl_set_name() 68 if (ndd->cxl) in nsl_get_slot() 69 return __le32_to_cpu(nd_label->cxl.slot); in nsl_get_slot() 76 if (ndd->cxl) in nsl_set_slot() [all …]
|
/openbmc/linux/Documentation/ABI/testing/ |
H A D | sysfs-bus-cxl | 1 What: /sys/bus/cxl/flush 4 Contact: linux-cxl@vger.kernel.org 11 What: /sys/bus/cxl/devices/memX/firmware_version 14 Contact: linux-cxl@vger.kernel.org 21 What: /sys/bus/cxl/devices/memX/ram/size 24 Contact: linux-cxl@vger.kernel.org 31 What: /sys/bus/cxl/devices/memX/pmem/size 34 Contact: linux-cxl@vger.kernel.org 41 What: /sys/bus/cxl/devices/memX/serial 44 Contact: linux-cxl@vger.kernel.org [all …]
|
H A D | sysfs-class-cxl | 3 For example, 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. 7 Slave contexts (eg. /sys/class/cxl/afu0.0s): 9 What: /sys/class/cxl/<afu>/afu_err_buf 20 What: /sys/class/cxl/<afu>/irqs_max 31 What: /sys/class/cxl/<afu>/irqs_min 41 What: /sys/class/cxl/<afu>/mmio_size 49 What: /sys/class/cxl/<afu>/modes_supported 57 What: /sys/class/cxl/<afu>/mode 67 What: /sys/class/cxl/<afu>/prefault_mode [all …]
|
H A D | debugfs-cxl | 1 What: /sys/kernel/debug/cxl/memX/inject_poison 4 Contact: linux-cxl@vger.kernel.org 25 Contact: linux-cxl@vger.kernel.org
|
/openbmc/qemu/hw/cxl/ |
H A D | meson.build | 3 'cxl-component-utils.c', 4 'cxl-device-utils.c', 5 'cxl-mailbox-utils.c', 6 'cxl-host.c', 7 'cxl-cdat.c', 8 'cxl-events.c', 12 'cxl-host-stubs.c',
|
H A D | cxl-component-utils.c | 372 void cxl_component_create_dvsec(CXLComponentState *cxl, in cxl_component_create_dvsec() argument 376 PCIDevice *pdev = cxl->pdev; in cxl_component_create_dvsec() 377 uint16_t offset = cxl->dvsec_offset; in cxl_component_create_dvsec() 480 range_init_nofail(&cxl->dvsecs[type], cxl->dvsec_offset, length); in cxl_component_create_dvsec() 481 cxl->dvsec_offset += length; in cxl_component_create_dvsec()
|
/openbmc/linux/Documentation/driver-api/cxl/ |
H A D | memory-devices.rst | 43 # cxl list -BEMPu -b cxl_test 203 # cxl list -BDMu -d root -m mem3 261 # cxl list -MDu -d 3.2 322 .. kernel-doc:: drivers/cxl/pci.c 323 :doc: cxl pci 325 .. kernel-doc:: drivers/cxl/pci.c 328 .. kernel-doc:: drivers/cxl/mem.c 329 :doc: cxl mem 333 .. kernel-doc:: drivers/cxl/port.c 334 :doc: cxl port [all …]
|
/openbmc/linux/include/linux/can/ |
H A D | skb.h | 34 struct canxl_frame **cxl, 122 const struct canxl_frame *cxl = (struct canxl_frame *)skb->data; in can_is_canxl_skb() local 128 if (skb->len != CANXL_HDR_SIZE + cxl->len) in can_is_canxl_skb() 131 return cxl->flags & CANXL_XLF; in can_is_canxl_skb() 137 const struct canxl_frame *cxl = (struct canxl_frame *)skb->data; in can_skb_get_len_val() local 141 return cxl->len; in can_skb_get_len_val()
|
/openbmc/linux/tools/testing/cxl/test/ |
H A D | Kbuild | 2 ccflags-y := -I$(srctree)/drivers/cxl/ -I$(srctree)/drivers/cxl/core 8 cxl_test-y := cxl.o
|
/openbmc/linux/include/misc/ |
H A D | cxl.h | 97 int cxl_allocate_afu_irqs(struct cxl_context *cxl, int num); 99 void cxl_free_afu_irqs(struct cxl_context *cxl); 106 int cxl_map_afu_irq(struct cxl_context *cxl, int num, 109 void cxl_unmap_afu_irq(struct cxl_context *cxl, int num, void *cookie);
|
/openbmc/qemu/qapi/ |
H A D | cxl.json | 32 # @cxl-inject-general-media-event: 75 { 'command': 'cxl-inject-general-media-event', 83 # @cxl-inject-dram-event: 134 { 'command': 'cxl-inject-dram-event', 144 # @cxl-inject-memory-module-event: 186 { 'command': 'cxl-inject-memory-module-event', 197 # @cxl-inject-poison: 214 { 'command': 'cxl-inject-poison', 257 # @cxl-ide-tx: Integrity and data encryption tx error. 259 # @cxl-ide-rx: Integrity and data encryption rx error. [all …]
|
/openbmc/linux/tools/testing/cxl/ |
H A D | Kbuild | 18 CXL_SRC := $(DRIVERS)/cxl 19 CXL_CORE_SRC := $(DRIVERS)/cxl/core 20 ccflags-y := -I$(srctree)/drivers/cxl/ 22 ccflags-y += -DTRACE_INCLUDE_PATH=$(CXL_CORE_SRC) -I$(srctree)/drivers/cxl/core/
|
/openbmc/qemu/hw/pci-bridge/ |
H A D | cxl_downstream.c | 97 static void build_dvsecs(CXLComponentState *cxl) in build_dvsecs() argument 102 cxl_component_create_dvsec(cxl, CXL2_DOWNSTREAM_PORT, in build_dvsecs() 113 cxl_component_create_dvsec(cxl, CXL2_DOWNSTREAM_PORT, in build_dvsecs() 123 cxl_component_create_dvsec(cxl, CXL2_DOWNSTREAM_PORT, in build_dvsecs() 132 cxl_component_create_dvsec(cxl, CXL2_DOWNSTREAM_PORT, in build_dvsecs()
|
H A D | pci_expander_bridge.c | 194 CXLHost *cxl = PXB_CXL_HOST(dev); in pxb_cxl_realize() local 195 CXLComponentState *cxl_cstate = &cxl->cxl_cstate; in pxb_cxl_realize() 212 CXLHost *cxl = pxb->cxl_host_bridge; in pxb_cxl_hook_up_registers() local 213 CXLComponentState *cxl_cstate = &cxl->cxl_cstate; in pxb_cxl_hook_up_registers() 298 CXLHost *cxl = PXB_CXL_DEV(dev)->cxl_host_bridge; in pxb_cxl_dev_reset() local 299 CXLComponentState *cxl_cstate = &cxl->cxl_cstate; in pxb_cxl_dev_reset() 300 PCIHostState *hb = PCI_HOST_BRIDGE(cxl); in pxb_cxl_dev_reset() 315 cxl->passthrough = true; in pxb_cxl_dev_reset()
|
H A D | cxl_root_port.c | 107 static void build_dvsecs(CXLComponentState *cxl) in build_dvsecs() argument 112 cxl_component_create_dvsec(cxl, CXL2_ROOT_PORT, in build_dvsecs() 122 cxl_component_create_dvsec(cxl, CXL2_ROOT_PORT, in build_dvsecs() 132 cxl_component_create_dvsec(cxl, CXL2_ROOT_PORT, in build_dvsecs() 142 cxl_component_create_dvsec(cxl, CXL2_ROOT_PORT, in build_dvsecs()
|
/openbmc/linux/drivers/net/can/dev/ |
H A D | skb.c | 257 struct canxl_frame **cxl, in alloc_canxl_skb() argument 274 *cxl = skb_put_zero(skb, CANXL_HDR_SIZE + data_len); in alloc_canxl_skb() 277 (*cxl)->flags = CANXL_XLF; in alloc_canxl_skb() 278 (*cxl)->len = data_len; in alloc_canxl_skb() 283 *cxl = NULL; in alloc_canxl_skb()
|