arm64: Add per SoC family kernel config

There is multiple reason for this :
- This makes it easier to see which driver is needed for each SoC
- This makes it easier to create a custom config for one SoC
- This really reduce boot time (which some people might want)

Some explaination about the files :
- std.arm64 contains all standard kernel option
- std.dev contains all the standard kernel devices
- std.<soc> contains all drivers needed to boot on this SoC family
- <SOC> includes std.arm64, std.dev and std.<soc>
- GENERIC includes std.arm64, std.dev and all std.<soc>

Sponsored by:	Diablotin Systems
MFC After:	2 months
Reviewed by:	mmel, cognet, imp
Differential Revision:	      https://reviews.freebsd.org/D30474
This commit is contained in:
Emmanuel Vadot 2021-02-05 21:41:06 +01:00
parent 8cdb4491c9
commit 0f2c633164
35 changed files with 1133 additions and 375 deletions

27
sys/arm64/conf/AL Normal file
View File

@ -0,0 +1,27 @@
#
# AL -- Annapurna Alpine kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident AL
include "std.arm64"
include "std.dev"
include "std.al"

27
sys/arm64/conf/ALLWINNER Normal file
View File

@ -0,0 +1,27 @@
#
# ALLWINNER -- Allwinner kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident ALLWINNER
include "std.arm64"
include "std.dev"
include "std.allwinner"

27
sys/arm64/conf/ALTERA Normal file
View File

@ -0,0 +1,27 @@
#
# ALTERA -- Intel Altera kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident ALTERA
include "std.arm64"
include "std.dev"
include "std.altera"

27
sys/arm64/conf/AMD Normal file
View File

@ -0,0 +1,27 @@
#
# AMD -- AMD Seattle kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident AMD
include "std.arm64"
include "std.dev"
include "std.amd"

27
sys/arm64/conf/ARM Normal file
View File

@ -0,0 +1,27 @@
#
# ARM -- ARM kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident ARM
include "std.arm64"
include "std.dev"
include "std.arm"

27
sys/arm64/conf/BROADCOM Normal file
View File

@ -0,0 +1,27 @@
#
# BROADCOM -- Broadcom kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident BROADCOM
include "std.arm64"
include "std.dev"
include "std.broadcom"

27
sys/arm64/conf/CAVIUM Normal file
View File

@ -0,0 +1,27 @@
#
# CAVIUM -- Cavium kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident CAVIUM
include "std.arm64"
include "std.dev"
include "std.cavium"

View File

