4a3e4c4e49
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
97 lines
2.1 KiB
Plaintext
97 lines
2.1 KiB
Plaintext
#
|
|
# Custom kernel for Marvell DB-78xx boards.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
ident DB-88F78XX
|
|
include "std.arm"
|
|
include "../mv/discovery/std.db78xxx"
|
|
|
|
options SOC_MV_DISCOVERY
|
|
|
|
#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
|
|
makeoptions WERROR="-Werror"
|
|
|
|
options SCHED_4BSD # 4BSD scheduler
|
|
options INET # InterNETworking
|
|
options INET6 # IPv6 communications protocols
|
|
options GEOM_PART_BSD # BSD partition scheme
|
|
options GEOM_PART_MBR # MBR partition scheme
|
|
options TMPFS # Efficient memory filesystem
|
|
options FFS # Berkeley Fast Filesystem
|
|
options NANDFS # NAND Filesystem
|
|
options NFSCL # Network Filesystem Client
|
|
options NFSLOCKD # Network Lock Manager
|
|
options NFS_ROOT # NFS usable as /, requires NFSCL
|
|
options BOOTP
|
|
options BOOTP_NFSROOT
|
|
options BOOTP_NFSV3
|
|
options BOOTP_WIRED_TO=mge0
|
|
|
|
#options ROOTDEVNAME=\"ufs:/dev/da0a\"
|
|
|
|
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 MUTEX_NOINLINE
|
|
options RWLOCK_NOINLINE
|
|
options NO_FFS_SNAPSHOT
|
|
options NO_SWAPPING
|
|
|
|
# Debugging
|
|
options ALT_BREAK_TO_DEBUGGER
|
|
options DDB
|
|
#options DEADLKRES # Enable the deadlock resolver
|
|
#options DIAGNOSTIC
|
|
#options INVARIANTS # Enable calls of extra sanity checking
|
|
#options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
|
|
options KDB
|
|
options WITNESS # Enable checks to detect deadlocks and cycles
|
|
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
|
|
#options WITNESS_KDB
|
|
|
|
device pci
|
|
|
|
# Pseudo devices
|
|
device loop
|
|
device md
|
|
device random
|
|
|
|
# Serial ports
|
|
device uart
|
|
|
|
# Networking
|
|
device ether
|
|
device mge # Marvell Gigabit Ethernet controller
|
|
device mii
|
|
device mdio
|
|
device e1000phy
|
|
device bpf
|
|
|
|
# USB
|
|
options USB_DEBUG # enable debug msgs
|
|
device usb
|
|
device ehci
|
|
device umass
|
|
device scbus
|
|
device pass
|
|
device da
|
|
|
|
# I2C (TWSI)
|
|
device iic
|
|
device iicbus
|
|
device ds133x
|
|
|
|
# SATA
|
|
device mvs
|
|
|
|
# NAND
|
|
device nand
|
|
|
|
# Flattened Device Tree
|
|
options FDT
|
|
options FDT_DTB_STATIC
|
|
makeoptions FDT_DTS_FILE=db78100.dts
|