Lines Matching +full:pcie +full:- +full:ep
4 * SPDX-License-Identifier: Apache-2.0
11 #include <zephyr/drivers/pcie/pcie.h>
12 #include <zephyr/drivers/pcie/controller.h>
15 #include <zephyr/drivers/pcie/msi.h>
18 /* arch agnostic PCIe API implementation */
26 LOG_ERR("Failed to get PCIe root complex"); in pcie_conf_read()
39 LOG_ERR("Failed to get PCIe root complex"); in pcie_conf_write()
136 "assigned [%s 0x%lx-0x%lx -> 0x%lx-0x%lx]", in pcie_generic_ctrl_enumerate_bars()
140 bar_bus_addr, bar_bus_addr + bar_size - 1, in pcie_generic_ctrl_enumerate_bars()
141 bar_phys_addr, bar_phys_addr + bar_size - 1); in pcie_generic_ctrl_enumerate_bars()
164 /* Handle only PCI-to-PCI bridge for now */ in pcie_generic_ctrl_enumerate_type1()
229 bus_number - 1, in pcie_generic_ctrl_post_enumerate_type1()
240 ((bar_base_addr - 1) & 0x0000f000) >> 16, in pcie_generic_ctrl_post_enumerate_type1()
245 ((bar_base_addr - 1) & 0xffff0000) >> 16)); in pcie_generic_ctrl_post_enumerate_type1()
255 (bar_base_addr - 1) >> 16)); in pcie_generic_ctrl_post_enumerate_type1()
300 /* Do not enumerate sub-functions if not a multifunction device */ in pcie_generic_ctrl_enumerate_endpoint()
341 /* Next BDF to scan on bus, either valid or PCIE_BDF_NONE when all EP scanned */
347 /* Non-recursive stack based PCIe bus & bridge enumeration */
363 /* Top of stack contains the current PCIe bus to traverse */ in pcie_generic_ctrl_enumerate()
367 if (state->bridge_bdf != PCIE_BDF_NONE) { in pcie_generic_ctrl_enumerate()
368 pcie_generic_ctrl_post_enumerate_type1(ctrl_dev, state->bridge_bdf, in pcie_generic_ctrl_enumerate()
371 state->bridge_bdf = PCIE_BDF_NONE; in pcie_generic_ctrl_enumerate()
375 if (state->next_bdf != PCIE_BDF_NONE) { in pcie_generic_ctrl_enumerate()
376 while (state->next_bdf != PCIE_BDF_NONE) { in pcie_generic_ctrl_enumerate()
378 state->next_bdf, in pcie_generic_ctrl_enumerate()
382 state->bridge_bdf = state->next_bdf; in pcie_generic_ctrl_enumerate()
383 state->next_bdf = pcie_bdf_bus_next(state->next_bdf, in pcie_generic_ctrl_enumerate()
387 if (stack_top == (MAX_TRAVERSE_STACK - 1) || in pcie_generic_ctrl_enumerate()
404 state->next_bdf = pcie_bdf_bus_next(state->next_bdf, in pcie_generic_ctrl_enumerate()
409 stack_top--; in pcie_generic_ctrl_enumerate()
419 return vector->arch.address; in pcie_msi_map()
426 return vector->arch.eventid; in pcie_msi_mdr()
437 LOG_ERR("Failed to get PCIe root complex"); in arch_pcie_msi_vectors_allocate()
449 if (irq_connect_dynamic(vector->arch.irq, vector->arch.priority, routine, in arch_pcie_msi_vector_connect()
450 parameter, flags) != vector->arch.irq) { in arch_pcie_msi_vector_connect()
454 irq_enable(vector->arch.irq); in arch_pcie_msi_vector_connect()