@ -16,383 +16,27 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD$
cpu ARM64
ident GENERIC
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
include "std.arm64"
include "std.dev"
options SCHED_ULE # ULE scheduler
options NUMA # Non-Uniform Memory Architecture support
options PREEMPTION # Enable kernel thread preemption
options VIMAGE # Subsystem virtualization, e.g. VNET
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options IPSEC_SUPPORT # Allow kldload of ipsec and tcpmd5
options ROUTE_MPATH # Multipath routing support
options FIB_ALGO # Modular fib lookups
options TCP_OFFLOAD # TCP offload
options TCP_HHOOK # hhook(9) framework for TCP
options TCP_RFC7413 # TCP Fast Open
options SCTP_SUPPORT # Allow kldload of SCTP
options KERN_TLS # TLS transmit & receive offload
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 /, requires NFSCL
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options TMPFS # Efficient memory filesystem
options GEOM_RAID # Soft RAID functionality.
options GEOM_LABEL # Provides labelization
options EFIRT # EFI Runtime Services support
options COMPAT_FREEBSD32 # Compatible with FreeBSD/arm
options COMPAT_FREEBSD11 # Compatible with FreeBSD11
options COMPAT_FREEBSD12 # Compatible with FreeBSD12
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 KBD_INSTALL_CDEV # install a CDEV entry in /dev
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_FRAME # Ensure frames are compiled in
options KDTRACE_HOOKS # Kernel DTrace hooks
options DDB_CTF # Kernel ELF linker loads CTF data
options VFP # Floating-point support
options RACCT # Resource accounting framework
options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
options RCTL # Resource limits
options INTRNG
options LINUX_BOOT_ABI # Boot using booti command from U-Boot
# 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 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
options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence
options VERBOSE_SYSINIT=0 # Support debug.verbose_sysinit, off by default
# Kernel Sanitizers
#options COVERAGE # Generic kernel coverage. Used by KCOV
#options KCOV # Kernel Coverage Sanitizer
# Warning: KUBSAN can result in a kernel too large for loader to load
#options KUBSAN # Kernel Undefined Behavior Sanitizer
#options KCSAN # Kernel Concurrency Sanitizer
# Kernel dump features.
options EKCD # Support for encrypted kernel dumps
options GZIO # gzip-compressed kernel and user dumps
options ZSTDIO # zstd-compressed kernel and user dumps
options DEBUGNET # debugnet networking
options NETDUMP # netdump(4) client support
# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel
# SoC support
options SOC_ALLWINNER_A64
options SOC_ALLWINNER_H5
options SOC_ALLWINNER_H6
options SOC_CAVM_THUNDERX
options SOC_FREESCALE_IMX8
options SOC_HISI_HI6220
options SOC_INTEL_STRATIX10
options SOC_BRCM_BCM2837
options SOC_BRCM_BCM2838
options SOC_BRCM_NS2
options SOC_MARVELL_8K
options SOC_NVIDIA_TEGRA210
options SOC_NXP_LS
options SOC_ROCKCHIP_RK3328
options SOC_ROCKCHIP_RK3399
options SOC_XILINX_ZYNQ
# Timer drivers
device a10_timer
# Annapurna Alpine drivers
device al_ccu # Alpine Cache Coherency Unit
device al_nb_service # Alpine North Bridge Service
device al_iofic # I/O Fabric Interrupt Controller
device al_serdes # Serializer/Deserializer
device al_udma # Universal DMA
# Qualcomm Snapdragon drivers
device qcom_gcc # Global Clock Controller
# CPU frequency control
device cpufreq
# Bus drivers
device pci
device pci_n1sdp # ARM Neoverse N1 SDP PCI
device al_pci # Annapurna Alpine PCI-E
options PCI_HP # PCI-Express native HotPlug
options PCI_IOV # PCI SR-IOV support
# Block devices
device ahci
device scbus
device da
device pvscsi # VMware PVSCSI
# ATA/SCSI peripherals
device cd # CD
device pass # Passthrough device (direct ATA/SCSI access)
# NVM Express (NVMe) support
device nvme # base NVMe driver
options NVME_USE_NVD=0 # prefer the cam(4) based nda(4) driver
device nvd # expose NVMe namespaces as disks, depends on nvme
# DMA controller
device a31_dmac
# GPIO / PINCTRL
device a37x0_gpio # Marvell Armada 37x0 GPIO controller
device aw_gpio # Allwinner GPIO controller
device dwgpio # Synopsys DesignWare APB GPIO Controller
device gpio
device gpioled
device fdt_pinctrl
device gpioregulator
device mv_gpio # Marvell GPIO controller
device mvebu_pinctrl # Marvell Pinmux Controller
device pl061 # Arm PL061 GPIO controller
device rk_gpio # RockChip GPIO Controller
device rk_pinctrl # RockChip Pinmux Controller
# I2C
device a37x0_iic # Armada 37x0 I2C controller
device aw_rsb # Allwinner Reduced Serial Bus
device bcm2835_bsc # Broadcom BCM283x I2C bus
device iicbus
device iicmux
device iic
device icee # Generic IIC eeprom
device twsi # Allwinner I2C controller
device fan53555 # Fairchild Semi FAN53555/SYR82x Regulator
device pca9547 # NPX I2C bus multiplexer
device pcf8563 # NXP Real-time clock/calendar
device rk_i2c # RockChip I2C controller
device sy8106a # SY8106A Buck Regulator
device vf_i2c # Freescale Vybrid I2C controller
device fsliic # Freescale iMX I2C controller
# Clock and reset controllers
device aw_ccu # Allwinner clock controller
# Interrupt controllers
device aw_nmi # Allwinner NMI support
device aw_r_intc # Allwinner RINTC support
device mv_cp110_icu # Marvell CP110 ICU
device mv_ap806_gicp # Marvell AP806 GICP
device mv_ap806_sei # Marvell AP806 SEI
# Real-time clock support
device aw_rtc # Allwinner Real-time Clock
device mv_rtc # Marvell Real-time Clock
# Crypto accelerators
device armv8crypto # ARMv8 OpenCrypto module
device safexcel # Inside Secure EIP-97
# Watchdog controllers
device aw_wdog # Allwinner Watchdog
# Power management controllers
device axp81x # X-Powers AXP81x PMIC
device rk805 # RockChip RK805 PMIC
# EFUSE
device aw_sid # Allwinner Secure ID EFUSE
# Thermal sensors
device aw_thermal # Allwinner Thermal Sensor Controller
device mv_thermal # Marvell Thermal Sensor Controller
# SPI
device spibus
device a37x0_spi # Marvell Armada 37x0 SPI Controller
device bcm2835_spi # Broadcom BCM283x SPI bus
device rk_spi # RockChip SPI controller
# PWM
device pwm
device aw_pwm
device rk_pwm
# Console
device vt
device kbdmux
device vt_efifb
# EVDEV support
device evdev # input event device support
options EVDEV_SUPPORT # evdev support in legacy drivers
device uinput # install /dev/uinput cdev
device aw_cir
# Serial (COM) ports
device uart # Generic UART driver
device uart_imx # iMX8 UART
device uart_msm # Qualcomm MSM UART driver
device uart_mu # RPI3 aux port
device uart_mvebu # Armada 3700 UART driver
device uart_ns8250 # ns8250-type UART driver
device uart_snps
device pl011
# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
device iflib
device enetc # NXP Gigabit NIC
device em # Intel PRO/1000 Gigabit Ethernet Family
device ix # Intel 10Gb Ethernet Family
device vmx # VMware VMXNET3 Ethernet
# Ethernet NICs
device mdio
device mii
device miibus # MII bus support
device al_eth # Annapurna Alpine Ethernet NIC
device awg # Allwinner EMAC Gigabit Ethernet
device axa # AMD Opteron A1100 integrated NIC
device cgem # Cadence GEM Gigabit Ethernet device
device dwc_rk # Rockchip Designware
device dwc_socfpga # Altera SOCFPGA Ethernet MAC
device ffec # iMX FFEC
device genet # Broadcom on RPi4
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device neta # Marvell Armada 370/38x/XP/3700 NIC
device re # RealTek 8139C+/8169/8169S/8110S
device smc # SMSC LAN91C111
device vnic # Cavium ThunderX NIC
# Etherswitch devices
device etherswitch # Enable etherswitch support
device miiproxy # Required for etherswitch
device e6000sw # Marvell mv88e6085 based switches
# Pseudo devices.
device crypto # core crypto support
device loop # Network loopback
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tuntap # Packet tunnel.
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device firmware # firmware assist module
# EXT_RESOURCES pseudo devices
options EXT_RESOURCES
device clk
device phy
device hwreset
device nvmem
device regulator
device syscon
device aw_syscon
# IO Domains
device rk_iodomain
# 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
options USB_HOST_ALIGN=64 # Align usb buffers to cache line size.
device aw_usbphy # Allwinner USB PHY
device rk_usb2phy # Rockchip USB2PHY
device rk_typec_phy # Rockchip TypeC PHY
device dwcotg # DWC OTG controller
device musb # Mentor Graphics USB OTG controller
device ohci # OHCI USB interface
device uhci # UHCI USB interface
device ehci # EHCI USB interface (USB 2.0)
device ehci_mv # Marvell EHCI USB interface
device xhci # XHCI USB interface (USB 3.0)
device dwc3 # Synopsys DWC controller
device aw_dwc3 # Allwinner DWC3 controller
device rk_dwc3 # Rockchip DWC3 controller
device usb # USB Bus (required)
device ukbd # Keyboard
device umass # Disks/Mass storage - Requires scbus and da
device tegra210_xusb_fw # Tegra XUSB firmware
# USB ethernet support
device muge
device smcphy
device smsc
device ure
# Sound support
device sound
device a10_codec # Allwinner A10 codec
device aw_i2s # Allwinner I2S
device a33_codec # Allwinner A33 codec
device a64_codec # Allwinner A64 Analog codec
# MMC/SD/SDIO Card slot support
device sdhci
device sdhci_xenon # Marvell Xenon SD/MMC controller
device aw_mmc # Allwinner SD/MMC controller
device mmc # mmc/sd bus
device mmcsd # mmc/sd flash cards
device dwmmc
device dwmmc_altera
device dwmmc_hisi
device rk_dwmmc
device rk_emmcphy
# VirtIO support
device virtio # Generic VirtIO bus (required)
device virtio_pci # VirtIO PCI device
device virtio_mmio # VirtIO Memory Mapped IO device
device virtio_blk # VirtIO Block device
device virtio_scsi # VirtIO SCSI device
device vtnet # VirtIO Ethernet device
# Chip-specific errata
options THUNDERX_PASS_1_1_ERRATA
options FDT
device acpi
# DTBs
makeoptions MODULES_EXTRA="dtb/allwinner dtb/freescale dtb/imx8 dtb/nvidia dtb/mv dtb/rockchip dtb/rpi"
# HID support
options HID_DEBUG # enable debug msgs
device hid # Generic HID support
# Include SoC specific configuration
include "std.al"
include "std.allwinner"
include "std.altera"
include "std.amd"
include "std.arm"
include "std.broadcom"
include "std.cavium"
include "std.hisilicon"
include "std.imx"
include "std.marvell"
include "std.nvidia"
include "std.nxp"
include "std.qcom"
include "std.rockchip"
include "std.virt"
include "std.xilinx"

