#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/bus.h>
#include <sys/endian.h>
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/rman.h>
#include <vm/vm.h>
#include <vm/vm_extern.h>
#include <vm/vm_page.h>
#include <vm/vm_phys.h>
#include <contrib/dev/acpica/include/acpi.h>
#include <contrib/dev/acpica/include/accommon.h>
#include <dev/acpica/acpivar.h>
#include <dev/acpica/acpi_pcibvar.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_acpi.h>
#include "pcib_if.h"
Go to the source code of this file.
|
| __FBSDID ("$FreeBSD$") |
|
| _Static_assert (BDF_TABLE_SIZE >=PAGE_SIZE, "pci_n1sdp.c assumes a 4k or 16k page size when mapping the shared data") |
|
static int | n1sdp_init (struct generic_pcie_n1sdp_softc *sc) |
|
static int | n1sdp_check_bdf (struct generic_pcie_n1sdp_softc *sc, u_int bus, u_int slot, u_int func) |
|
static int | n1sdp_pcie_acpi_probe (device_t dev) |
|
static int | n1sdp_pcie_acpi_attach (device_t dev) |
|
static int | n1sdp_get_bus_space (device_t dev, u_int bus, u_int slot, u_int func, u_int reg, bus_space_tag_t *bst, bus_space_handle_t *bsh, bus_size_t *offset) |
|
static uint32_t | n1sdp_pcie_read_config (device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes) |
|
static void | n1sdp_pcie_write_config (device_t dev, u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int bytes) |
|
| DEFINE_CLASS_1 (pcib, n1sdp_pcie_acpi_driver, n1sdp_pcie_acpi_methods, sizeof(struct generic_pcie_n1sdp_softc), generic_pcie_acpi_driver) |
|
| DRIVER_MODULE (n1sdp_pcib, acpi, n1sdp_pcie_acpi_driver, n1sdp_pcie_acpi_devclass, 0, 0) |
|
◆ AP_NS_SHARED_MEM_BASE
#define AP_NS_SHARED_MEM_BASE 0x06000000 |
◆ BDF_TABLE_SIZE
#define BDF_TABLE_SIZE (16 * 1024) |
◆ N1SDP_MAX_SEGMENTS
#define N1SDP_MAX_SEGMENTS 2 /* Two PCIe root complex devices. */ |
◆ PCI_CFG_SPACE_SIZE
#define PCI_CFG_SPACE_SIZE 0x1000 |
◆ __FBSDID()
◆ _Static_assert()
_Static_assert |
( |
BDF_TABLE_SIZE >= |
PAGE_SIZE, |
|
|
"pci_n1sdp.c assumes a 4k or 16k page size when mapping the shared data" |
|
|
) |
| |
◆ DEFINE_CLASS_1()
◆ DRIVER_MODULE()
◆ n1sdp_check_bdf()
◆ n1sdp_get_bus_space()
static int n1sdp_get_bus_space |
( |
device_t |
dev, |
|
|
u_int |
bus, |
|
|
u_int |
slot, |
|
|
u_int |
func, |
|
|
u_int |
reg, |
|
|
bus_space_tag_t * |
bst, |
|
|
bus_space_handle_t * |
bsh, |
|
|
bus_size_t * |
offset |
|
) |
| |
|
static |
Definition at line 233 of file pci_n1sdp.c.
References generic_pcie_n1sdp_softc::acpi, generic_pcie_acpi_softc::base, generic_pcie_core_softc::bsh, generic_pcie_core_softc::bst, bus, generic_pcie_core_softc::bus_start, dev, func, generic_pcie_n1sdp_softc::n1_bsh, n1sdp_check_bdf(), PCIE_ADDR_OFFSET, reg, and slot.
Referenced by n1sdp_pcie_read_config(), and n1sdp_pcie_write_config().
◆ n1sdp_init()
Definition at line 86 of file pci_n1sdp.c.
References generic_pcie_n1sdp_softc::acpi, AP_NS_SHARED_MEM_BASE, generic_pcie_acpi_softc::base, BDF_TABLE_SIZE, generic_pcie_core_softc::bst, generic_pcie_n1sdp_softc::n1_bsh, generic_pcie_n1sdp_softc::n1_discovery_data, pcie_discovery_data::nr_bdfs, PCI_CFG_SPACE_SIZE, pcie_discovery_data::rc_base_addr, generic_pcie_acpi_softc::segment, and pcie_discovery_data::valid_bdfs.
Referenced by n1sdp_pcie_acpi_attach().
◆ n1sdp_pcie_acpi_attach()
static int n1sdp_pcie_acpi_attach |
( |
device_t |
dev | ) |
|
|
static |
◆ n1sdp_pcie_acpi_probe()
static int n1sdp_pcie_acpi_probe |
( |
device_t |
dev | ) |
|
|
static |
◆ n1sdp_pcie_read_config()
static uint32_t n1sdp_pcie_read_config |
( |
device_t |
dev, |
|
|
u_int |
bus, |
|
|
u_int |
slot, |
|
|
u_int |
func, |
|
|
u_int |
reg, |
|
|
int |
bytes |
|
) |
| |
|
static |
Definition at line 259 of file pci_n1sdp.c.
References generic_pcie_n1sdp_softc::acpi, generic_pcie_acpi_softc::base, bus, generic_pcie_core_softc::bus_end, generic_pcie_core_softc::bus_start, data, dev, func, n1sdp_get_bus_space(), PCI_FUNCMAX, PCI_SLOTMAX, PCIE_REGMAX, reg, and slot.
◆ n1sdp_pcie_write_config()
static void n1sdp_pcie_write_config |
( |
device_t |
dev, |
|
|
u_int |
bus, |
|
|
u_int |
slot, |
|
|
u_int |
func, |
|
|
u_int |
reg, |
|
|
uint32_t |
val, |
|
|
int |
bytes |
|
) |
| |
|
static |
Definition at line 305 of file pci_n1sdp.c.
References generic_pcie_n1sdp_softc::acpi, generic_pcie_acpi_softc::base, bus, generic_pcie_core_softc::bus_end, generic_pcie_core_softc::bus_start, data, dev, func, n1sdp_get_bus_space(), PCI_FUNCMAX, PCI_SLOTMAX, PCIE_REGMAX, reg, slot, and val.
◆ n1sdp_pcie_acpi_devclass
devclass_t n1sdp_pcie_acpi_devclass |
|
static |
◆ n1sdp_pcie_acpi_methods
device_method_t n1sdp_pcie_acpi_methods[] |
|
static |
Initial value:= {
DEVMETHOD_END
}
static int n1sdp_pcie_acpi_attach(device_t dev)
static uint32_t n1sdp_pcie_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes)
static void n1sdp_pcie_write_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, uint32_t val, int bytes)
static int n1sdp_pcie_acpi_probe(device_t dev)
static uint32_t pcib_read_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, int width)
static void pcib_write_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, uint32_t val, int width)
Definition at line 350 of file pci_n1sdp.c.