82cb5c3b5b
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
223 lines
8.0 KiB
Plaintext
223 lines
8.0 KiB
Plaintext
#
|
|
# GENERIC -- Generic kernel configuration file for FreeBSD/powerpc
|
|
#
|
|
# For more information on this file, please read the handbook section on
|
|
# Kernel Configuration Files:
|
|
#
|
|
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
|
|
#
|
|
# The handbook is also available locally in /usr/share/doc/handbook
|
|
# if you've installed the doc distribution, otherwise always see the
|
|
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
|
|
# latest information.
|
|
#
|
|
# An exhaustive list of options and more detailed explanations of the
|
|
# device lines is also present in the ../../conf/NOTES and NOTES files.
|
|
# If you are in doubt as to the purpose or necessity of a line, check first
|
|
# in NOTES.
|
|
#
|
|
# $FreeBSD$
|
|
|
|
cpu AIM
|
|
ident GENERIC
|
|
|
|
machine powerpc powerpc
|
|
|
|
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
|
|
makeoptions WITH_CTF=1
|
|
|
|
# Platform support
|
|
options POWERMAC #NewWorld Apple PowerMacs
|
|
options PSIM #GDB PSIM ppc simulator
|
|
options MAMBO #IBM Mambo Full System Simulator
|
|
options PSERIES #PAPR-compliant systems
|
|
|
|
options FDT
|
|
options SCHED_ULE #ULE scheduler
|
|
options PREEMPTION #Enable kernel thread preemption
|
|
options INET #InterNETworking
|
|
options INET6 #IPv6 communications protocols
|
|
options IPSEC # IP (v4/v6) security
|
|
options SCTP #Stream Control Transmission Protocol
|
|
options FFS #Berkeley Fast Filesystem
|
|
options SOFTUPDATES #Enable FFS soft updates support
|
|
options UFS_ACL #Support for access control lists
|
|
options UFS_DIRHASH #Improve performance on big directories
|
|
options UFS_GJOURNAL #Enable gjournal-based UFS journaling
|
|
options QUOTA #Enable disk quotas for UFS
|
|
options MD_ROOT #MD is a potential root device
|
|
options NFSCL #Network Filesystem Client
|
|
options NFSD #Network Filesystem Server
|
|
options NFSLOCKD #Network Lock Manager
|
|
options NFS_ROOT #NFS usable as root device
|
|
options MSDOSFS #MSDOS Filesystem
|
|
options CD9660 #ISO 9660 Filesystem
|
|
options PROCFS #Process filesystem (requires PSEUDOFS)
|
|
options PSEUDOFS #Pseudo-filesystem framework
|
|
options GEOM_PART_APM #Apple Partition Maps.
|
|
options GEOM_PART_GPT #GUID Partition Tables.
|
|
options GEOM_LABEL #Provides labelization
|
|
options COMPAT_FREEBSD4 #Keep this for a while
|
|
options COMPAT_FREEBSD5 #Compatible with FreeBSD5
|
|
options COMPAT_FREEBSD6 #Compatible with FreeBSD6
|
|
options COMPAT_FREEBSD7 #Compatible with FreeBSD7
|
|
options COMPAT_FREEBSD9 # Compatible with FreeBSD9
|
|
options COMPAT_FREEBSD10 # Compatible with FreeBSD10
|
|
options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI
|
|
options KTRACE #ktrace(1) syscall trace support
|
|
options STACK #stack(9) support
|
|
options SYSVSHM #SYSV-style shared memory
|
|
options SYSVMSG #SYSV-style message queues
|
|
options SYSVSEM #SYSV-style semaphores
|
|
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
|
|
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
|
|
options AUDIT # Security event auditing
|
|
options CAPABILITY_MODE # Capsicum capability mode
|
|
options CAPABILITIES # Capsicum capabilities
|
|
options MAC # TrustedBSD MAC Framework
|
|
options KDTRACE_HOOKS # Kernel DTrace hooks
|
|
options DDB_CTF # Kernel ELF linker loads CTF data
|
|
options INCLUDE_CONFIG_FILE # Include this file in kernel
|
|
options RACCT # Resource accounting framework
|
|
options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
|
|
options RCTL # Resource limits
|
|
|
|
# Debugging support. Always need this:
|
|
options KDB # Enable kernel debugger support.
|
|
options KDB_TRACE # Print a stack trace for a panic.
|
|
# For full debugger support use (turn off in stable branch):
|
|
options DDB #Support DDB
|
|
#options DEADLKRES #Enable the deadlock resolver
|
|
options INVARIANTS #Enable calls of extra sanity checking
|
|
options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS
|
|
options WITNESS #Enable checks to detect deadlocks and cycles
|
|
options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed
|
|
options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
|
|
|
|
# Make an SMP-capable kernel by default
|
|
options SMP # Symmetric MultiProcessor Kernel
|
|
|
|
# CPU frequency control
|
|
device cpufreq
|
|
|
|
# Standard busses
|
|
device pci
|
|
options PCI_HP # PCI-Express native HotPlug
|
|
device agp
|
|
|
|
# ATA controllers
|
|
device ahci # AHCI-compatible SATA controllers
|
|
device ata # Legacy ATA/SATA controllers
|
|
device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA
|
|
device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA
|
|
|
|
# SCSI Controllers
|
|
device ahc # AHA2940 and onboard AIC7xxx devices
|
|
options AHC_ALLOW_MEMIO # Attempt to use memory mapped I/O
|
|
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
|
|
# output. Adds ~128k to driver.
|
|
device isp # Qlogic family
|
|
device ispfw # Firmware module for Qlogic host adapters
|
|
device mpt # LSI-Logic MPT-Fusion
|
|
device mps # LSI-Logic MPT-Fusion 2
|
|
device sym # NCR/Symbios/LSI Logic 53C8XX/53C1010/53C1510D
|
|
|
|
# ATA/SCSI peripherals
|
|
device scbus # SCSI bus (required for ATA/SCSI)
|
|
device da # Direct Access (disks)
|
|
device sa # Sequential Access (tape etc)
|
|
device cd # CD
|
|
device pass # Passthrough device (direct ATA/SCSI access)
|
|
|
|
# vt is the default console driver, resembling an SCO console
|
|
device vt # Generic console driver (pulls in OF FB)
|
|
device kbdmux
|
|
|
|
# Serial (COM) ports
|
|
device scc
|
|
device uart
|
|
device uart_z8530
|
|
|
|
# FireWire support
|
|
device firewire # FireWire bus code
|
|
device sbp # SCSI over FireWire (Requires scbus and da)
|
|
device fwe # Ethernet over FireWire (non-standard!)
|
|
|
|
# PCI Ethernet NICs that use the common MII bus controller code.
|
|
device miibus # MII bus support
|
|
device bge # Broadcom BCM570xx Gigabit Ethernet
|
|
device bm # Apple BMAC Ethernet
|
|
device gem # Sun GEM/Sun ERI/Apple GMAC
|
|
device dc # DEC/Intel 21143 and various workalikes
|
|
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
|
|
|
|
# Pseudo devices.
|
|
device loop # Network loopback
|
|
device random # Entropy device
|
|
device ether # Ethernet support
|
|
device vlan # 802.1Q VLAN support
|
|
device tun # Packet tunnel.
|
|
device md # Memory "disks"
|
|
device ofwd # Open Firmware disks
|
|
device gif # IPv6 and IPv4 tunneling
|
|
device firmware # firmware assist module
|
|
|
|
# The `bpf' device enables the Berkeley Packet Filter.
|
|
# Be aware of the administrative consequences of enabling this!
|
|
# Note that 'bpf' is required for DHCP.
|
|
device bpf #Berkeley packet filter
|
|
|
|
# USB support
|
|
options USB_DEBUG # enable debug msgs
|
|
device uhci # UHCI PCI->USB interface
|
|
device ohci # OHCI PCI->USB interface
|
|
device ehci # EHCI PCI->USB interface
|
|
device usb # USB Bus (required)
|
|
device uhid # "Human Interface Devices"
|
|
device ukbd # Keyboard
|
|
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
|
|
device ulpt # Printer
|
|
device umass # Disks/Mass storage - Requires scbus and da0
|
|
device ums # Mouse
|
|
device atp # Apple USB touchpad
|
|
device urio # Diamond Rio 500 MP3 player
|
|
# USB Ethernet
|
|
device aue # ADMtek USB Ethernet
|
|
device axe # ASIX Electronics USB Ethernet
|
|
device cdce # Generic USB over Ethernet
|
|
device cue # CATC USB Ethernet
|
|
device kue # Kawasaki LSI USB Ethernet
|
|
|
|
# Wireless NIC cards
|
|
options IEEE80211_SUPPORT_MESH
|
|
options AH_SUPPORT_AR5416
|
|
|
|
# Misc
|
|
device iicbus # I2C bus code
|
|
device kiic # Keywest I2C
|
|
device ad7417 # PowerMac7,2 temperature sensor
|
|
device adt746x # PowerBook5,8 temperature sensor
|
|
device ds1631 # PowerMac11,2 temperature sensor
|
|
device ds1775 # PowerMac7,2 temperature sensor
|
|
device fcu # Apple Fan Control Unit
|
|
device max6690 # PowerMac7,2 temperature sensor
|
|
device powermac_nvram # Open Firmware configuration NVRAM
|
|
device smu # Apple System Management Unit
|
|
device adm1030 # Apple G4 MDD fan controller
|
|
device atibl # ATI-based backlight driver for PowerBooks/iBooks
|
|
device nvbl # nVidia-based backlight driver for PowerBooks/iBooks
|
|
|
|
# ADB support
|
|
device adb
|
|
device cuda
|
|
device pmu
|
|
|
|
# Sound support
|
|
device sound # Generic sound driver (required)
|
|
device snd_ai2s # Apple I2S audio
|
|
device snd_davbus # Apple DAVBUS audio
|
|
device snd_uaudio # USB Audio
|
|
|
|
# The crypto framework is required by IPSEC
|
|
device crypto # Required by IPSEC
|