27
sys/arm64/conf/HISILICON Normal file
View File

@ -0,0 +1,27 @@
#
# HISILICON -- HiSilicon kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident HISILICON
include "std.arm64"
include "std.dev"
include "std.hisilicon"

27
sys/arm64/conf/IMX Normal file
View File

@ -0,0 +1,27 @@
#
# IMX -- IMX kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident IMX
include "std.arm64"
include "std.dev"
include "std.imx"

27
sys/arm64/conf/MARVELL Normal file
View File

@ -0,0 +1,27 @@
#
# MARVELL -- Marvell kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident MARVELL
include "std.arm64"
include "std.dev"
include "std.marvell"

27
sys/arm64/conf/NVIDIA Normal file
View File

@ -0,0 +1,27 @@
#
# NVIDIA -- NVIDIA kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident NVIDIA
include "std.arm64"
include "std.dev"
include "std.nvidia"

27
sys/arm64/conf/NXP Normal file
View File

@ -0,0 +1,27 @@
#
# NXP -- NXP kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident NXP
include "std.arm64"
include "std.dev"
include "std.nxp"

27
sys/arm64/conf/QCOM Normal file
View File

@ -0,0 +1,27 @@
#
# QCOM -- Qualcomm kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident QCOM
include "std.arm64"
include "std.dev"
include "std.qcom"

