aboutsummaryrefslogtreecommitdiff
path: root/sys/conf/options
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2016-05-05 22:26:23 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2016-05-05 22:26:23 +0000
commit82cb5c3b5b970872a2925962b62b89d3d26408cf (patch)
tree29e5b04d28fc642267d56b82b45a237b92fda1c3 /sys/conf/options
parent50b5c1f0e659018e482db46ea6dbd5d413c2e087 (diff)
downloadsrc-82cb5c3b5b970872a2925962b62b89d3d26408cf.tar.gz
src-82cb5c3b5b970872a2925962b62b89d3d26408cf.zip
Native PCI-express HotPlug support.
PCI-express HotPlug support is implemented via bits in the slot registers of the PCI-express capability of the downstream port along with an interrupt that triggers when bits in the slot status register change. This is implemented for FreeBSD by adding HotPlug support to the PCI-PCI bridge driver which attaches to the virtual PCI-PCI bridges representing downstream ports on HotPlug slots. The PCI-PCI bridge driver registers an interrupt handler to receive HotPlug events. It also uses the slot registers to determine the current HotPlug state and drive an internal HotPlug state machine. For simplicty of implementation, the PCI-PCI bridge device detaches and deletes the child PCI device when a card is removed from a slot and creates and attaches a PCI child device when a card is inserted into the slot. The PCI-PCI bridge driver provides a bus_child_present which claims that child devices are present on HotPlug-capable slots only when a card is inserted. Rather than requiring a timeout in the RC for config accesses to not-present children, the pcib_read/write_config methods fail all requests when a card is not present (or not yet ready). These changes include support for various optional HotPlug capabilities such as a power controller, mechanical latch, electro-mechanical interlock, indicators, and an attention button. It also includes support for devices which require waiting for command completion events before initiating a subsequent HotPlug command. However, it has only been tested on ExpressCard systems which support surprise removal and have none of these optional capabilities. PCI-express HotPlug support is conditional on the PCI_HP option which is enabled by default on arm64, x86, and powerpc. Reviewed by: adrian, imp, vangyzen (older versions) Relnotes: yes Differential Revision: https://reviews.freebsd.org/D6136
Notes
Notes: svn path=/head/; revision=299142
Diffstat (limited to 'sys/conf/options')
-rw-r--r--sys/conf/options1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/conf/options b/sys/conf/options
index 4d6ee66d7d69..61bbaa771ce1 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -177,6 +177,7 @@ NO_SYSCTL_DESCR opt_global.h
NSWBUF_MIN opt_swap.h
MBUF_PACKET_ZONE_DISABLE opt_global.h
PANIC_REBOOT_WAIT_TIME opt_panic.h
+PCI_HP opt_pci.h
PCI_IOV opt_global.h
PPC_DEBUG opt_ppc.h
PPC_PROBE_CHIPSET opt_ppc.h