xref: /src/sys/arm64/conf/NOTES (revision e506af08bb52bcf02553a35a385b7ef0b8692589)
1#
2# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
3#
4# This file contains machine dependent kernel configuration notes.  For
5# machine independent notes, look in /sys/conf/NOTES.
6#
7#
8
9#
10# We want LINT to cover profiling as well.
11# Except it's broken.
12#profile         2
13
14#
15# Enable the kernel DTrace hooks which are required to load the DTrace
16# kernel modules.
17#
18options 	KDTRACE_HOOKS
19options 	KDTRACE_MIB_SDT
20
21#
22# Most of the following is copied from ARM64 GENERIC.
23cpu		ARM64
24
25makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
26makeoptions	WITH_CTF=1		# Run ctfconvert(1) for DTrace support
27
28options 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
29options 	KDTRACE_FRAME		# Ensure frames are compiled in
30options 	VFP			# Floating-point support
31options 	RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
32
33# SoC support
34options 	SOC_ALLWINNER_A64
35options 	SOC_ALLWINNER_H5
36options 	SOC_ALLWINNER_H6
37options 	SOC_ALLWINNER_H616
38options 	SOC_BRCM_BCM2837
39options 	SOC_BRCM_BCM2838
40options 	SOC_BRCM_NS2
41options 	SOC_CAVM_THUNDERX
42options 	SOC_FREESCALE_IMX8
43options 	SOC_HISI_HI6220
44options 	SOC_INTEL_STRATIX10
45options 	SOC_MARVELL_8K
46options 	SOC_NVIDIA_TEGRA210
47options 	SOC_NXP_LS
48options 	SOC_ROCKCHIP
49options 	SOC_ROCKCHIP_RK3328
50options 	SOC_ROCKCHIP_RK3399
51options 	SOC_ROCKCHIP_RK3568
52options 	SOC_XILINX_ZYNQ
53
54# Timer drivers
55device		aw_timer
56
57# Annapurna Alpine drivers
58device		al_ccu			# Alpine Cache Coherency Unit
59device		al_nb_service		# Alpine North Bridge Service
60device		al_iofic		# I/O Fabric Interrupt Controller
61device		al_serdes		# Serializer/Deserializer
62device		al_udma			# Universal DMA
63
64# Qualcomm Snapdragon drivers
65device		qcom_gcc		# Global Clock Controller
66
67# Google Virtual NIC
68device		gve		# Google Virtual NIC (gVNIC) driver
69
70# Microsoft Hyper-V
71device		hyperv
72
73# CPU frequency control
74device		cpufreq
75
76# Accelerated software crypto
77device		armv8crypto		# ARMv8 OpenCrypto module
78device		ossl			# OpenSSL OpenCrypto module
79
80# Bus drivers
81device		al_pci		# Annapurna Alpine PCI-E
82options 	PCI_HP			# PCI-Express native HotPlug
83options 	PCI_IOV		# PCI SR-IOV support
84
85# Ethernet NICs
86device		mdio
87device		awg		# Allwinner EMAC Gigabit Ethernet
88device		axa		# AMD Opteron A1100 integrated NIC
89device		neta		# Marvell Armada 370/38x/XP/3700 NIC
90device  	smc		# SMSC LAN91C111
91device		vnic		# Cavium ThunderX NIC
92device		al_eth		# Annapurna Alpine Ethernet NIC
93device  	dwc		# Synopsys Designware GMAC Ethernet
94device		dwc_rk		# Rockchip Designware
95device		dwc_socfpga	# Altera SOCFPGA Ethernet MAC
96device		ixl		# Intel 700 Series Physical Function
97device		ice		# Intel 800 Series Physical Function
98device		ice_ddp		# Intel 800 Series DDP Package
99
100# Etherswitch devices
101device		e6000sw		# Marvell mv88e6085 based switches
102
103# Storage
104# Broadcom MPT Fusion, version 4, is 64-bit only
105device		mpi3mr			# LSI-Logic MPT-Fusion 4
106
107# MMC/SD/SDIO Card slot support
108device		sdhci_xenon		# Marvell Xenon SD/MMC controller
109device		aw_mmc			# Allwinner SD/MMC controller
110device		dwmmc
111device		dwmmc_altera
112device		rk_emmcphy
113
114# Serial (COM) ports
115device		uart_msm	# Qualcomm MSM UART driver
116device		uart_mu		# RPI3 aux port
117device		uart_mvebu	# Armada 3700 UART driver
118device		uart_ns8250	# ns8250-type UART driver
119device		uart_snps
120device		pl011
121
122# Early printf using the pl011 uart under the Arm FVP
123options 	SOCDEV_PA=0x1c090000
124options 	EARLY_PRINTF=pl011
125
126# USB support
127device		aw_usbphy		# Allwinner USB PHY
128device		dwcotg			# DWC OTG controller
129device		ehci_mv			# Marvell EHCI USB interface
130
131# USB ethernet support
132device		muge
133device		smsc
134
135# Sound support
136device a10_codec
137
138# DMA controller
139device		a31_dmac
140
141# GPIO / PINCTRL
142device		a37x0_gpio	# Marvell Armada 37x0 GPIO controller
143device		aw_gpio		# Allwinner GPIO controller
144device		fdt_pinctrl
145device		mv_gpio		# Marvell GPIO controller
146device		mvebu_pinctrl	# Marvell Pinmux Controller
147device		rk_gpio		# RockChip GPIO Controller
148device		rk_pinctrl	# RockChip Pinmux Controller
149
150# I2C
151device		aw_rsb		# Allwinner Reduced Serial Bus
152device		bcm2835_bsc	# Broadcom BCM283x I2C bus
153device		twsi		# Allwinner I2C controller
154device		rk_i2c		# RockChip I2C controller
155
156# Clock and reset controllers
157device		aw_ccu		# Allwinner clock controller
158
159# Interrupt controllers
160device		aw_nmi		# Allwinner NMI support
161device		mv_cp110_icu	# Marvell CP110 ICU
162device		mv_ap806_gicp	# Marvell AP806 GICP
163
164# Real-time clock support
165device		aw_rtc		# Allwinner Real-time Clock
166device		mv_rtc		# Marvell Real-time Clock
167
168# Watchdog controllers
169device		aw_wdog		# Allwinner Watchdog
170
171# Power management controllers
172device		axp81x		# X-Powers AXP81x PMIC
173device		rk8xx		# RockChip RK8XX base support
174device		rk805		# RockChip RK805 PMIC
175device		rk808		# RockChip RK808 PMIC
176device		rk817		# RockChip RK817 PMIC
177
178# EFUSE
179device		aw_sid		# Allwinner Secure ID EFUSE
180
181# Thermal sensors
182device		aw_thermal	# Allwinner Thermal Sensor Controller
183device		mv_thermal	# Marvell Thermal Sensor Controller
184
185# SPI
186device		bcm2835_spi	# Broadcom BCM283x SPI bus
187
188# PWM
189device		pwm
190device		aw_pwm
191
192device		vt_efifb
193device		vt_simplefb
194
195# EVDEV support
196options 	EVDEV_SUPPORT		# evdev support in legacy drivers
197device		aw_cir
198
199# Pseudo devices.
200device		clk
201device		efidev		# EFI pseudo-device
202device		efirtc		# EFI RTC
203device		phy
204device		hwreset
205device		nvmem
206device		regulator
207device		syscon
208device		aw_syscon
209
210# Backlight subsystem
211device		backlight
212
213# Misc devices.
214device		pl330		# ARM PL330 dma controller
215device		xdma		# xDMA framework for SoC on-chip dma controllers
216
217# Chip-specific errata
218options 	THUNDERX_PASS_1_1_ERRATA
219
220options 	EFIRT		# EFI Runtime Services
221options 	FDT
222device		acpi
223
224# DTBs
225makeoptions	MODULES_EXTRA="dtb/allwinner dtb/rockchip dtb/rpi"
226
227# Add CAMDEBUG stuff
228options 	CAMDEBUG
229options 	CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH)
230
231# bring in camified MMC too
232options 	MMCCAM
233
234# arm64 doesn't support inb/outb, so disable chipset probing which needs it
235nooptions 	PPC_PROBE_CHIPSET
236
237# These cause weird issues, not sure why
238nooptions 	DEBUG
239
240# Makes assumptions about bus tags that aren't true on arm64
241nodevice	snd_cmi
242
243# arm64 didn't exist for these releases, so doesn't have the required compat
244# support. Just disable them because they are meaningless.
245nooptions 	COMPAT_FREEBSD4
246nooptions 	COMPAT_FREEBSD5
247nooptions 	COMPAT_FREEBSD6
248nooptions 	COMPAT_FREEBSD7
249nooptions 	COMPAT_FREEBSD9
250nooptions 	COMPAT_FREEBSD10
251
252# arm64 supports 32-bit FreeBSD/arm binaries (armv[67] ABIs)
253options 	COMPAT_FREEBSD32	# Compatible with FreeBSD/arm
254
255options		IOMMU # ARM64 SMMU/IOMMU
256
257#####################################################################
258# ZFS support
259
260options 	ZFS
261
262#
263# HID-over-I2C support
264#
265device		iichid		# HID-over-I2C support
266options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
267options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
268