27
sys/arm64/conf/ROCKCHIP Normal file
View File

@ -0,0 +1,27 @@
#
# ROCKCHIP -- Rockchip kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident ROCKCHIP
include "std.arm64"
include "std.dev"
include "std.rockchip"

27
sys/arm64/conf/VIRT Normal file
View File

@ -0,0 +1,27 @@
#
# VIRT -- Virt kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident VIRM
include "std.arm64"
include "std.dev"
include "std.virt"

27
sys/arm64/conf/XILINX Normal file
View File

@ -0,0 +1,27 @@
#
# XILINX -- Xilinx kernel configuration file for FreeBSD/arm64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# https://docs.freebsd.org/en/books/handbook/kernelconfig/#kernelconfig-config
#
# 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 (https://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.
#
#NO_UNIVERSE
cpu ARM64
ident XILINX
include "std.arm64"
include "std.dev"
include "std.xilinx"

27
sys/arm64/conf/std.al Normal file
View File

@ -0,0 +1,27 @@
#
# Annapurna AL SoC support
#
# Annapurna Alpine drivers
device al_ccu # Alpine Cache Coherency Unit
device al_nb_service # Alpine North Bridge Service
device al_iofic # I/O Fabric Interrupt Controller
device al_serdes # Serializer/Deserializer
device al_udma # Universal DMA
# Bus drivers
device al_pci # Annapurna Alpine PCI-E
# Serial (COM) ports
device uart_ns8250 # ns8250-type UART driver
# Ethernet NICs
device al_eth # Annapurna Alpine Ethernet NIC
# 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
options FDT
device acpi

