FreeBSD kernel amd64 PCI device code
|
#include <sys/cdefs.h>
#include "opt_platform.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/module.h>
#include <sys/rman.h>
#include <dev/ofw/openfirm.h>
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
#include <dev/ofw/ofw_pci.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcib_private.h>
#include <dev/pci/pci_host_generic.h>
#include <dev/pci/pci_host_generic_fdt.h>
#include <machine/intr.h>
#include "pcib_if.h"
Go to the source code of this file.
Data Structures | |
struct | pci_ofw_devinfo |
Macros | |
#define | SPACE_CODE_SHIFT 24 |
#define | SPACE_CODE_MASK 0x3 |
#define | SPACE_CODE_IO_SPACE 0x1 |
#define | PROPS_CELL_SIZE 1 |
#define | PCI_ADDR_CELL_SIZE 2 |
Functions | |
__FBSDID ("$FreeBSD$") | |
static int | generic_pcie_fdt_probe (device_t dev) |
static int | parse_pci_mem_ranges (device_t, struct generic_pcie_core_softc *) |
static int | generic_pcie_ofw_bus_attach (device_t) |
static const struct ofw_bus_devinfo * | generic_pcie_ofw_get_devinfo (device_t, device_t) |
int | pci_host_generic_setup_fdt (device_t dev) |
int | pci_host_generic_attach (device_t dev) |
static int | generic_pcie_fdt_route_interrupt (device_t bus, device_t dev, int pin) |
static int | generic_pcie_fdt_alloc_msi (device_t pci, device_t child, int count, int maxcount, int *irqs) |
static int | generic_pcie_fdt_release_msi (device_t pci, device_t child, int count, int *irqs) |
static int | generic_pcie_fdt_map_msi (device_t pci, device_t child, int irq, uint64_t *addr, uint32_t *data) |
static int | generic_pcie_fdt_alloc_msix (device_t pci, device_t child, int *irq) |
static int | generic_pcie_fdt_release_msix (device_t pci, device_t child, int irq) |
int | generic_pcie_get_id (device_t pci, device_t child, enum pci_id_type type, uintptr_t *id) |
DEFINE_CLASS_1 (pcib, generic_pcie_fdt_driver, generic_pcie_fdt_methods, sizeof(struct generic_pcie_fdt_softc), generic_pcie_core_driver) | |
DRIVER_MODULE (pcib, simplebus, generic_pcie_fdt_driver, generic_pcie_fdt_devclass, 0, 0) | |
DRIVER_MODULE (pcib, ofwbus, generic_pcie_fdt_driver, generic_pcie_fdt_devclass, 0, 0) | |
Variables | |
static device_method_t | generic_pcie_fdt_methods [] |
static devclass_t | generic_pcie_fdt_devclass |
#define PCI_ADDR_CELL_SIZE 2 |
Definition at line 72 of file pci_host_generic_fdt.c.
#define PROPS_CELL_SIZE 1 |
Definition at line 71 of file pci_host_generic_fdt.c.
#define SPACE_CODE_IO_SPACE 0x1 |
Definition at line 70 of file pci_host_generic_fdt.c.
#define SPACE_CODE_MASK 0x3 |
Definition at line 69 of file pci_host_generic_fdt.c.
#define SPACE_CODE_SHIFT 24 |
Definition at line 68 of file pci_host_generic_fdt.c.
__FBSDID | ( | "$FreeBSD$" | ) |
DEFINE_CLASS_1 | ( | pcib | , |
generic_pcie_fdt_driver | , | ||
generic_pcie_fdt_methods | , | ||
sizeof(struct generic_pcie_fdt_softc) | , | ||
generic_pcie_core_driver | |||
) |
DRIVER_MODULE | ( | pcib | , |
ofwbus | , | ||
generic_pcie_fdt_driver | , | ||
generic_pcie_fdt_devclass | , | ||
0 | , | ||
0 | |||
) |
DRIVER_MODULE | ( | pcib | , |
simplebus | , | ||
generic_pcie_fdt_driver | , | ||
generic_pcie_fdt_devclass | , | ||
0 | , | ||
0 | |||
) |
|
static |
|
static |
Definition at line 346 of file pci_host_generic_fdt.c.
|
static |
|
static |
Definition at line 91 of file pci_host_generic_fdt.c.
References dev.
|
static |
|
static |
Definition at line 363 of file pci_host_generic_fdt.c.
|
static |
Definition at line 262 of file pci_host_generic_fdt.c.
References bus, dev, generic_pcie_fdt_softc::pci_iinfo, pin, and reg.
int generic_pcie_get_id | ( | device_t | pci, |
device_t | child, | ||
enum pci_id_type | type, | ||
uintptr_t * | id | ||
) |
Definition at line 380 of file pci_host_generic_fdt.c.
References child, pci, PCI_ID_MSI, pcib_get_id, rid, and type.
|
static |
Definition at line 424 of file pci_host_generic_fdt.c.
Referenced by pci_host_generic_setup_fdt().
|
static |
|
static |
Definition at line 183 of file pci_host_generic_fdt.c.
References dev, FLAG_TYPE_IO, FLAG_TYPE_MEM, pcie_range::flags, MAX_RANGES_TUPLES, generic_pcie_core_softc::nranges, pcie_range::pci_base, pcie_range::phys_base, generic_pcie_core_softc::ranges, pcie_range::size, SPACE_CODE_IO_SPACE, SPACE_CODE_MASK, and SPACE_CODE_SHIFT.
Referenced by pci_host_generic_setup_fdt().
int pci_host_generic_attach | ( | device_t | dev | ) |
Definition at line 167 of file pci_host_generic_fdt.c.
References dev, and pci_host_generic_setup_fdt().
int pci_host_generic_setup_fdt | ( | device_t | dev | ) |
Definition at line 110 of file pci_host_generic_fdt.c.
References generic_pcie_fdt_softc::base, generic_pcie_core_softc::bus_end, generic_pcie_core_softc::bus_start, generic_pcie_core_softc::coherent, dev, generic_pcie_core_softc::ecam, generic_pcie_ofw_bus_attach(), parse_pci_mem_ranges(), pci_host_generic_core_attach(), generic_pcie_fdt_softc::pci_iinfo, PCIE_ECAM_DESIGNWARE_QUIRK, and generic_pcie_core_softc::quirks.
Referenced by pci_host_generic_attach().
|
static |
Definition at line 487 of file pci_host_generic_fdt.c.
|
static |
Definition at line 458 of file pci_host_generic_fdt.c.