3c71b84f0a
This commit introduces support for etherswitch devices that utilize SMI as a way of accessing its registers. SMI register is located in address space of mge -- access to it was exported through MDIO interface. Attachment functions were enhanced so as to ensure proper initialisation in both cases: 1) PHYs attached directly to mge, 2) PHYs attached to switch device and switch attached to mge. Attachment of etherswitch device depends on dts entry with compatible="mrvl,sw" property. If none is found, typical PHY attachment procedure follows. In case of switch attached, PHYs' status and configuration is accessible via etherswitchcfg, and ifconfig shows always-up, non-configurable mge interfaces. Due to the fact that there may be simultaneous accessess to SMI registers (e.g. from PHY attached to one of mge instances and switch to the other), SMI access interlock was added. It is SX lock, because sleep ability is necessary -- busy-waiting would result in poor performance due to long delays required by hardware. Underlying switch driver is obliged to use sleepable locks as well. Reviewed by: adrian Obtained from: Semihalf Submitted by: Bartosz Szczepanek <bsz@semihalf.com> Differential revision: https://reviews.freebsd.org/D3900
111 lines
2.7 KiB
Plaintext
111 lines
2.7 KiB
Plaintext
#
|
|
# Custom kernel for Marvell Armada XP
|
|
#
|
|
# For more information on this file, please read the config(5) manual page,
|
|
# and/or 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$
|
|
|
|
ident MV-88F78XX0
|
|
|
|
include "std.armv6"
|
|
include "../mv/armadaxp/std.mv78x60"
|
|
|
|
options SOC_MV_ARMADAXP
|
|
|
|
makeoptions WERROR="-Werror"
|
|
|
|
options HZ=1000
|
|
options SCHED_ULE # ULE scheduler
|
|
options SMP # Enable multiple cores
|
|
|
|
# Debugging for use in -current
|
|
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
|
|
#options VERBOSE_SYSINIT # Enable verbose sysinit messages
|
|
options ALT_BREAK_TO_DEBUGGER
|
|
options KDB # Enable kernel debugger support
|
|
# For minimum debugger support (stable branch) use:
|
|
options KDB_TRACE # Print a stack trace for a panic
|
|
# For full debugger support use this instead:
|
|
options DDB # Enable the kernel debugger
|
|
options GDB
|
|
#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 WITNESS_KDB
|
|
#options DIAGNOSTIC
|
|
#options KTR
|
|
#options KTR_VERBOSE=0
|
|
#options KTR_ENTRIES=16384
|
|
#options KTR_MASK=(KTR_SPARE2)
|
|
#options KTR_COMPILE=KTR_ALL
|
|
|
|
# NFS root from boopt/dhcp
|
|
options BOOTP
|
|
options BOOTP_NFSROOT
|
|
options BOOTP_NFSV3
|
|
options BOOTP_WIRED_TO=mge0
|
|
|
|
options ROOTDEVNAME=\"ufs:/dev/da0p1\"
|
|
|
|
options MUTEX_NOINLINE
|
|
options RWLOCK_NOINLINE
|
|
options NO_FFS_SNAPSHOT
|
|
options NO_SWAPPING
|
|
|
|
# Pseudo devices
|
|
device random
|
|
device pty
|
|
device loop
|
|
device md
|
|
|
|
# USB
|
|
options USB_DEBUG # enable debug msgs
|
|
device usb
|
|
device ehci
|
|
device umass
|
|
device scbus
|
|
device pass
|
|
device da
|
|
|
|
# SATA
|
|
device mvs
|
|
|
|
# Serial ports
|
|
device uart
|
|
|
|
# I2C (TWSI)
|
|
device iic
|
|
device iicbus
|
|
|
|
#Network
|
|
device ether
|
|
device mge # Marvell Gigabit Ethernet controller
|
|
device mii
|
|
device mdio
|
|
device e1000phy
|
|
device bpf
|
|
options DEVICE_POLLING
|
|
device vlan
|
|
|
|
#PCI/PCIE
|
|
device pci
|
|
|
|
# Flattened Device Tree
|
|
options FDT # Configure using FDT/DTB data
|
|
options FDT_DTB_STATIC
|
|
makeoptions FDT_DTS_FILE=db78460.dts
|