View File

@ -0,0 +1,72 @@
#
# Allwinner SoC support
#
# SoC support
options SOC_ALLWINNER_A64
options SOC_ALLWINNER_H5
options SOC_ALLWINNER_H6
# Timer drivers
device a10_timer
# DMA controller
device a31_dmac
# GPIO / PINCTRL
device aw_gpio # Allwinner GPIO controller
# I2C
device aw_rsb # Allwinner Reduced Serial Bus
device twsi # Allwinner I2C controller
device sy8106a # SY8106A Buck Regulator
# Clock and reset controllers
device aw_ccu # Allwinner clock controller
# Interrupt controllers
device aw_nmi # Allwinner NMI support
# Real-time clock support
device aw_rtc # Allwinner Real-time Clock
# Watchdog controllers
device aw_wdog # Allwinner Watchdog
# Power management controllers
device axp81x # X-Powers AXP81x PMIC
# EFUSE
device aw_sid # Allwinner Secure ID EFUSE
# Thermal sensors
device aw_thermal # Allwinner Thermal Sensor Controller
# PWM
# Serial (COM) ports
device uart_snps
# Ethernet NICs
device awg # Allwinner EMAC Gigabit Ethernet
# USB support
device aw_usbphy # Allwinner USB PHY
device musb # Mentor Graphics USB OTG controller
device dwc3 # Synopsys DWC controller
device aw_dwc3 # Allwinner DWC3 controller
# Sound support
device a10_codec
device a10_codec # Allwinner A10 codec
device aw_i2s # Allwinner I2S
device a33_codec # Allwinner A33 codec
device a64_codec # Allwinner A64 Analog codec
# MMC/SD/SDIO Card slot support
device aw_mmc # Allwinner SD/MMC controller
options FDT
# DTBs
makeoptions MODULES_EXTRA+="dtb/allwinner"

21
sys/arm64/conf/std.altera Normal file
View File

@ -0,0 +1,21 @@
#
# Altera SoC support
#
# SoC support
options SOC_INTEL_STRATIX10
# GPIO / PINCTRL
device dwgpio # Synopsys DesignWare APB GPIO Controller
# Serial (COM) ports
device uart_snps
# Ethernet NICs
device dwc_socfpga # Altera SOCFPGA Ethernet MAC
# MMC/SD/SDIO Card slot support
device dwmmc
device dwmmc_altera
options FDT

16
sys/arm64/conf/std.amd Normal file
View File

@ -0,0 +1,16 @@
#
# AMD Opteron SoC support
#
# GPIO / PINCTRL
device pl061 # Arm PL061 GPIO controller
# Serial (COM) ports
device pl011
# Ethernet NICs
device axa # AMD Opteron A1100 integrated NIC
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
options FDT
device acpi

15
sys/arm64/conf/std.arm Normal file
View File

@ -0,0 +1,15 @@
#
# ARM SoC support
#
# Bus drivers
device pci_n1sdp # ARM Neoverse N1 SDP PCI
# GPIO / PINCTRL
device pl061 # Arm PL061 GPIO controller
# Serial (COM) ports
device pl011
options FDT
device acpi

98
sys/arm64/conf/std.arm64 Normal file
View File

