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