/openbmc/linux/drivers/pci/msi/ |
H A D | irqdomain.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI Message Signaled Interrupt (MSI) - irqdomain support 13 struct irq_domain *domain; in pci_msi_setup_msi_irqs() local 15 domain = dev_get_msi_domain(&dev->dev); in pci_msi_setup_msi_irqs() 16 if (domain && irq_domain_is_hierarchy(domain)) in pci_msi_setup_msi_irqs() 17 return msi_domain_alloc_irqs_all_locked(&dev->dev, MSI_DEFAULT_DOMAIN, nvec); in pci_msi_setup_msi_irqs() 24 struct irq_domain *domain; in pci_msi_teardown_msi_irqs() local 26 domain = dev_get_msi_domain(&dev->dev); in pci_msi_teardown_msi_irqs() 27 if (domain && irq_domain_is_hierarchy(domain)) { in pci_msi_teardown_msi_irqs() 28 msi_domain_free_irqs_all_locked(&dev->dev, MSI_DEFAULT_DOMAIN); in pci_msi_teardown_msi_irqs() [all …]
|
/openbmc/linux/include/linux/ |
H A D | msi.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * - Interrupt core code 9 * - PCI/MSI core code 10 * - MSI interrupt domain implementations 11 * - IOMMU, low level VFIO, NTB and other justified exceptions 56 * msi_msg - Representation of a MSI message 100 * pci_msi_desc - PCI/MSI specific MSI descriptor data 102 * @msi_mask: [PCI MSI] MSI cached mask bits 103 * @msix_ctrl: [PCI MSI-X] MSI-X cached per vector control bits 104 * @is_msix: [PCI MSI/X] True if MSI-X [all …]
|
/openbmc/linux/drivers/pci/ |
H A D | search.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI searching functions 5 * Copyright (C) 1993 -- 1997 Drew Eckhardt, Frederic Potter, 6 * David Mosberger-Tang 7 * Copyright (C) 1997 -- 2000 Martin Mares <mj@ucw.cz> 8 * Copyright (C) 2003 -- 2004 Greg Kroah-Hartman <greg@kroah.com> 11 #include <linux/pci.h> 15 #include "pci.h" 20 * pci_for_each_dma_alias - Iterate over DMA aliases for a device 37 * requester is on another PCI bus. in pci_for_each_dma_alias() [all …]
|
H A D | xen-pcifront.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Xen PCI Frontend 15 #include <linux/pci.h> 18 #include <asm/xen/pci.h> 27 #include <asm/xen/swiotlb-xen.h> 29 #define INVALID_EVTCHN (-1) 64 return sd->pdev; in pcifront_get_pdev() 68 unsigned int domain, unsigned int bus, in pcifront_init_sd() argument 72 sd->sd.node = first_online_node; in pcifront_init_sd() 73 sd->sd.domain = domain; in pcifront_init_sd() [all …]
|
H A D | of.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * PCI <-> OF mapping helpers 7 #define pr_fmt(fmt) "PCI: OF: " fmt 11 #include <linux/pci.h> 16 #include "pci.h" 20 * pci_set_of_node - Find and set device's DT device_node 21 * @dev: the PCI device structure to fill 24 * DT. Returns -ENODEV if the device is present, but disabled in the DT. 30 if (!dev->bus->dev.of_node) in pci_set_of_node() 33 node = of_pci_find_child_device(dev->bus->dev.of_node, dev->devfn); in pci_set_of_node() [all …]
|
/openbmc/linux/Documentation/arch/s390/ |
H A D | pci.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 S/390 PCI 8 - Pierre Morel 17 ----------------------- 21 Do not use PCI Mapped I/O (MIO) instructions. 25 Ignore the RID field and force use of one PCI domain per PCI function. 28 --------------- 36 - /sys/kernel/debug/s390dbf/pci_msg/sprintf 37 Holds messages from the processing of PCI events, like machine check handling 50 * /sys/bus/pci/slots/XXXXXXXX [all …]
|
/openbmc/linux/drivers/xen/xen-pciback/ |
H A D | xenbus.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI Backend Xenbus Setup - handles setup with frontend and xend 17 #include <xen/pci.h> 20 #define INVALID_EVTCHN_IRQ (-1) 25 "Option to specify how to export PCI topology to guest:\n"\ 26 " 0 - (default) Hide the true PCI topology and makes the frontend\n"\ 27 " there is a single PCI bus with only the exported devices on it.\n"\ 28 " For example, a device at 03:05.0 will be re-assigned to 00:00.0\n"\ 29 " while second device at 02:1a.1 will be re-assigned to 00:01.1.\n"\ 30 " 1 - Passthrough provides a real view of the PCI topology to the\n"\ [all …]
|
H A D | pci_stub.c | 2 * PCI Stub Driver - Grabs devices in backend to be exported later 17 #include <linux/pci.h> 22 #include <xen/pci.h> 42 int domain; member 55 struct xen_pcibk_device *pdev;/* non-NULL if struct pci_dev is in use */ 74 dev_dbg(&dev->dev, "pcistub_device_alloc\n"); in pcistub_device_alloc() 80 psdev->dev = pci_dev_get(dev); in pcistub_device_alloc() 81 if (!psdev->dev) { in pcistub_device_alloc() 86 kref_init(&psdev->kref); in pcistub_device_alloc() 87 spin_lock_init(&psdev->lock); in pcistub_device_alloc() [all …]
|
H A D | pciback.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * PCI Backend Common Data Structures & Function Declarations 10 #include <linux/pci.h> 20 #define DRV_NAME "xen-pciback" 55 unsigned int ack_intr:1; /* .. and ACK-ing */ 57 unsigned int irq; /* Saved in case device transitions to MSI/MSI-X */ 58 char irq_name[]; /* xen-pcibk[000:04:00.0] */ 66 /* Get/Put PCI Devices that are hidden from the PCI Backend Domain */ 68 int domain, int bus, 82 /* Access a virtual configuration space for a PCI device */ [all …]
|
/openbmc/linux/kernel/irq/ |
H A D | msi.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * PCI compatible and non PCI compatible devices. 18 #include <linux/pci.h> 23 * struct msi_ctrl - MSI internal management control structure 24 * @domid: ID of the domain on which management operations should be done 28 * than the range due to PCI/multi-MSI. 38 #define MSI_XA_MAX_INDEX (ULONG_MAX - 1) 39 /* The maximum domain size */ 48 * msi_alloc_desc - Allocate an initialized msi_desc 66 desc->dev = dev; in msi_alloc_desc() [all …]
|
/openbmc/linux/drivers/xen/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 9 The balloon driver allows the Xen domain to request more memory from 10 the system to expand the domain's memory allocation, or alternatively 28 1) target domain: ensure that memory auto online policy is in 32 2) control domain: xl mem-max <target-domain> <maxmem> 35 3) control domain: xl mem-set <target-domain> <memory> 40 target domain. 43 the newly added memory can be manually onlined in the target domain 51 …SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /… 107 may pass arbitrary information to the initial domain. [all …]
|
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #include <linux/pci.h> 10 #include <linux/pci-acpi.h> 11 #include <xen/pci.h> 18 #include "../pci/pci.h" 32 struct pci_dev *physfn = pci_dev->physfn; in xen_add_device() 51 .add.seg = pci_domain_nr(pci_dev->bus), in xen_add_device() 52 .add.bus = pci_dev->bus->number, in xen_add_device() 53 .add.devfn = pci_dev->devfn in xen_add_device() 62 if (pci_dev->is_virtfn) { in xen_add_device() [all …]
|
/openbmc/linux/arch/s390/pci/ |
H A D | pci_bus.c | 1 // SPDX-License-Identifier: GPL-2.0 20 #include <linux/pci.h> 33 /* zpci_bus_prepare_device - Prepare a zPCI function for scanning 36 * The PCI resources for the function are set up and added to its zbus and the 38 * a PCI bus created. If an error occurs the zPCI function is not enabled. 57 if (!zdev->has_resources) { in zpci_bus_prepare_device() 60 if (zdev->bars[i].res) in zpci_bus_prepare_device() 61 pci_bus_add_resource(zdev->zbus->bus, zdev->bars[i].res, 0); in zpci_bus_prepare_device() 68 /* zpci_bus_scan_device - Scan a single device adding it to the PCI core 71 * Scans the PCI function making it available to the common PCI code. [all …]
|
/openbmc/linux/drivers/iommu/ |
H A D | fsl_pamu_domain.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #define pr_fmt(fmt) "fsl-pamu-domain: %s: " fmt, __func__ 41 return -ENOMEM; in iommu_init_mempool() 52 return -ENOMEM; in iommu_init_mempool() 96 ret = pamu_config_ppaace(liodn, omi_index, dma_domain->stash_id, 0); in pamu_set_liodn() 99 ret = pamu_config_ppaace(liodn, ~(u32)0, dma_domain->stash_id, in pamu_set_liodn() 114 list_del(&info->link); in remove_device_ref() 116 pamu_disable_liodn(info->liodn); in remove_device_ref() 119 dev_iommu_priv_set(info->dev, NULL); in remove_device_ref() 129 spin_lock_irqsave(&dma_domain->domain_lock, flags); in detach_device() [all …]
|
/openbmc/linux/drivers/net/ethernet/sun/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 9 depends on SUN3 || SBUS || PCI || SUN_LDOMS 22 depends on (SBUS || PCI) 27 both PCI and Sbus devices. This driver also supports the "qfe" quad 28 100baseT device available in both PCI and Sbus configurations. 58 depends on PCI 63 <http://docs.oracle.com/cd/E19455-01/806-3985-10/806-3985-10.pdf>. 67 depends on PCI 71 <http://docs.oracle.com/cd/E19113-01/giga.ether.pci/817-4341-10/817-4341-10.pdf>. 94 This driver adds a network interface for every vsw-port node [all …]
|
/openbmc/linux/arch/x86/pci/ |
H A D | common.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Low-Level PCI Support for PC 5 * (c) 1999--2000 Martin Mares <mj@ucw.cz> 9 #include <linux/pci.h> 10 #include <linux/pci-acpi.h> 35 int pcibios_last_bus = -1; 40 int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn, in raw_pci_read() argument 43 if (domain == 0 && reg < 256 && raw_pci_ops) in raw_pci_read() 44 return raw_pci_ops->read(domain, bus, devfn, reg, len, val); in raw_pci_read() 46 return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val); in raw_pci_read() [all …]
|
H A D | acpi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 #define pr_fmt(fmt) "PCI: " fmt 5 #include <linux/pci.h> 11 #include <linux/pci-acpi.h> 43 pr_info("%s detected: ignoring ACPI _SEG\n", id->ident); in set_ignore_seg() 51 id->ident); in set_no_e820() 70 .ident = "ASRock ALiveSATA2-GLAN", 72 DMI_MATCH(DMI_PRODUCT_NAME, "ALiveSATA2-GLAN"), 79 .ident = "ASUS M2V-MX SE", 82 DMI_MATCH(DMI_BOARD_NAME, "M2V-MX SE"), [all …]
|
H A D | xen.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Xen PCI - handle PCI (INTx) and MSI infrastructure calls for PV, HVM and 4 * initial domain support. We also handle the DSDT _PRT callbacks for GSI's 5 * used in HVM and initial domain mode (PV does not parse ACPI, so it has no 7 * 0xcf8 PCI configuration read/write. 15 #include <linux/pci.h> 26 #include <xen/pci.h> 27 #include <asm/xen/pci.h> 42 dev_warn(&dev->dev, "Xen PCI: failed to read interrupt line: %d\n", in xen_pcifront_enable_irq() 46 /* In PV DomU the Xen PCI backend puts the PIRQ in the interrupt line.*/ in xen_pcifront_enable_irq() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/pci/ |
H A D | pci.txt | 1 PCI bus bridges have standardized Device Tree bindings: 3 PCI Bus Binding to: IEEE Std 1275-1994 4 https://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf 9 https://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf 14 - linux,pci-domain: 15 If present this property assigns a fixed PCI domain number to a host bridge, 18 host bridges in the system, otherwise potentially conflicting domain numbers 19 may be assigned to root buses behind different host bridges. The domain 21 - max-link-speed: 22 If present this property specifies PCI gen for link capability. Host [all …]
|
H A D | mediatek-pcie.txt | 4 - compatible: Should contain one of the following strings: 5 "mediatek,mt2701-pcie" 6 "mediatek,mt2712-pcie" 7 "mediatek,mt7622-pcie" 8 "mediatek,mt7623-pcie" 9 "mediatek,mt7629-pcie" 10 "airoha,en7523-pcie" 11 - device_type: Must be "pci" 12 - reg: Base addresses and lengths of the root ports. 13 - reg-names: Names of the above areas to use during resource lookup. [all …]
|
/openbmc/linux/tools/power/cpupower/utils/helpers/ |
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * PCI access helper function depending on libpci 14 * domain: domain 20 * Pass -1 for one of the six above to match any 24 * to access the PCI config space of matching pci devices 26 struct pci_dev *pci_acc_init(struct pci_access **pacc, int domain, int bus, in pci_acc_init() argument 37 filter_nb_link.domain = domain; in pci_acc_init() 47 for (device = (*pacc)->devices; device; device = device->next) { in pci_acc_init() 55 /* Typically one wants to get a specific slot(device)/func of the root domain 60 return pci_acc_init(pacc, 0, 0, slot, func, -1, -1); in pci_slot_func_init()
|
/openbmc/linux/Documentation/translations/zh_CN/PCI/ |
H A D | pci-iov-howto.rst | 1 .. SPDX-License-Identifier: GPL-2.0 3 .. include:: ../disclaimer-zh_CN.rst 5 :Original: Documentation/PCI/pci-iov-howto.rst 15 .. _cn_pci-iov-howto: 18 PCI Express I/O 虚拟化指南 22 :作者: - Yu Zhao <yu.zhao@intel.com> 23 - Donald Dutile <ddutile@redhat.com> 28 什么是SR-IOV 29 ------------ 31 单根I/O虚拟化(SR-IOV)是一种PCI Express扩展功能,它使一个物理设备显示为多个 [all …]
|
/openbmc/linux/drivers/irqchip/ |
H A D | irq-gic-v3-its-pci-msi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2013-2015 ARM Limited, All Rights Reserved. 8 #include <linux/pci.h> 27 .name = "ITS-MSI", 53 static int its_pci_msi_prepare(struct irq_domain *domain, struct device *dev, in its_pci_msi_prepare() argument 61 return -EINVAL; in its_pci_msi_prepare() 63 msi_info = msi_get_domain_info(domain->parent); in its_pci_msi_prepare() 74 if (alias_dev->subordinate) in its_pci_msi_prepare() 75 pci_walk_bus(alias_dev->subordinate, in its_pci_msi_prepare() 77 info->flags |= MSI_ALLOC_FLAGS_PROXY_DEVICE; in its_pci_msi_prepare() [all …]
|
/openbmc/linux/arch/mips/pci/ |
H A D | pci-xtalk-bridge.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Copyright (C) 1999, 2000, 04 Ralf Baechle (ralf@linux-mips.org) 9 #include <linux/pci.h> 11 #include <linux/dma-direct.h> 13 #include <linux/platform_data/xtalk-bridge.h> 14 #include <linux/nvmem-consumer.h> 18 #include <asm/pci/bridge.h> 27 * Common phys<->dma mapping for platforms using pci xtalk bridge 32 struct bridge_controller *bc = BRIDGE_CONTROLLER(pdev->bus); in phys_to_dma() 34 return bc->baddr + paddr; in phys_to_dma() [all …]
|
/openbmc/linux/Documentation/PCI/ |
H A D | pci-iov-howto.rst | 1 .. SPDX-License-Identifier: GPL-2.0 5 PCI Express I/O Virtualization Howto 9 :Authors: - Yu Zhao <yu.zhao@intel.com> 10 - Donald Dutile <ddutile@redhat.com> 15 What is SR-IOV 16 -------------- 18 Single Root I/O Virtualization (SR-IOV) is a PCI Express Extended 25 turned on, each VF's PCI configuration space can be accessed by its own 26 Bus, Device and Function Number (Routing ID). And each VF also has PCI 29 real existing PCI device. [all …]
|