@ -0,0 +1,98 @@
# Standard kernel config items for all ARM64 systems.
#
# $FreeBSD$
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
options SCHED_ULE # ULE scheduler
options NUMA # Non-Uniform Memory Architecture support
options PREEMPTION # Enable kernel thread preemption
options VIMAGE # Subsystem virtualization, e.g. VNET
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options IPSEC_SUPPORT # Allow kldload of ipsec and tcpmd5
options ROUTE_MPATH # Multipath routing support
options FIB_ALGO # Modular fib lookups
options TCP_OFFLOAD # TCP offload
options TCP_HHOOK # hhook(9) framework for TCP
options TCP_RFC7413 # TCP Fast Open
options SCTP_SUPPORT # Allow kldload of SCTP
options KERN_TLS # TLS transmit & receive offload
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 /, requires NFSCL
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options TMPFS # Efficient memory filesystem
options GEOM_RAID # Soft RAID functionality.
options GEOM_LABEL # Provides labelization
options EFIRT # EFI Runtime Services support
options COMPAT_FREEBSD32 # Compatible with FreeBSD/arm
options COMPAT_FREEBSD11 # Compatible with FreeBSD11
options COMPAT_FREEBSD12 # Compatible with FreeBSD12
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 KBD_INSTALL_CDEV # install a CDEV entry in /dev
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_FRAME # Ensure frames are compiled in
options KDTRACE_HOOKS # Kernel DTrace hooks
options DDB_CTF # Kernel ELF linker loads CTF data
options VFP # Floating-point support
options RACCT # Resource accounting framework
options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
options RCTL # Resource limits
options INTRNG
options LINUX_BOOT_ABI # Boot using booti command from U-Boot
# 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 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
options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence
options VERBOSE_SYSINIT=0 # Support debug.verbose_sysinit, off by default
# Kernel Sanitizers
#options COVERAGE # Generic kernel coverage. Used by KCOV
#options KCOV # Kernel Coverage Sanitizer
# Warning: KUBSAN can result in a kernel too large for loader to load
#options KUBSAN # Kernel Undefined Behavior Sanitizer
#options KCSAN # Kernel Concurrency Sanitizer
# Kernel dump features.
options EKCD # Support for encrypted kernel dumps
options GZIO # gzip-compressed kernel and user dumps
options ZSTDIO # zstd-compressed kernel and user dumps
options DEBUGNET # debugnet networking
options NETDUMP # netdump(4) client support
# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel

View File

@ -0,0 +1,33 @@
#
# Broadcom SoC support
#
# SoC support
options SOC_BRCM_BCM2837
options SOC_BRCM_BCM2838
options SOC_BRCM_NS2
# I2C
device bcm2835_bsc # Broadcom BCM283x I2C bus
# SPI
device bcm2835_spi # Broadcom BCM283x SPI bus
# Serial (COM) ports
device uart_mu # RPI3 aux port
device pl011
# Ethernet NICs
device genet # Broadcom on RPi4
# USB ethernet support
device muge
# MMC/SD/SDIO Card slot support
device sdhci
options FDT
device acpi
# DTBs
makeoptions MODULES_EXTRA+="dtb/rpi"

27
sys/arm64/conf/std.cavium Normal file
View File

@ -0,0 +1,27 @@
#
# Cavium SoC support
#
# SoC support
options SOC_CAVM_THUNDERX
# Serial (COM) ports
device uart_ns8250 # ns8250-type UART driver
device uart_snps
device pl011
# Ethernet NICs
device vnic # Cavium ThunderX NIC
# VirtIO support
device virtio
device virtio_pci
device virtio_mmio
device virtio_blk
device vtnet
# Chip-specific errata
options THUNDERX_PASS_1_1_ERRATA
options FDT
device acpi

112
sys/arm64/conf/std.dev Normal file
View File

