/freebsd/sys/dev/pci/ |
H A D | pci_subr.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 32 * Support APIs for Host to PCI bridge drivers and drivers that 33 * provide PCI domains. 42 #include <dev/pci/pcireg.h> 43 #include <dev/pci/pcivar.h> 44 #include <dev/pci/pcib_private.h> 47 * Try to read the bus number of a host-PCI bridge using appropriate config 75 * be seen first and isn't really a pci bridge (the in host_pcib_get_busno() 80 * Since the MIOC doesn't have a pci bus attached, we in host_pcib_get_busno() [all …]
|
H A D | pcivar.h | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 35 /* some PCI bus constants */ 37 #define PCI_MAXMAPS_1 2 /* max. no. of maps for PCI to PCI bridge */ 42 /* Config registers for PCI-PCI and PCI-Cardbus bridges. */ 51 /* Interesting values for PCI power management */ 53 uint16_t pp_cap; /* PCI power management capabilities */ 87 /* Interesting values for PCI MSI */ 97 /* Interesting values for PCI MSI-X */ 105 u_int mte_vector; /* 1-based index into msix_vectors array. */ [all …]
|
/freebsd/sys/dev/iommu/ |
H A D | busdma_iommu.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 51 #include <dev/pci/pcireg.h> 52 #include <dev/pci/pcivar.h> 68 * IOMMU units from Intel VT-d. 72 iommu_bus_dma_is_dev_disabled(int domain, int bus, int slot, int func) in iommu_bus_dma_is_dev_disabled() argument 92 snprintf(str, sizeof(str), "hw.busdma.pci%d.%d.%d.%d", in iommu_bus_dma_is_dev_disabled() 93 domain, bus, slot, func); in iommu_bus_dma_is_dev_disabled() 110 * the IOMMU unit and used for page table lookup. PCI bridges may take 114 * domain, and must collectively be assigned to use either IOMMU or [all …]
|
/freebsd/sys/powerpc/ofw/ |
H A D | ofw_pcibus.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 50 #include <dev/pci/pcireg.h> 51 #include <dev/pci/pcivar.h> 52 #include <dev/pci/pci_private.h> 70 static void ofw_pcibus_enum_devtree(device_t dev, u_int domain, u_int busno); 71 static void ofw_pcibus_enum_bus(device_t dev, u_int domain, u_int busno); 85 /* PCI interface */ 100 DEFINE_CLASS_1(pci, ofw_pcibus_driver, ofw_pcibus_methods, 104 MODULE_DEPEND(ofw_pcibus, pci, 1, 1, 1); [all …]
|
/freebsd/sys/contrib/device-tree/Bindings/pci/ |
H A D | pci-ep.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pci/pci-ep.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: PCI Endpoint Controller 10 Common properties for PCI Endpoint Controller Nodes. 13 - Kishon Vijay Abraham I <kishon@kernel.org> 14 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 18 pattern: "^pcie-ep@" 20 max-functions: [all …]
|
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 …]
|
H A D | brcm,iproc-pcie.txt | 4 - compatible: 5 "brcm,iproc-pcie" for the first generation of PAXB based controller, 7 "brcm,iproc-pcie-paxb-v2" for the second generation of PAXB-based 9 "brcm,iproc-pcie-paxc" for the first generation of PAXC based 11 "brcm,iproc-pcie-paxc-v2" for the second generation of PAXC based 13 PAXB-based root complex is used for external endpoint devices. PAXC-based 15 - reg: base address and length of the PCIe controller I/O register space 16 - #interrupt-cells: set to <1> 17 - interrupt-map-mask and interrupt-map, standard PCI properties to define the 19 - linux,pci-domain: PCI domain ID. Should be unique for each host controller [all …]
|
H A D | xilinx-pcie.txt | 4 - #address-cells: Address representation for root ports, set to <3> 5 - #size-cells: Size representation for root ports, set to <2> 6 - #interrupt-cells: specifies the number of cells needed to encode an 8 - compatible: Should contain "xlnx,axi-pcie-host-1.00.a" 9 - reg: Should contain AXI PCIe registers location and length 10 - device_type: must be "pci" 11 - interrupts: Should contain AXI PCIe interrupt 12 - interrupt-map-mask, 13 interrupt-map: standard PCI properties to define the mapping of the 14 PCI interface to interrupt numbers. [all …]
|
/freebsd/sys/dev/acpica/ |
H A D | acpi_pci.c | 1 /*- 50 #include <dev/pci/pcireg.h> 51 #include <dev/pci/pcivar.h> 52 #include <dev/pci/pci_private.h> 61 ACPI_MODULE_NAME("PCI") 69 ACPI_SERIAL_DECL(pci_powerstate, "ACPI PCI power methods"); 71 /* Be sure that ACPI and PCI power states are equivalent. */ 96 static int acpi_pci_get_domain(device_t dev, device_t child, int *domain); 114 /* PCI interface */ 122 DEFINE_CLASS_1(pci, acpi_pci_driver, acpi_pci_methods, sizeof(struct pci_softc), [all …]
|
/freebsd/sys/amd64/pci/ |
H A D | pci_cfgreg.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 39 #include <dev/pci/pcivar.h> 40 #include <dev/pci/pcireg.h> 47 uint16_t domain; member 52 static uint32_t pci_docfgregread(int domain, int bus, int slot, int func, 54 static struct pcie_mcfg_region *pcie_lookup_region(int domain, int bus); 66 * For amd64 we assume that type 1 I/O port-based access always works. 68 * switch to memory-mapped access. 80 "Enable support for PCI-e memory mapped config access"); [all …]
|
/freebsd/share/man/man4/ |
H A D | pci.4 | 29 .Nm pci 30 .Nd generic PCI/PCIe bus driver 32 To compile the PCI bus driver into the kernel, 35 .Bd -ragged -offset indent 36 .Cd device pci 40 .Pq SR-IOV : 41 .Bd -ragged -offset indent 45 To compile in support for native PCI-express HotPlug: 46 .Bd -ragged -offset indent 53 .Tn PCI [all …]
|
/freebsd/sys/i386/pci/ |
H A D | pci_cfgreg.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 41 #include <dev/pci/pcivar.h> 42 #include <dev/pci/pcireg.h> 59 uint16_t domain; member 84 "Enable support for PCI-e memory mapped config access"); 86 static uint32_t pci_docfgregread(int domain, int bus, int slot, int func, 88 static struct pcie_mcfg_region *pcie_lookup_region(int domain, int bus); 101 * numbers in the range 128-254 to indicate something strange and 128 PRVERB(("pcibios: BIOS_PRESENT didn't return 'PCI ' in edx\n")); in pcibios_get_version() [all …]
|
/freebsd/sys/contrib/device-tree/Bindings/virtio/ |
H A D | iommu.txt | 1 * virtio IOMMU PCI device 3 When virtio-iommu uses the PCI transport, its programming interface is 4 discovered dynamically by the PCI probing infrastructure. However the 6 masters. Therefore, the PCI root complex that hosts the virtio-iommu 11 - compatible: Should be "virtio,pci-iommu" 12 - reg: PCI address of the IOMMU. As defined in the PCI Bus 13 Binding reference [1], the reg property is a five-cell 18 - #iommu-cells: Each platform DMA master managed by the IOMMU is assigned 20 For virtio-iommu, #iommu-cells must be 1. 24 - DMA from the IOMMU device isn't managed by another IOMMU. Therefore the [all …]
|
H A D | pci-iommu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/virtio/pci-iommu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: virtio-iommu device using the virtio-pci transport 10 - Jean-Philippe Brucker <jean-philippe@linaro.org> 13 When virtio-iommu uses the PCI transport, its programming interface is 14 discovered dynamically by the PCI probing infrastructure. However the 16 masters. Therefore, the PCI root complex that hosts the virtio-iommu 20 virtio-iommu node doesn't have an "iommus" property, and is omitted from [all …]
|
/freebsd/sys/contrib/xen/hvm/ |
H A D | dm_op.h | 38 * A domain supports a single 'legacy' IOREQ Server which is instantiated if 50 * PCI config space ranges which they explicitly register. 59 * The <id> handed back is unique for target domain. The valur of 68 /* IN - should server handle buffered ioreqs */ 71 /* OUT - server id */ 83 * specified in the per-CPU ioreq structures). 99 /* IN - server id */ 101 /* IN - flags */ 107 /* OUT - buffered ioreq port */ 109 /* OUT - sync ioreq gfn (see block comment above) */ [all …]
|
H A D | hvm_op.h | 62 /* Set the logical level of one of a domain's PCI INTx wires. */ 65 /* Domain to be updated. */ 67 /* PCI INTx identification in PCI topology (domain:bus:device:intx). */ 68 uint8_t domain, bus, device, intx; member 75 /* Set the logical level of one of a domain's ISA IRQ wires. */ 78 /* Domain to be updated. */ 80 /* ISA device identification, by ISA IRQ (0-15). */ 90 /* Domain to be updated. */ 92 /* PCI link identifier (0-3). */ 94 /* ISA IRQ (1-15), or 0 (disable link). */ [all …]
|
/freebsd/sys/dev/xen/pcifront/ |
H A D | pcifront.c | 1 /*- 2 * SPDX-License-Identifier: BSD-3-Clause 58 #include <machine/xen-os.h> 60 #include <machine/hypervisor-ifs.h> 65 #include <machine/xen-public/memory.h> 66 #include <machine/xen-public/io/pciif.h> 69 #include <dev/pci/pcivar.h> 82 #define INVALID_EVTCHN (-1) 106 int domain; member 111 /* Allocate a PCI device structure */ [all …]
|
/freebsd/sys/x86/iommu/ |
H A D | intel_ctx.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 59 #include <dev/pci/pcireg.h> 60 #include <dev/pci/pcivar.h> 72 static MALLOC_DEFINE(M_DMAR_DOMAIN, "dmar_dom", "Intel DMAR Domain"); 75 struct dmar_domain *domain); 76 static void dmar_domain_destroy(struct dmar_domain *domain); 90 ctxm = iommu_pgalloc(dmar->ctx_obj, 1 + bus, IOMMU_PGF_NOALLOC); in dmar_ensure_ctx_page() 101 ctxm = iommu_pgalloc(dmar->ctx_obj, 1 + bus, IOMMU_PGF_ZERO | in dmar_ensure_ctx_page() 103 re = iommu_map_pgtbl(dmar->ctx_obj, 0, IOMMU_PGF_NOALLOC, &sf); in dmar_ensure_ctx_page() [all …]
|
/freebsd/sys/dev/cardbus/ |
H A D | cardbus.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 5 * Copyright (c) 2003-2008 M. Warner Losh <imp@FreeBSD.org> 43 #include <dev/pci/pcivar.h> 44 #include <dev/pci/pcireg.h> 45 #include <dev/pci/pci_private.h> 99 sc->sc_dev = cbdev; in cardbus_attach() 101 sc->sc_bus = bus_alloc_resource(cbdev, PCI_RES_BUS, &rid, in cardbus_attach() 103 if (sc->sc_bus == NULL) { in cardbus_attach() 118 (void)bus_release_resource(cbdev, PCI_RES_BUS, 0, sc->sc_bus); in cardbus_detach() [all …]
|
/freebsd/sys/sys/ |
H A D | pciio.h | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 59 u_int32_t pc_domain; /* domain number */ 66 struct pcisel pc_sel; /* domain+bus+slot+function */ 67 u_int8_t pc_hdr; /* PCI header type */ 74 u_int8_t pc_class; /* chip PCI class */ 75 u_int8_t pc_subclass; /* chip PCI subclass */ 76 u_int8_t pc_progif; /* chip PCI programming interface */ 83 struct pcisel pc_sel; /* domain+bus+slot+function */ 86 u_int16_t pc_vendor; /* PCI Vendor ID */ [all …]
|
/freebsd/sys/amd64/vmm/io/ |
H A D | iommu.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 35 #include <dev/pci/pcivar.h> 36 #include <dev/pci/pcireg.h> 55 "Enable use of I/O MMU (required for PCI passthrough)."); 65 return ((*ops->init)()); in IOMMU_INIT() 74 (*ops->cleanup)(); in IOMMU_CLEANUP() 82 return ((*ops->create_domain)(maxaddr)); in IOMMU_CREATE_DOMAIN() 92 (*ops->destroy_domain)(dom); in IOMMU_DESTROY_DOMAIN() 96 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) in IOMMU_CREATE_MAPPING() argument [all …]
|
/freebsd/sys/contrib/device-tree/src/arm64/qcom/ |
H A D | sa8540p.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 9 /delete-node/ &cpu0_opp_table; 10 /delete-node/ &cpu4_opp_table; 13 cpu0_opp_table: opp-table-cpu0 { 14 compatible = "operating-points-v2"; 15 opp-shared; 17 opp-300000000 { 18 opp-hz = /bits/ 64 <300000000>; 19 opp-peak-kBps = <(300000 * 32)>; 21 opp-403200000 { [all …]
|
/freebsd/sys/contrib/dev/acpica/common/ |
H A D | dmtbinfo3.c | 3 * Module Name: dmtbinfo3 - Table info for non-AML tables 11 * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp. 28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 104 * re-exports any such software from a foreign destination, Licensee shall 105 * ensure that the distribution and export/re-export of the software is in 108 * any of its subsidiaries will export/re-export any technical data, process, 130 * 3. Neither the names of the above-listed copyright holders nor the names 157 /* This module used for application-level code only */ 165 * - Add the C table definition to the actbl1.h or actbl2.h header. 166 * - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below. [all …]
|
/freebsd/sys/contrib/xen/io/ |
H A D | pciif.h | 2 * PCI Backend/Frontend Common Data Structures & Macros 53 #define XEN_PCI_ERR_dev_not_found (-1) 54 #define XEN_PCI_ERR_invalid_offset (-2) 55 #define XEN_PCI_ERR_access_denied (-3) 56 #define XEN_PCI_ERR_not_implemented (-4) 57 /* XEN_PCI_ERR_op_failed - backend failed to complete the operation */ 58 #define XEN_PCI_ERR_op_failed (-5) 61 * it should be PAGE_SIZE-sizeof(struct xen_pci_op))/sizeof(struct msix_entry)) 78 uint32_t domain; /* PCI Domain/Segment */ member 90 /*IN: param for msi-x */ [all …]
|