| /linux/Documentation/devicetree/bindings/pci/ |
| H A D | host-generic-pci.yaml | 31 While ECAM extends this by 4 bits to accommodate 4k of function space: 38 description: Depends on the layout of configuration space (CAM vs ECAM 46 - const: pci-host-ecam-generic 51 some Cavium ThunderX processors. These devices have ECAM-based config 55 const: cavium,pci-host-thunder-ecam 60 HiSilicon Hip06/Hip07 PCIe host bridge in almost-ECAM mode. Some 61 firmware places the host controller in a mode where it is ECAM 64 - hisilicon,hip06-pcie-ecam 65 - hisilicon,hip07-pcie-ecam 69 that cover all config, MMIO and I/O spaces in a [mostly] ECAM [all …]
|
| H A D | nvidia,tegra194-pcie.yaml | 39 - description: aperture to access the configuration space through ECAM. 48 - const: ecam 342 <0x24 0x30000000 0x0 0x10000000>; /* ECAM (256MB) */ 343 reg-names = "appl", "config", "atu_dma", "dbi", "ecam";
|
| H A D | amazon,al-alpine-v3-pcie.yaml | 27 - description: PCIe ECAM space
|
| /linux/arch/x86/pci/ |
| H A D | mmconfig-shared.c | 3 * Low-level direct PCI config space access via ECAM - common code between 30 /* Indicate if the ECAM resources have been placed into the resource table */ 94 "PCI ECAM %04x [bus %02x-%02x]", segment, start, end); in pci_mmconfig_alloc() 113 pr_info("ECAM %pR (base %#lx) for domain %04x [bus %02x-%02x]\n", in pci_mmconfig_add() 208 /* ECAM is not enabled */ in pci_mmcfg_amd_fam10h() 370 pr_info("%s with ECAM support\n", name); in pci_mmcfg_check_hostbridge() 490 dev_info(dev, "ECAM %pR reserved as %s\n", in is_mmconf_reserved() 493 pr_info("ECAM %pR reserved as %s\n", &cfg->res, method); in is_mmconf_reserved() 502 "PCI ECAM %04x [bus %02x-%02x]", in is_mmconf_reserved() 506 dev_info(dev, "ECAM %pR (base %#lx) (size reduced!)\n", in is_mmconf_reserved() [all …]
|
| H A D | mmconfig_32.c | 134 printk(KERN_INFO "PCI: Using ECAM for extended config space\n"); in pci_mmcfg_arch_init()
|
| H A D | mmconfig_64.c | 118 pr_err("can't map ECAM at %pR\n", &cfg->res); in pci_mmcfg_arch_map()
|
| /linux/drivers/pci/ |
| H A D | ecam.c | 11 #include <linux/pci-ecam.h> 44 /* ECAM-compliant platforms need not supply ops->bus_shift */ in pci_ecam_create() 59 dev_warn(dev, "ECAM area %pR can only accommodate %pR (reduced from %pR desired)\n", in pci_ecam_create() 67 cfg->res.name = "PCI ECAM"; in pci_ecam_create() 72 dev_err(dev, "can't claim ECAM area %pR: address conflict with %s %pR\n", in pci_ecam_create() 92 dev_info(dev, "ECAM at %pR for %pR\n", &cfg->res, &cfg->busr); in pci_ecam_create() 96 dev_err(dev, "ECAM ioremap failed\n"); in pci_ecam_create() 199 /* ECAM ops */ 212 /* ECAM ops for 32-bit access only (non-compliant) */ 223 /* ECAM ops for 32-bit read only (non-compliant) */
|
| H A D | pci-acpi.c | 19 #include <linux/pci-ecam.h> 1625 dev_err(dev, "%04x:%pR ECAM region not found\n", seg, bus_res); in pci_acpi_setup_ecam_mapping() 1631 dev_info(dev, "ECAM area %pR reserved by %s\n", &cfgres, in pci_acpi_setup_ecam_mapping() 1634 dev_warn(dev, FW_BUG "ECAM area %pR not reserved in ACPI namespace\n", in pci_acpi_setup_ecam_mapping() 1639 dev_err(dev, "%04x:%pR error %ld mapping ECAM\n", seg, bus_res, in pci_acpi_setup_ecam_mapping()
|
| /linux/drivers/pci/controller/ |
| H A D | pci-host-generic.c | 14 #include <linux/pci-ecam.h> 33 * The Synopsys DesignWare PCIe controller in ECAM mode will not filter in pci_dw_valid_device() 65 { .compatible = "pci-host-ecam-generic", 68 { .compatible = "marvell,armada8k-pcie-ecam", 71 { .compatible = "socionext,synquacer-pcie-ecam", 74 { .compatible = "snps,dw-pcie-ecam",
|
| H A D | pci-thunder-pem.c | 13 #include <linux/pci-ecam.h> 25 * Enhanced Configuration Access Mechanism (ECAM) 27 * N.B. This is a non-standard platform-specific ECAM bus shift value. For 29 * include/linux/pci-ecam.h.
|
| H A D | pcie-xilinx-common.h | 7 #include <linux/pci-ecam.h>
|
| H A D | pcie-xilinx-cpm.c | 322 _IC(CFG_TIMEOUT, "ECAM access timeout"), 334 _IC(CFG_PCIE_TIMEOUT, "PCIe ECAM access timeout"), 335 _IC(CFG_ERR_POISON, "ECAM poisoned completion received"),
|
| H A D | pci-thunder-ecam.c | 11 #include <linux/pci-ecam.h> 348 .compatible = "cavium,pci-host-thunder-ecam",
|
| H A D | pcie-xilinx-nwl.c | 22 #include <linux/pci-ecam.h> 713 dev_err(dev, "ECAM is not present\n"); in nwl_pcie_bridge_init() 717 /* Enable ECAM */ in nwl_pcie_bridge_init()
|
| /linux/Documentation/PCI/ |
| H A D | acpi-info.rst | 52 the device-specific details. The host bridge registers also include ECAM 66 bridge registers (including ECAM space) in PNP0C02 catch-all devices [6]. 67 With the exception of ECAM, the bridge register space is device-specific 72 descriptors in the PNP0A03 device for bridge registers, including ECAM, 84 The PCIe spec requires the Enhanced Configuration Access Method (ECAM) 86 ia64 SAL interface [7]. A host bridge consumes ECAM memory address space 88 defines the ECAM address space layout and functionality; only the base of 92 The MCFG table must describe the ECAM space of non-hot pluggable host 94 a _CBA method in the PNP0A03 device describes the ECAM space of a 167 access to the Configuration Space, the ECAM is required as defined in
|
| /linux/arch/loongarch/pci/ |
| H A D | acpi.c | 11 #include <linux/pci-ecam.h> 120 cfg->res.name = "PCI ECAM"; in arch_pci_ecam_create() 125 dev_err(dev, "can't claim ECAM area %pR: address conflict with %s %pR\n", in arch_pci_ecam_create() 139 dev_info(dev, "ECAM at %pR for %pR\n", &cfg->res, &cfg->busr); in arch_pci_ecam_create() 145 dev_err(dev, "ECAM ioremap failed\n"); in arch_pci_ecam_create() 168 dev_err(dev, "%04x:%pR ECAM region not found, use default value\n", seg, bus_res); in pci_acpi_setup_ecam_mapping() 186 dev_err(dev, "%04x:%pR error %ld mapping ECAM\n", seg, bus_res, PTR_ERR(cfg)); in pci_acpi_setup_ecam_mapping()
|
| /linux/include/linux/ |
| H A D | pci-ecam.h | 18 * Enhanced Configuration Access Mechanism (ECAM) 57 * use ECAM. 69 struct device *parent;/* ECAM res was from this dev */ 81 /* default ECAM ops */
|
| /linux/drivers/pci/controller/dwc/ |
| H A D | pcie-hisi.c | 16 #include <linux/pci-ecam.h> 160 .compatible = "hisilicon,hip06-pcie-ecam", 164 .compatible = "hisilicon,hip07-pcie-ecam", 173 .name = "hisi-pcie-almost-ecam",
|
| H A D | pcie-al.c | 12 #include <linux/pci-ecam.h> 267 dev_warn(pcie->dev, "ECAM window size is larger than 256MB. Cutting off at 256\n"); in al_pcie_config_prepare()
|
| H A D | pcie-tegra194-acpi.c | 12 #include <linux/pci-ecam.h>
|
| /linux/drivers/pci/controller/plda/ |
| H A D | pcie-microchip-host.c | 21 #include <linux/pci-ecam.h> 299 static void mc_pcie_enable_msi(struct mc_pcie *port, void __iomem *ecam) in mc_pcie_enable_msi() argument 306 reg = readw_relaxed(ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_FLAGS); in mc_pcie_enable_msi() 308 writew_relaxed(reg, ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_FLAGS); in mc_pcie_enable_msi() 313 writew_relaxed(reg, ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_FLAGS); in mc_pcie_enable_msi() 317 ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_ADDRESS_LO); in mc_pcie_enable_msi() 319 ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_ADDRESS_HI); in mc_pcie_enable_msi()
|
| /linux/Documentation/translations/zh_CN/PCI/ |
| H A D | acpi-info.rst | 60 ECAM,尽管对[6]的严格解释可能禁止这样做。旧的x86和ia64内核假定所有的地址空间描述 69 型配置访问方法(ECAM)。主桥消耗ECAM内存地址空间并将内存访问转换为PCI配置访问。该规范
|
| /linux/drivers/acpi/ |
| H A D | pci_mcfg.c | 14 #include <linux/pci-ecam.h> 234 dev_info(&root->device->dev, "MCFG quirk: ECAM at %pR for %pR with %ps\n", in pci_mcfg_apply_quirks() 278 * Allow quirks to override default ECAM ops and CFG resource in pci_mcfg_lookup()
|
| /linux/arch/xtensa/boot/dts/ |
| H A D | virt.dts | 49 compatible = "pci-host-ecam-generic";
|
| /linux/arch/mips/boot/dts/loongson/ |
| H A D | loongson64v_4core_virtio.dts | 69 compatible = "pci-host-ecam-generic";
|