@ -0,0 +1,112 @@
# Bus drivers
device pci
options PCI_HP # PCI-Express native HotPlug
options PCI_IOV # PCI SR-IOV support
# CPU frequency control
device cpufreq
# Block devices
device ahci
device scbus
device da
# ATA/SCSI peripherals
device cd # CD
device pass # Passthrough device (direct ATA/SCSI access)
# NVM Express (NVMe) support
device nvme # base NVMe driver
options NVME_USE_NVD=0 # prefer the cam(4) based nda(4) driver
device nvd # expose NVMe namespaces as disks, depends on nvme
# GPIO / PINCTRL
device gpio
device gpioled
device fdt_pinctrl
device gpioregulator
# I2C
device iicbus
device iicmux
device iic
device icee # Generic IIC eeprom
# Crypto accelerators
device armv8crypto # ARMv8 OpenCrypto module
# SPI
device spibus
# PWM
device pwm
# Serial (COM) ports
device uart # Generic UART driver
# Console
device vt
device kbdmux
device vt_efifb
# Pseudo devices.
device crypto # core crypto support
device loop # Network loopback
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tuntap # Packet tunnel.
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device firmware # firmware assist module
# EXT_RESOURCES pseudo devices
options EXT_RESOURCES
device clk
device phy
device hwreset
device nvmem
device regulator
device syscon
# EVDEV support
device evdev # input event device support
options EVDEV_SUPPORT # evdev support in legacy drivers
device uinput # install /dev/uinput cdev
# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
device iflib
device em # Intel PRO/1000 Gigabit Ethernet Family
device ix # Intel 10Gb Ethernet Family
# Ethernet NICs
device mdio
device mii
device miibus # MII bus support
# 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
options USB_HOST_ALIGN=64 # Align usb buffers to cache line size.
device ohci # OHCI USB interface
device uhci # UHCI USB interface
device ehci # EHCI USB interface (USB 2.0)
device xhci # XHCI USB interface (USB 3.0)
device usb # USB Bus (required)
device ukbd # Keyboard
device umass # Disks/Mass storage - Requires scbus and da
# Sound support
device sound
# MMC/SD/SDIO Card slot support
device mmc # mmc/sd bus
device mmcsd # mmc/sd flash cards
# HID support
options HID_DEBUG # enable debug msgs
device hid # Generic HID support

View File

@ -0,0 +1,19 @@
#
# HiSilicon SoC support
#
# SoC support
options SOC_HISI_HI6220
# GPIO / PINCTRL
device dwgpio # Synopsys DesignWare APB GPIO Controller
# Serial (COM) ports
device uart_snps
# MMC/SD/SDIO Card slot support
device dwmmc
device dwmmc_hisi
options FDT
device acpi

21
sys/arm64/conf/std.imx Normal file
View File

@ -0,0 +1,21 @@
#
# IMX SoC support
#
# SoC support
options SOC_FREESCALE_IMX8
# I2C
device vf_i2c # Freescale Vybrid I2C controller
device fsliic # Freescale iMX I2C controller
# Serial (COM) ports
device uart_imx # iMX8 UART
# MMC/SD/SDIO Card slot support
device sdhci
options FDT
# DTBs
makeoptions MODULES_EXTRA+="dtb/imx8"

View File

@ -0,0 +1,58 @@
#
# Marvell SoC support
#
# SoC support
options SOC_MARVELL_8K
# GPIO / PINCTRL
device a37x0_gpio # Marvell Armada 37x0 GPIO controller
device mv_gpio # Marvell GPIO controller
device mvebu_pinctrl # Marvell Pinmux Controller
# I2C
device a37x0_iic # Armada 37x0 I2C controller
device twsi # Allwinner/Marvell I2C controller
# Interrupt controllers
device mv_cp110_icu # Marvell CP110 ICU
device mv_ap806_gicp # Marvell AP806 GICP
device mv_ap806_sei # Marvell AP806 SEI
# Real-time clock support
device mv_rtc # Marvell Real-time Clock
# Crypto accelerators
device safexcel # Inside Secure EIP-97
# Thermal sensors
device mv_thermal # Marvell Thermal Sensor Controller
# SPI
device a37x0_spi # Marvell Armada 37x0 SPI Controller
# Serial (COM) ports
device uart_mvebu # Armada 3700 UART driver
device uart_ns8250 # ns8250-type UART driver
device uart_snps
# Ethernet NICs
device neta # Marvell Armada 370/38x/XP/3700 NIC
# Etherswitch devices
device etherswitch # Enable etherswitch support
device miiproxy # Required for etherswitch
device e6000sw # Marvell mv88e6085 based switches
# USB support
device ehci_mv # Marvell EHCI USB interface
# MMC/SD/SDIO Card slot support
device sdhci
device sdhci_xenon # Marvell Xenon SD/MMC controller
options FDT
device acpi
# DTBs
makeoptions MODULES_EXTRA+="dtb/mv"

