#
# $NetBSD: GENERIC64,v 1.211 2023/04/16 16:55:01 jmcneill Exp $
#
# GENERIC ARM (aarch64) kernel
#
include "arch/evbarm/conf/std.generic64"
include "arch/evbarm/conf/files.generic64"
include "arch/evbarm/conf/GENERIC.common"
maxusers 64
options CPU_CORTEX
options CPU_THUNDERX
options SOC_APPLE
options SOC_BCM2837
options SOC_MESONG12
options SOC_MESONGXBB
options SOC_MESONGXL
options SOC_RK3328
options SOC_RK3399
options SOC_RK3588
options SOC_SUN50I_A64
options SOC_SUN50I_H5
options SOC_SUN50I_H6
options SOC_TEGRA210
options MULTIPROCESSOR
pseudo-device openfirm # /dev/openfirm
#options DIAGNOSTIC # internal consistency checks
#options DEBUG
#options LOCKDEBUG
#options VERBOSE_INIT_ARM # verbose bootstrapping messages
options INCLUDE_CONFIG_FILE
#options UVMHIST # kernhist for uvm/pmap subsystems
#options UVMHIST_PRINT,KERNHIST_DELAY=0
#options PCI_CONFIG_DUMP # verbosely dump PCI config space
# EARLYCONS is required for early init messages from VERBOSE_INIT_ARM.
#options EARLYCONS=bcm2837, CONSADDR=0x3f215040
#options EARLYCONS=bcm2711, CONSADDR=0xfe215040
#options EARLYCONS=meson, CONSADDR=0xc81004c0
#options EARLYCONS=rk3328, CONSADDR=0xff130000
#options EARLYCONS=rk3399, CONSADDR=0xff1a0000
#options EARLYCONS=rk3588, CONSADDR=0xfeb50000
#options EARLYCONS=sunxi, CONSADDR=0x01c28000
#options EARLYCONS=tegra, CONSADDR=0x70006000
#options EARLYCONS=thunderx, CONSADDR=0x87e024000000
# The QEMU virt machine
#options EARLYCONS=plcom, CONSADDR=0x09000000
# Hardware management of the Access flag and dirty state (HAFDBS).
options ARMV81_HAFDBS
# Privileged Access Never (PAN).
options ARMV81_PAN
# Pointer Authentication (PAC).
#makeoptions ARMV83_PAC=1
#options ARMV83_PAC
# Branch Target Identification (BTI).
#makeoptions ARMV85_BTI=1
#options ARMV85_BTI
# Kernel Undefined Behavior Sanitizer (kUBSan). Use UBSAN_ALWAYS_FATAL
# if you want panics instead of warnings.
#options KUBSAN # mandatory
#options UBSAN_ALWAYS_FATAL # optional
# Kernel Address Sanitizer (kASan). The quarantine is optional and can
# help KASAN find more use-after-frees. Use KASAN_PANIC if you want panics
# instead of warnings.
#makeoptions KASAN=1 # mandatory
#options KASAN # mandatory
#options POOL_QUARANTINE # optional
#options KASAN_PANIC # optional
# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options ACPIVERBOSE # verbose ACPI configuration messages
#options MIIVERBOSE # verbose PHY autoconfig messages
#options PCIVERBOSE # verbose PCI device autoconfig messages
#options PCMCIAVERBOSE # verbose PCMCIA configuration messages
#options SCSIVERBOSE # human readable SCSI error messages
#options USBVERBOSE # verbose USB device autoconfig messages
makeoptions DEBUG="-g" # compile full symbol table
makeoptions COPY_SYMTAB=1
config netbsd root on ? type ?
#options COMPAT_NETBSD32 # already defined in GENERIC.common (there
options EXEC_ELF32 # for a.out, but here we need it for elf32)
#options COMPAT_LINUX # binary compatibility with Linux
#options COMPAT_LINUX32 # binary compatibility with Linux 32-bit
#options COMPAT_50 # COMPAT_LINUX depends on
#options COMPAT_OSSAUDIO # binary compatibility with Linux
# EFI runtime support
options EFI_RUNTIME
pseudo-device efi # /dev/efi
# Device tree support
armfdt0 at root
simplebus* at fdt? pass 0
# ACPI support
acpifdt* at fdt? pass 1
acpi* at acpifdt?
acpiacad* at acpi?
acpibat* at acpi?
acpibut* at acpi?
acpicppc* at acpi?
acpipcd* at acpi?
acpipcc* at acpi?
acpifan* at acpi?
acpiged* at acpi?
acpilid* at acpi?
acpitz* at acpi?
# CPUs
cpus* at fdt? pass 0
cpu* at fdt? pass 0
cpu* at acpi?
vmt* at fdt? # VMware Tools
# Performance monitors
armpmu* at fdt?
pseudo-device tprof
# CPU frequency scaling
cpufreqdt* at cpu?
# Power State Coordination Interface (PSCI)
psci* at fdt? pass 0
fclock* at fdt? pass 1
ffclock* at fdt? pass 1
fregulator* at fdt? pass 4
gregulator* at fdt? pass 4
pregulator* at fdt? pass 4
gpiokeys* at fdt?
wskbd* at gpiokeys? console ? mux 1
gpioleds* at fdt?
# System Controller
syscon* at fdt? pass 1 # Generic System Controller
sunxisramc* at fdt? pass 1 # Allwinner System Control
# Timer
gtmr* at fdt? pass 2 # ARM Generic Timer
gtmr* at acpi?
armgtmr0 at gtmr?
tegratimer* at fdt? # Timers
# Watchdog
applewdog* at fdt? # Apple watchdog
bcmpmwdog* at fdt? # Broadcom BCM283x watchdog
dwcwdt* at fdt? # DesignWare watchdog
dwcwdt* at acpi?
mesongxwdt* at fdt? # Amlogic Meson GX watchdog
sbsawdt* at acpi? # ARM SBSA-compliant watchdog
sunxiwdt* at fdt? # Allwinner watchdog
# Interrupt controller
appleintc* at fdt? pass 1 # Apple AIC
bcmicu* at fdt? pass 1 # Broadcom BCM283x ICU
tegralic* at fdt? pass 1 # NVIDIA Tegra LIC
gic* at fdt? pass 1 # ARM GICv2
gic* at acpi?
armgic0 at gic?
gicvthree* at fdt? pass 1 # ARM GICv3
gicvthree* at acpi?
imx7gpc* at fdt? pass 2 # IMX GPCv2
sunxinmi* at fdt? pass 2 # Allwinner NMI / R_INTC
# IOMMU
appledart* at fdt? pass 3 # Apple DART
# Memory controller
tegramc* at fdt? pass 4 # NVIDIA Tegra MC
# Firmware devices
applesmc* at fdt? pass 3 # Apple RTKIT based SMC
bcmmbox* at fdt? # Broadcom VideoCore IV mailbox
bcmmbox* at acpi?
vcmbox* at bcmmbox?
qemufwcfg* at fdt? # QEMU Firmware Configuration device
qemufwcfg* at acpi?
# DMA controller
bcmdmac* at fdt? # Broadcom BCM283x DMA controller
sun6idma* at fdt? pass 4 # Allwinner DMA controller (sun6i)
tegraapbdma* at fdt? pass 4 # NVIDIA Tegra APB DMA
# FUSE controller
sunxisid* at fdt? pass 4 # Allwinner SID
tegrafuse* at fdt? pass 4 # NVIDIA Tegra FUSE
# Power management controller
tegrapmc* at fdt? pass 4 # NVIDIA Tegra PMC
# Mailbox controller
applembox* at fdt? pass 2 # Apple Mailbox
# Clock and Reset controller
bcmcprman* at fdt? pass 1 # Broadcom BCM283x Clock Manager
bcmaux* at fdt? pass 1 # Broadcom BCM283x Aux Periph Clocks
g12aoclkc* at fdt? pass 2 # Amlogic Meson G12 AO clock controller
g12clkc* at fdt? pass 2 # Amlogic Meson G12 EE clock controller
gxbbaoclkc* at fdt? pass 2 # Amlogic Meson GXBB AO clock controller
gxbbclkc* at fdt? pass 2 # Amlogic Meson GXBB/GXL EE clock controller
imx8mqccm* at fdt? pass 2 # NXP iMX8MQ CCM
mesonresets* at fdt? pass 2 # Amlogic Meson misc. clock resets
rkcru* at fdt? pass 2 # Rockchip RK3328 CRU
sun8ih3ccu* at fdt? pass 2 # Allwinner H3/H5 CCU
sun8ih3rccu* at fdt? pass 2 # Allwinner H3/H5 CCU (PRCM)
sun50ia64ccu* at fdt? pass 2 # Allwinner A64 CCU
sun50ia64rccu* at fdt? pass 2 # Allwinner A64 CCU (PRCM)
sun50ih6ccu* at fdt? pass 2 # Allwinner H6 CCU
sun50ih6rccu* at fdt? pass 2 # Allwinner H6 CCU (PRCM)
sunxide2ccu* at fdt? pass 3 # Allwinner DE2 clock controller
sunxiresets* at fdt? pass 1 # Allwinner misc. resets
sunxigates* at fdt? pass 1 # Allwinner misc. gates
sunxigmacclk* at fdt? pass 2 # Allwinner GMAC MII/RGMII clock mux
tegra210car* at fdt? pass 3 # NVIDIA Tegra CAR (T210)
# GPIO controller
applepinctrl* at fdt? # Apple GPIO
bcmgpio* at fdt? pass 3 # Broadcom BCM283x GPIO
imxgpio* at fdt? pass 3 # IMX GPIO
mesonpinctrl* at fdt? pass 2 # Amlogic Meson GPIO
plgpio* at fdt? # ARM PrimeCell PL061 GPIO
plgpio* at acpi?
sunxigpio* at fdt? pass 3 # Allwinner GPIO
tegragpio* at fdt? pass 2 # NVIDIA Tegra GPIO
rkgpio* at rkiomux? # Rockchip GPIO
gpio* at gpiobus?
# PWM controller
mesonpwm* at fdt? pass 3 # Amlogic PWM
rkpwm* at fdt? pass 3 # Rockchip PWM
sunxipwm* at fdt? pass 3 # Allwinner PWM
# MPIO / Pinmux
imxiomux* at fdt? pass 2 # IMX IOMUX
rkiomux* at fdt? pass 3 # Rockchip IOMUX
tegrapinmux* at fdt? # NVIDIA Tegra MPIO
# XUSB PADCTL
tegra210xpad* at fdt? # NVIDIA Tegra XUSB PADCTL (T210)
tegra210xphy* at tegra210xpad?
# PCIE
applepcie* at fdt? # Apple PCIe
pcihost* at fdt? # Generic PCI host controller
acpipchb* at acpi? # ACPI PCIe host bridge
rkpcie* at fdt? # Rockchip AXI PCIE
rkpciephy* at fdt? pass 9 # Rockchip AXI PCIE PHY
tegrapcie0 at fdt? # NVIDIA Tegra PCIE
pci* at pcibus?
ppb* at pci? dev ? function ?
pci* at ppb?
# Ethernet
awge* at fdt? # DesignWare Gigabit Ethernet
emac* at fdt? # Allwinner Gigabit Ethernet (EMAC)
enet* at fdt? # IMX FEC
eqos* at acpi? # DesignWare Ethernet QoS
eqos* at fdt?
genet* at acpi? # Broadcom GENET v5
genet* at fdt?
#scx* at acpi? # Socionext Gigabit Ethernet
#scx* at fdt?
aq* at pci? dev ? function ? # Aquantia AQC 10 gigabit
bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet
ena* at pci? dev ? function ? # Amazon.com Elastic Network Adapter
ixg* at pci? dev ? function ? # Intel 8259x 10 gigabit
ixv* at pci? dev ? function ? # Intel 8259x 10G virtual function
mcx* at pci? dev ? function ? # Mellanox 5th generation Ethernet
mskc* at pci? dev ? function ? # Marvell Yukon 2 Gigabit Ethernet
msk* at mskc?
re* at pci? dev ? function ? # Realtek RTL8111GS
rge* at pci? dev ? function ? # Realtek 8125
vmx* at pci? dev ? function ? # VMware VMXNET3
wm* at pci? dev ? function ? # Intel Gigabit Ethernet
# MII/PHY support
atphy* at mii? phy ? # Attansic/Atheros PHYs
brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs
exphy* at mii? phy ? # 3Com internal PHYs
gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs
glxtphy* at mii? phy ? # Level One LXT-1000 PHYs
gphyter* at mii? phy ? # NS83861 Gig-E PHY
gxlphy* at mii? phy ? # Amlogic Meson GX internal PHY
icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
igphy* at mii? phy ? # Intel IGP01E1000
ihphy* at mii? phy ? # Intel 82577 PHYs
ikphy* at mii? phy ? # Intel 82563 PHYs
inphy* at mii? phy ? # Intel 82555 PHYs
iophy* at mii? phy ? # Intel 82553 PHYs
lxtphy* at mii? phy ? # Level One LXT-970 PHYs
makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs
mcommphy* at mii? phy ? # Motorcomm YT8511C/YT8511H PHYs
nsphy* at mii? phy ? # NS83840 PHYs
nsphyter* at mii? phy ? # NS83843 PHYs
pnaphy* at mii? phy ? # generic HomePNA PHYs
rdcphy* at mii? phy ? # RDC R6040 10/100 PHY
rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs
rlphy* at mii? phy ? # Realtek 8139/8201L PHYs
smscphy* at mii? phy ? # SMSC LAN87xx PHYs
sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
tlphy* at mii? phy ? # ThunderLAN PHYs
tqphy* at mii? phy ? # TDK Semiconductor PHYs
urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
ukphy* at mii? phy ? # generic unknown PHYs
# Mini-PCIe Wireless
#options ATHHAL_AR5212,ATHHAL_RF2425 # AR5BHB63
#ath* at pci? dev ? function ? # Atheros IEEE 802.11
#athn* at pci? dev ? function ? # Atheros IEEE 802.11
# UART
com* at fdt? pass 4 # UART
com* at acpi?
exuart* at fdt? pass 4 # SSCOM UART
imxuart* at fdt? pass 4 # IMX UART
options IMXUARTCONSOLE
mesonuart* at fdt? pass 4 # Amlogic Meson UART
plcom* at fdt? pass 4 # ARM PL011 UART
plcom* at acpi?
puc* at pci? dev ? function ? # PCI "universal" comm. cards
com* at puc? port ?
# I2C controllers
options I2C_MAX_ADDR=0xfff
appleiic* at fdt? # Apple I2C
bsciic* at fdt? # Broadcom BCM283x Serial Control
bsciic* at acpi?
dwiic* at fdt? # Designware I2C
dwiic* at acpi?
imxi2c* at fdt? pass 4 # IMX I2C
nxpiic* at acpi? # NXP Layerscape I2C
rkiic* at fdt? pass 4 # Rockchip I2C
sunxirsb* at fdt? pass 4 # Allwinner RSB
sunxitwi* at fdt? # Allwinner TWI
tegrai2c* at fdt? pass 4 # NVIDIA Tegra I2C
#sniiic* at fdt? # Socionext SC2A11 I2C
#sniiic* at acpi?
iicmux* at fdt? pass 5 # I2C mux virtual controllers
iic* at i2cbus?
# I2C devices
titemp* at iic?
seeprom* at iic?
spdmem* at iic? # memory module SPD EEPROM decoder
as3722pmic* at iic?
as3722reg* at as3722pmic?
axppmic* at iic? # X-Powers AXP Power Management IC
axpreg* at axppmic?
cwfg* at iic? # CellWise CW2015 Fuel Gauge IC
dsrtc* at iic? # Dallas Semiconductor RTCs
es8316ac* at iic? # Everest Semi ES8316 Audio CODEC
fan53555reg* at iic? # FAN53555 / SY82x regulator
max77620pmic* at iic?
pcaiicmux* at iic? # PCA954x / PCA984x I2C switch / mux
pcf8563rtc* at iic? # PCF8563 RTC
rkpmic* at iic? # Rockchip Power Management IC
rkreg* at rkpmic?
tcagpio* at iic?
# Power Domain controllers
applepmgr* at fdt? pass 0
# Random number generators and security devices
amdccp* at fdt? # AMD Cryptograhic Coprocessor RNG
amdccp* at acpi?
bcmrng* at fdt? # Broadcom BCM283x RNG
mesonrng* at fdt? # Amlogic Meson RNG
rkv1crypto* at fdt? # Rockchip Crypto v1
sun8icrypto* at fdt? # Allwinner Crypto Engine
tpm* at acpi? # Trusted Platform Module
# RTC
plrtc* at fdt? # ARM PrimeCell RTC
sunxirtc* at fdt? pass 4 # Allwinner RTC
tegrartc* at fdt? # NVIDIA Tegra RTC
# SDMMC
bcmsdhost* at fdt? # Broadcom BCM283x SD Host Interface
dwcmmc* at acpi? # DesignWare SD/MMC
dwcmmc* at fdt?
mesongxmmc* at fdt? # Amlogic Meson GX eMMC/SD/SDIO controller
mmcpwrseq* at fdt? pass 5 # Simple MMC power sequence provider
rkemmcphy* at fdt? # Rockchip eMMC PHY
sdhc* at fdt? # SD Host Controller Interface
sdhc* at acpi?
sunximmc* at fdt? # Allwinner SD/MMC
#sniemmc* at fdt? # Socionext SC2A11 eMMC
#sniemmc* at acpi?
sdmmc* at sdmmcbus?
ld0 at sdmmc0
ld1 at sdmmc1
ld2 at sdmmc2
ld3 at sdmmc3
ld* at sdmmc?
bwfm* at sdmmc? # Broadcom BCM43xxx WiFi Interface
# SATA
ahcisata* at fdt? # AHCI SATA
ahcisata* at acpi?
ahcisata* at pci? dev ? function ?
siisata* at pci? dev ? function ?
atabus* at ata?
atapibus* at atapi?
wd* at atabus? drive ?
cd* at atapibus? drive ?
# NVMe
nvme* at fdt? # Apple M1
nvme* at pci? dev ? function ?
ld* at nvme? nsid ?
# SPI controllers
bcmspi* at fdt? # Broadcom BCM283x SPI
rkspi* at fdt? # Rockchip SPI
sun6ispi* at fdt? # Allwinner SPI
spi* at spibus?
m25p* at spi?
spiflash* at spiflashbus?
# Broadcom VCHIQ, etc
vchiq* at fdt?
vchiq* at acpi?
vcaudio0 at vchiq?
# Audio support
hdaudio* at fdt? # Intel HDA
hdaudio* at pci? dev ? function ?
hdafg* at hdaudiobus?
options HDAUDIOVERBOSE
ausoc* at fdt? # Simple SoC audio card
simpleamp* at fdt? # Simple amplifier
spdiftx* at fdt? # SPDIF transmitter
rki2s* at fdt? # Rockchip I2S/PCM
sunxicodec* at fdt? # Allwinner audio codec
sun8icodec* at fdt? # Allwinner audio codec (sun8i/sun50i)
h3codec* at fdt? # Allwinner H3 audio codec (analog part)
a64acodec* at fdt? # Allwinner A64 audio codec (analog part)
sunxii2s* at fdt? # Allwinner I2S/PCM
audio* at audiobus?
spkr* at audio? # PC speaker (synthesized)
# HDMI CEC
tegracec0 at fdt? # NVIDIA Tegra HDMI CEC
hdmicec* at hdmicecbus?
# Display
anxdp* at fdt? # Analogix-based (e)DP
anxedp* at iic? # Analogix eDP TX
dispcon* at fdt? # Display connector devices
panel* at fdt? # Display panels
dwhdmi* at fdt? # Designware HDMI TX
rkdrm* at fdt? pass 5 # Rockchip DRM master
rkfb* at rkdrm? # Rockchip DRM framebuffer
rkvop* at fdt? # Rockchip Visual Output Processor
sunxide2bus* at fdt? pass 4 # Allwinner DE2 bus
sunxidrm* at fdt? pass 5 # Allwinner Display Pipeline
sunxifb* at sunxidrm? # Allwinner DRM framebuffer
sunxihdmiphy* at fdt? pass 9 # Allwinner HDMI TX PHY
sunxilcdc* at fdt? # Allwinner DE2 timing controller
sunximixer* at fdt? # Allwinner DE2 mixer
#tegradrm* at fdt? # NVIDIA Tegra Display
#tegrafb* at tegrafbbus?
genfb* at fdt? # Simple Framebuffer
wsdisplay* at wsemuldisplaydev?
options VCONS_DRAW_INTR
options WSEMUL_VT100
options WSDISPLAY_CUSTOM_OUTPUT
options WS_DEFAULT_FG=WSCOL_WHITE
options WS_DEFAULT_BG=WSCOL_BLACK
options WS_KERNEL_FG=WSCOL_GREEN
options WS_KERNEL_BG=WSCOL_BLACK
options WSDISPLAY_COMPAT_PCVT
options WSDISPLAY_COMPAT_SYSCONS
options WSDISPLAY_COMPAT_USL
options WSDISPLAY_COMPAT_RAWKBD
options WSDISPLAY_DEFAULTSCREENS=4
options WSDISPLAY_MULTICONS
options WSDISPLAY_SCROLLSUPPORT
pseudo-device wsmux
pseudo-device wsfont
options FONT_BOLD8x16
options FONT_BOLD16x32
# GPU
#nouveau* at fdt? # NVIDIA GPU
#nouveau* at pci? dev ? function ?
#nouveaufb* at nouveaufbbus?
radeon* at pci? dev ? function ? # AMD Radeon
radeondrmkmsfb* at radeonfbbus?
# Backlight
pwmbacklight* at fdt? # PWM Backlight controls
# Fan
pwmfan* at fdt? # PWM Fan controls
# Thermal throttling controller
mesonthermal* at fdt? # Amlogic thermal sensor controller
sunxithermal* at fdt? # Allwinner thermal sensor controller
tegrasoctherm* at fdt? # NVIDIA Tegra SOC_THERM
rktsadc* at fdt? # RockChip TSASC
# USB
imx8mqusbphy* at fdt? pass 9 # IMX USB PHY
mesonusbctrl* at fdt? # Amlogic Meson USB-Glue (dwc2 and dwc3)
mesonusbphy* at fdt? pass 9 # Amlogic Meson USB2 PHY
mesong12u2phy* at fdt? pass 9 # Amlogic Meson G12 USB2 PHY
mesong12u3pphy* at fdt? pass 9 # Amlogic Meson G12 USB3/PCIe PHY
mesongxlu2phy* at fdt? pass 9 # Amlogic Meson GXL USB2 PHY
mesongxlu3phy* at fdt? pass 9 # Amlogic Meson GXL USB3 PHY
rkusb* at fdt? pass 9 # Rockchip USB PHY
rkusbphy* at rkusb?
sunxiusbphy* at fdt? pass 9 # Allwinner USB PHY
sunxiusb3phy* at fdt? pass 9 # Allwinner USB3 PHY
tegrausbphy* at fdt? # NVIDIA Tegra USB PHY
dwctwo* at fdt? # Designware USB DRD
ehci* at fdt? # EHCI
ehci* at pci? # EHCI
ehci* at acpi? # EHCI
motg* at fdt? # Mentor Graphics USB OTG
ohci* at fdt? # OHCI
ohci* at pci? # OHCI
ohci* at acpi? # OHCI
xhci* at fdt? # XHCI
xhci* at pci? # XHCI
xhci* at acpi? # XHCI
usb* at usbus?
include "dev/usb/usbdevices.config"
midi* at midibus?
pseudo-device sequencer # MIDI sequencer
# Virtio devices
virtio* at fdt? # Virtio MMIO device
virtio* at acpi?
virtio* at pci? dev ? function ?
#viomb* at virtio? # Virtio memory balloon device
ld* at virtio? # Virtio disk device
vioif* at virtio? # Virtio network device
viornd* at virtio? # Virtio entropy device
vioscsi* at virtio? # Virtio SCSI device
# SCSI controllers
mpt* at pci? dev ? function ?
# SCSI bus support
scsibus* at scsi?
sd* at scsibus? target ? lun ? # SCSI disk drives
# Pull in optional local configuration - always at end
cinclude "arch/evbarm/conf/GENERIC64.local"