2009-06-14 02:46:07 +00:00
|
|
|
#
|
2010-10-02 01:24:20 +00:00
|
|
|
# OCTEON1 -- Generic kernel configuration file for FreeBSD/MIPS on Cavium Octeon
|
|
|
|
#
|
|
|
|
# For more information on this file, please read the config(5) manual page,
|
|
|
|
# and/or the handbook section on Kernel Configuration Files:
|
2009-06-14 02:46:07 +00:00
|
|
|
#
|
2017-10-29 08:17:03 +00:00
|
|
|
# https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
|
2009-06-14 02:46:07 +00:00
|
|
|
#
|
|
|
|
# The handbook is also available locally in /usr/share/doc/handbook
|
|
|
|
# if you've installed the doc distribution, otherwise always see the
|
2017-10-29 08:17:03 +00:00
|
|
|
# FreeBSD World Wide Web server (https://www.FreeBSD.org/) for the
|
2009-06-14 02:46:07 +00:00
|
|
|
# latest information.
|
|
|
|
#
|
|
|
|
# An exhaustive list of options and more detailed explanations of the
|
2010-10-02 01:24:20 +00:00
|
|
|
# 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
|
2009-06-14 02:46:07 +00:00
|
|
|
# in NOTES.
|
|
|
|
#
|
|
|
|
# $FreeBSD$
|
|
|
|
|
2009-06-14 03:01:39 +00:00
|
|
|
ident OCTEON1
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2019-10-15 17:28:26 +00:00
|
|
|
makeoptions ARCH_FLAGS="-march=octeon+"
|
2011-01-20 19:17:05 +00:00
|
|
|
makeoptions LDSCRIPT_NAME=ldscript.mips.octeon1
|
2009-06-14 02:46:07 +00:00
|
|
|
|
|
|
|
# Don't build any modules yet.
|
|
|
|
makeoptions MODULES_OVERRIDE=""
|
2009-11-24 14:57:50 +00:00
|
|
|
makeoptions KERNLOADADDR=0xffffffff80100000
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2012-03-13 06:22:49 +00:00
|
|
|
# We don't need to build a trampolined version of the kernel.
|
|
|
|
makeoptions WITHOUT_KERNEL_TRAMPOLINE=1
|
|
|
|
|
2010-01-11 04:40:38 +00:00
|
|
|
include "../cavium/std.octeon1"
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2009-06-14 03:01:39 +00:00
|
|
|
hints "OCTEON1.hints" #Default places to look for devices.
|
2009-06-14 02:46:07 +00:00
|
|
|
|
|
|
|
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
|
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# Board-specific support that cannot be auto-detected at runtime.
|
|
|
|
#options OCTEON_VENDOR_LANNER # Support for Lanner boards.
|
2012-10-26 00:08:50 +00:00
|
|
|
#options OCTEON_VENDOR_RADISYS # Support for Radisys boards.
|
2013-01-02 23:17:50 +00:00
|
|
|
#options OCTEON_VENDOR_UBIQUITI # Support for Ubiquiti boards.
|
2013-05-10 03:05:44 +00:00
|
|
|
#options OCTEON_VENDOR_GEFES # Support for GE LANIC boards
|
2010-10-02 01:24:20 +00:00
|
|
|
#options OCTEON_BOARD_CAPK_0100ND # Support for CAPK-0100nd.
|
|
|
|
|
2012-11-24 02:00:29 +00:00
|
|
|
# Compile for a specified Octeon model. If not specified, support for
|
|
|
|
# detection at runtime will be used instead, which may give inferior
|
|
|
|
# performance.
|
|
|
|
#
|
|
|
|
# See sys/contrib/octeon-sdk/octeon-model.h for possible values.
|
|
|
|
#options OCTEON_MODEL=OCTEON_CN58XX_PASS1_1
|
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
options SCHED_ULE # ULE scheduler
|
|
|
|
options PREEMPTION # Enable kernel thread preemption
|
|
|
|
options INET # InterNETworking
|
|
|
|
options INET6 # IPv6 communications protocols
|
In the TCP stack, the hhook(9) framework provides hooks for kernel modules
to add actions that run when a TCP frame is sent or received on a TCP
session in the ESTABLISHED state. In the base tree, this functionality is
only used for the h_ertt module, which is used by the cc_cdg, cc_chd, cc_hd,
and cc_vegas congestion control modules.
Presently, we incur overhead to check for hooks each time a TCP frame is
sent or received on an ESTABLISHED TCP session.
This change adds a new compile-time option (TCP_HHOOK) to determine whether
to include the hhook(9) framework for TCP. To retain backwards
compatibility, I added the TCP_HHOOK option to every configuration file that
already defined "options INET". (Therefore, this patch introduces no
functional change. In order to see a functional difference, you need to
compile a custom kernel without the TCP_HHOOK option.) This change will
allow users to easily exclude this functionality from their kernel, should
they wish to do so.
Note that any users who use a custom kernel configuration and use one of the
congestion control modules listed above will need to add the TCP_HHOOK
option to their kernel configuration.
Reviewed by: rrs, lstewart, hiren (previous version), sjg (makefiles only)
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D8185
2016-10-12 02:16:42 +00:00
|
|
|
options TCP_HHOOK # hhook(9) framework for TCP
|
2020-07-16 15:09:04 +00:00
|
|
|
options SCTP_SUPPORT # Allow kldload of SCTP
|
2010-10-02 01:24:20 +00:00
|
|
|
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 MD_ROOT # MD is a potential root device
|
2011-05-11 00:52:41 +00:00
|
|
|
options NFSCL # Network Filesystem Client
|
|
|
|
options NFSD # Network Filesystem Server
|
2010-10-02 01:24:20 +00:00
|
|
|
options NFSLOCKD # Network Lock Manager
|
2011-05-11 00:52:41 +00:00
|
|
|
options NFS_ROOT # NFS usable as /, requires NFSCL
|
2010-10-02 01:24:20 +00:00
|
|
|
options MSDOSFS # MSDOS Filesystem
|
|
|
|
options CD9660 # ISO 9660 Filesystem
|
|
|
|
options PROCFS # Process filesystem (requires PSEUDOFS)
|
|
|
|
options PSEUDOFS # Pseudo-filesystem framework
|
|
|
|
options GEOM_PART_GPT # GUID Partition Tables.
|
|
|
|
options GEOM_LABEL # Provides labelization
|
2012-03-09 09:32:20 +00:00
|
|
|
options COMPAT_FREEBSD32 # Compatible with o32 binaries
|
2010-10-02 01:24:20 +00:00
|
|
|
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
|
|
|
|
options KTRACE # ktrace(1) 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 PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
|
|
|
|
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
|
|
|
|
options AUDIT # Security event auditing
|
|
|
|
options MAC # TrustedBSD MAC Framework
|
|
|
|
#options KDTRACE_FRAME # Ensure frames are compiled in
|
|
|
|
#options KDTRACE_HOOKS # Kernel DTrace hooks
|
|
|
|
options INCLUDE_CONFIG_FILE # Include this file in kernel
|
|
|
|
options NO_SWAPPING # Disable support for paging
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# Debugging for use in -current
|
|
|
|
options KDB # Enable kernel debugger support.
|
|
|
|
options DDB # Support DDB.
|
|
|
|
options GDB # Support remote GDB.
|
|
|
|
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
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# Make an SMP-capable kernel by default
|
|
|
|
options SMP # Symmetric MultiProcessor Kernel
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# Bus support.
|
|
|
|
device pci
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2011-04-24 08:58:58 +00:00
|
|
|
# ATA controllers
|
|
|
|
device ahci # AHCI-compatible SATA controllers
|
|
|
|
device ata # Legacy ATA/SATA controllers
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# On-board Compact Flash driver.
|
|
|
|
device cf
|
|
|
|
options ROOTDEVNAME=\"ufs:cf0s2a\" # Default root filesystem.
|
Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive
library:
o) Increase inline unit / large function growth limits for MIPS to accommodate
the needs of the Simple Executive, which uses a shocking amount of inlining.
o) Remove TARGET_OCTEON and use CPU_CNMIPS to do things required by cnMIPS and
the Octeon SoC.
o) Add OCTEON_VENDOR_LANNER to use Lanner's allocation of vendor-specific
board numbers, specifically to support the MR320.
o) Add OCTEON_BOARD_CAPK_0100ND to hard-wire configuration for the CAPK-0100nd,
which improperly uses an evaluation board's board number and breaks board
detection at runtime. This board is sold by Portwell as the CAM-0100.
o) Add support for the RTC available on some Octeon boards.
o) Add support for the Octeon PCI bus. Note that rman_[sg]et_virtual for IO
ports can not work unless building for n64.
o) Clean up the CompactFlash driver to use Simple Executive macros and
structures where possible (it would be advisable to use the Simple Executive
API to set the PIO mode, too, but that is not done presently.) Also use
structures from FreeBSD's ATA layer rather than structures copied from
Linux.
o) Print available Octeon SoC features on boot.
o) Add support for the Octeon timecounter.
o) Use the Simple Executive's routines rather than local copies for doing reads
and writes to 64-bit addresses and use its macros for various device
addresses rather than using local copies.
o) Rename octeon_board_real to octeon_is_simulation to reduce differences with
Cavium-provided code originally written for Linux. Also make it use the
same simplified test that the Simple Executive and Linux both use rather
than our complex one.
o) Add support for the Octeon CIU, which is the main interrupt unit, as a bus
to use normal interrupt allocation and setup routines.
o) Use the Simple Executive's bootmem facility to allocate physical memory for
the kernel, rather than assuming we know which addresses we can steal.
NB: This may reduce the amount of RAM the kernel reports you as having if
you are leaving large temporary allocations made by U-Boot allocated
when starting FreeBSD.
o) Add a port of the Cavium-provided Ethernet driver for Linux. This changes
Ethernet interface naming from rgmxN to octeN. The new driver has vast
improvements over the old one, both in performance and functionality, but
does still have some features which have not been ported entirely and there
may be unimplemented code that can be hit in everyday use. I will make
every effort to correct those as they are reported.
o) Support loading the kernel on non-contiguous cores.
o) Add very conservative support for harvesting randomness from the Octeon
random number device.
o) Turn SMP on by default.
o) Clean up the style of the Octeon kernel configurations a little and make
them compile with -march=octeon.
o) Add support for the Lanner MR320 and the CAPK-0100nd to the Simple
Executive.
o) Modify the Simple Executive to build on FreeBSD and to build without
executive-config.h or cvmx-config.h. In the future we may want to
revert part of these changes and supply executive-config.h and
cvmx-config.h and access to the options contained in those files via
kernel configuration files.
o) Modify the Simple Executive USB routines to support getting and setting
of the USB PID.
2010-07-20 19:25:11 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# SCSI Controllers
|
|
|
|
device ahc # AHA2940 and onboard AIC7xxx devices
|
|
|
|
device mpt # LSI-Logic MPT-Fusion
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2011-04-24 08:58:58 +00:00
|
|
|
# ATA/SCSI peripherals
|
|
|
|
device scbus # SCSI bus (required for ATA/SCSI)
|
2010-10-02 01:24:20 +00:00
|
|
|
device ch # SCSI media changers
|
|
|
|
device da # Direct Access (disks)
|
|
|
|
device sa # Sequential Access (tape etc)
|
|
|
|
device cd # CD
|
2011-04-24 08:58:58 +00:00
|
|
|
device pass # Passthrough device (direct ATA/SCSI access)
|
2012-05-24 11:20:51 +00:00
|
|
|
device ses # Enclosure Services (SES and SAF-TE)
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# RAID controllers interfaced to the SCSI subsystem
|
|
|
|
device ciss # Compaq Smart RAID 5*
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# PCCARD (PCMCIA) support
|
|
|
|
# PCMCIA and cardbus bridge support
|
|
|
|
device cbb # cardbus (yenta) bridge
|
|
|
|
device pccard # PC Card (16-bit) bus
|
|
|
|
device cardbus # CardBus (32-bit) bus
|
|
|
|
|
|
|
|
# Serial (COM) ports
|
|
|
|
device uart # Generic UART driver
|
|
|
|
|
|
|
|
# If you've got a "dumb" serial or parallel PCI card that is
|
|
|
|
# supported by the puc(4) glue driver, uncomment the following
|
|
|
|
# line to enable it (connects to sio, uart and/or ppc drivers):
|
|
|
|
#device puc
|
|
|
|
|
|
|
|
# On-board Cavium Octeon Ethernet.
|
|
|
|
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
|
|
|
|
device octe
|
|
|
|
|
2011-01-10 03:48:41 +00:00
|
|
|
# Cavium Octeon management Ethernet.
|
|
|
|
device octm
|
|
|
|
|
o) Make it possible to attach a PHY directly to an octe device rather than
using miibus, since for some devices that use multiple addresses on the bus,
going through miibus may be unclear, and for devices that are not standard
MII PHYs, miibus may throw a fit, necessitating complicated interfaces to
fake the interface that it expects during probe/attach.
o) Make the mv88e61xx SMI interface in octe attach a PHY directly and fix some
mistakes in the code that resulted from trying too hard to present a nice
interface to miibus.
o) Add a PHY driver for the mv88e61xx. If attached (it is optional in kernel
compiles so the default behavior of having a dumb switch is preserved) it
will place the switch in a VLAN-tagging mode such that each physical port
has a VLAN associated with it and interfaces for the VLANs can be created to
address or bridge between them.
XXX It would be nice for this to be part of a single module including the
SMI interface, and for it to fit into a generic switch configuration
framework and for it to use DSA rather than VLANs, but this is a start
and gives some sense of the parameters of such frameworks that are not
currently present in FreeBSD. In lieu of a switch configuration
interface, per-port media status and VLAN settings are in a sysctl tree.
XXX There may be some minor nits remaining in the handling of broadcast,
multicast and unknown destination traffic. It would also be nice to go
through and replace the few remaining magic numbers with macros at some
point in the future.
XXX This has only been tested with the MV88E6161, but it should work with
minimal or no modification on related switches, so support for probing
them was included.
Thanks to Pat Saavedra of TELoIP and Rafal Jaworowski of Semihalf for their
assistance in understanding the switch chipset.
2010-10-13 09:17:44 +00:00
|
|
|
# Switch PHY support for the octe driver. These currently present a VLAN per
|
|
|
|
# physical port, but may eventually provide support for DSA or similar instead.
|
|
|
|
#device mv88e61xxphy # Marvell 88E61XX
|
|
|
|
|
2019-01-31 19:05:56 +00:00
|
|
|
device iflib
|
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# PCI Ethernet NICs.
|
|
|
|
device em # Intel PRO/1000 Gigabit Ethernet Family
|
2015-03-18 16:54:03 +00:00
|
|
|
device ix # Intel PRO/10GbE PF PCIE Ethernet Family
|
|
|
|
device ixv # Intel PRO/10GbE VF PCIE Ethernet Family
|
2010-10-02 01:24:20 +00:00
|
|
|
|
|
|
|
# PCI Ethernet NICs that use the common MII bus controller code.
|
|
|
|
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
|
|
|
|
device miibus # MII bus support
|
|
|
|
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
|
|
|
|
device bfe # Broadcom BCM440x 10/100 Ethernet
|
|
|
|
device bge # Broadcom BCM570xx Gigabit Ethernet
|
2018-10-21 07:56:58 +00:00
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
device wlan # 802.11 support
|
|
|
|
options IEEE80211_DEBUG # enable debug msgs
|
|
|
|
options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
|
|
|
|
device wlan_wep # 802.11 WEP support
|
|
|
|
device wlan_ccmp # 802.11 CCMP support
|
|
|
|
device wlan_tkip # 802.11 TKIP support
|
|
|
|
device wlan_amrr # AMRR transmit rate control algorithm
|
2011-03-31 08:07:13 +00:00
|
|
|
device ath # Atheros NIC's
|
2012-03-02 21:44:39 +00:00
|
|
|
device ath_pci # Atheros pci/cardbus glue
|
2010-10-02 01:24:20 +00:00
|
|
|
device ath_hal # pci/cardbus chip support
|
|
|
|
device ath_rate_sample # SampleRate tx rate control for ath
|
|
|
|
device ral # Ralink Technology RT2500 wireless NICs.
|
|
|
|
|
|
|
|
# Pseudo devices.
|
|
|
|
device loop # Network loopback
|
|
|
|
device ether # Ethernet support
|
|
|
|
device vlan # 802.1Q VLAN support
|
tun/tap: merge and rename to `tuntap`
tun(4) and tap(4) share the same general management interface and have a lot
in common. Bugs exist in tap(4) that have been fixed in tun(4), and
vice-versa. Let's reduce the maintenance requirements by merging them
together and using flags to differentiate between the three interface types
(tun, tap, vmnet).
This fixes a couple of tap(4)/vmnet(4) issues right out of the gate:
- tap devices may no longer be destroyed while they're open [0]
- VIMAGE issues already addressed in tun by kp
[0] emaste had removed an easy-panic-button in r240938 due to devdrn
blocking. A naive glance over this leads me to believe that this isn't quite
complete -- destroy_devl will only block while executing d_* functions, but
doesn't block the device from being destroyed while a process has it open.
The latter is the intent of the condvar in tun, so this is "fixed" (for
certain definitions of the word -- it wasn't really broken in tap, it just
wasn't quite ideal).
ifconfig(8) also grew the ability to map an interface name to a kld, so
that `ifconfig {tun,tap}0` can continue to autoload the correct module, and
`ifconfig vmnet0 create` will now autoload the correct module. This is a
low overhead addition.
(MFC commentary)
This may get MFC'd if many bugs in tun(4)/tap(4) are discovered after this,
and how critical they are. Changes after this are likely easily MFC'd
without taking this merge, but the merge will be easier.
I have no plans to do this MFC as of now.
Reviewed by: bcr (manpages), tuexen (testing, syzkaller/packetdrill)
Input also from: melifaro
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D20044
2019-05-08 02:32:11 +00:00
|
|
|
device tuntap # Packet tunnel.
|
2010-10-02 01:24:20 +00:00
|
|
|
device md # Memory "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
|
2009-06-14 02:46:07 +00:00
|
|
|
|
2012-11-13 07:34:46 +00:00
|
|
|
# Hardware watchdog support.
|
|
|
|
#device octeon_wdog # Octeon hardware watchdog
|
|
|
|
|
2010-10-02 01:24:20 +00:00
|
|
|
# USB support
|
|
|
|
options USB_DEBUG # enable debug msgs
|
|
|
|
device octusb # Cavium Octeon on-board USB interface (USB 2.0)
|
|
|
|
device uhci # UHCI PCI->USB interface
|
|
|
|
device ohci # OHCI PCI->USB interface
|
|
|
|
device ehci # EHCI PCI->USB interface (USB 2.0)
|
|
|
|
device usb # USB Bus (required)
|
|
|
|
#device udbp # USB Double Bulk Pipe devices
|
|
|
|
device uhid # "Human Interface Devices"
|
|
|
|
device ulpt # Printer
|
|
|
|
device umass # Disks/Mass storage - Requires scbus and da
|
|
|
|
device ums # Mouse
|
|
|
|
# USB Serial devices
|
|
|
|
device u3g # USB-based 3G modems (Option, Huawei, Sierra)
|
|
|
|
device uark # Technologies ARK3116 based serial adapters
|
|
|
|
device ubsa # Belkin F5U103 and compatible serial adapters
|
|
|
|
device uftdi # For FTDI usb serial adapters
|
|
|
|
device uipaq # Some WinCE based devices
|
|
|
|
device uplcom # Prolific PL-2303 serial adapters
|
|
|
|
device uslcom # SI Labs CP2101/CP2102 serial adapters
|
|
|
|
device uvisor # Visor and Palm devices
|
|
|
|
device uvscom # USB serial support for DDI pocket's PHS
|
|
|
|
# USB Wireless
|
|
|
|
device rum # Ralink Technology RT2501USB wireless NICs
|
|
|
|
device uath # Atheros AR5523 wireless NICs
|
|
|
|
device ural # Ralink Technology RT2500USB wireless NICs
|
2011-09-11 17:39:51 +00:00
|
|
|
device zyd # ZyDAS zd1211/zd1211b wireless NICs
|
2012-11-13 07:34:46 +00:00
|
|
|
|
|
|
|
# crypto subsystem
|
|
|
|
device crypto # core crypto support
|
|
|
|
device cryptodev # /dev/crypto for access to h/w
|
|
|
|
device cryptocteon # Octeon coprocessor 2 crypto offload
|
|
|
|
|
|
|
|
# GPIO support
|
|
|
|
#device gpio
|
|
|
|
|
|
|
|
# PMC support
|
|
|
|
#device hwpmc
|