27
sys/arm64/conf/std.nvidia Normal file
View File

@ -0,0 +1,27 @@
#
# NVidia SoC support
#
# SoC support
options SOC_NVIDIA_TEGRA210
# Serial (COM) ports
device uart_ns8250 # ns8250-type UART driver
device uart_snps
# Ethernet NICs
device re # RealTek 8139C+/8169/8169S/8110S
# USB support
device tegra210_xusb_fw # Tegra XUSB firmware
# USB NICs
device ure
# MMC/SD/SDIO Card slot support
device sdhci
options FDT
# DTBs
makeoptions MODULES_EXTRA+="dtb/nvidia"

26
sys/arm64/conf/std.nxp Normal file
View File

@ -0,0 +1,26 @@
#
# NXP SoC support
#
# SoC support
options SOC_NXP_LS
# I2C
device pca9547 # NPX I2C bus multiplexer
device pcf8563 # NXP Real-time clock/calendar
# Serial (COM) ports
device uart_ns8250 # ns8250-type UART driver
device uart_snps
# USB support
device dwc3 # Synopsys DWC controller
# MMC/SD/SDIO Card slot support
device sdhci
options FDT
device acpi
# DTBs
makeoptions MODULES_EXTRA+="dtb/freescale"

14
sys/arm64/conf/std.qcom Normal file
View File

@ -0,0 +1,14 @@
#
# Qualcomm SoC support
#
# Qualcomm Snapdragon drivers
device qcom_gcc # Global Clock Controller
# Serial (COM) ports
device uart_msm # Qualcomm MSM UART driver
# MMC/SD/SDIO Card slot support
device sdhci
options FDT

View File

@ -0,0 +1,51 @@
#
# Rockchip SoC support
#
# SoC support
options SOC_ROCKCHIP_RK3328
options SOC_ROCKCHIP_RK3399
# GPIO / PINCTRL
device dwgpio # Synopsys DesignWare APB GPIO Controller
device rk_gpio # RockChip GPIO Controller
device rk_pinctrl # RockChip Pinmux Controller
# I2C
device rk_i2c # RockChip I2C controller
device fan53555 # Fairchild Semi FAN53555/SYR82x Regulator
# Power management controllers
device rk805 # RockChip RK805 PMIC
# SPI
device rk_spi # RockChip SPI controller
# PWM
device rk_pwm
# Serial (COM) ports
device uart_snps
# Ethernet NICs
device dwc_rk # Rockchip Designware
# IO Domains
device rk_iodomain
# USB support
device rk_usb2phy # Rockchip USB2PHY
device rk_typec_phy # Rockchip TypeC PHY
device dwc3 # Synopsys DWC controller
device rk_dwc3 # Rockchip DWC3 controller
# MMC/SD/SDIO Card slot support
device sdhci
device dwmmc
device rk_dwmmc
device rk_emmcphy
options FDT
# DTBs
makeoptions MODULES_EXTRA+="dtb/rockchip"

26
sys/arm64/conf/std.virt Normal file
View File

@ -0,0 +1,26 @@
#
# Virt SoC support
#
# Block devices
device pvscsi # VMware PVSCSI
# GPIO / PINCTRL
device pl061 # Arm PL061 GPIO controller
# Serial (COM) ports
device pl011
# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
device vmx # VMware VMXNET3 Ethernet
# VirtIO support
device virtio # Generic VirtIO bus (required)
device virtio_pci # VirtIO PCI device
device virtio_mmio # VirtIO Memory Mapped IO device
device virtio_blk # VirtIO Block device
device virtio_scsi # VirtIO SCSI device
device vtnet # VirtIO Ethernet device
options FDT
device acpi

19
sys/arm64/conf/std.xilinx Normal file
View File

@ -0,0 +1,19 @@
#
# Xilinx SoC support
#
# SoC support
options SOC_XILINX_ZYNQ
# Serial (COM) ports
device uart_ns8250 # ns8250-type UART driver
device uart_snps
device pl011
# Ethernet NICs
device cgem # Cadence GEM Gigabit Ethernet device
# MMC/SD/SDIO Card slot support
device sdhci
options FDT