xref: /freebsd/sys/arm64/conf/NOTES (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
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_RK3328
47options 	SOC_ROCKCHIP_RK3399
48options 	SOC_XILINX_ZYNQ
49
50# Timer drivers
51device		a10_timer
52
53# Annapurna Alpine drivers
54device		al_ccu			# Alpine Cache Coherency Unit
55device		al_nb_service		# Alpine North Bridge Service
56device		al_iofic		# I/O Fabric Interrupt Controller
57device		al_serdes		# Serializer/Deserializer
58device		al_udma			# Universal DMA
59
60# Qualcomm Snapdragon drivers
61device		qcom_gcc		# Global Clock Controller
62
63# VirtIO support
64device		virtio
65device		virtio_pci
66device		virtio_mmio
67device		virtio_blk
68device		vtnet
69
70# Google Virtual NIC
71device		gve		# Google Virtual NIC (gVNIC) driver
72
73# Microsoft Hyper-V
74device		hyperv
75
76# CPU frequency control
77device		cpufreq
78
79# Accelerated software crypto
80device		armv8crypto		# ARMv8 OpenCrypto module
81device		ossl			# OpenSSL OpenCrypto module
82
83# Bus drivers
84device		al_pci		# Annapurna Alpine PCI-E
85options 	PCI_HP			# PCI-Express native HotPlug
86options 	PCI_IOV		# PCI SR-IOV support
87
88# Ethernet NICs
89device		mdio
90device		awg		# Allwinner EMAC Gigabit Ethernet
91device		axa		# AMD Opteron A1100 integrated NIC
92device		neta		# Marvell Armada 370/38x/XP/3700 NIC
93device  	smc		# SMSC LAN91C111
94device		vnic		# Cavium ThunderX NIC
95device		al_eth		# Annapurna Alpine Ethernet NIC
96device  	dwc		# Synopsys Designware GMAC Ethernet
97device		dwc_rk		# Rockchip Designware
98device		dwc_socfpga	# Altera SOCFPGA Ethernet MAC
99device		ice		# Intel 800 Series Physical Function
100device		ice_ddp		# Intel 800 Series DDP Package
101
102# Etherswitch devices
103device		e6000sw		# Marvell mv88e6085 based switches
104
105# NVM Express (NVMe) support
106device		nvme		# base NVMe driver
107options 	NVME_USE_NVD=0	# prefer the cam(4) based nda(4) driver
108device		nvd		# expose NVMe namespaces as disks, depends on nvme
109
110# MMC/SD/SDIO Card slot support
111device		sdhci_xenon		# Marvell Xenon SD/MMC controller
112device		aw_mmc			# Allwinner SD/MMC controller
113device		dwmmc
114device		dwmmc_altera
115device		rk_emmcphy
116
117# Serial (COM) ports
118device		uart_msm	# Qualcomm MSM UART driver
119device		uart_mu		# RPI3 aux port
120device		uart_mvebu	# Armada 3700 UART driver
121device		uart_ns8250	# ns8250-type UART driver
122device		uart_snps
123device		pl011
124
125# Early printf using the pl011 uart under the Arm FVP
126options 	SOCDEV_PA=0x1c090000
127options 	EARLY_PRINTF=pl011
128
129# USB support
130device		aw_usbphy		# Allwinner USB PHY
131device		dwcotg			# DWC OTG controller
132device		ehci_mv			# Marvell EHCI USB interface
133
134# USB ethernet support
135device		muge
136device		smsc
137
138# Sound support
139device a10_codec
140
141# DMA controller
142device		a31_dmac
143
144# GPIO / PINCTRL
145device		a37x0_gpio	# Marvell Armada 37x0 GPIO controller
146device		aw_gpio		# Allwinner GPIO controller
147device		fdt_pinctrl
148device		mv_gpio		# Marvell GPIO controller
149device		mvebu_pinctrl	# Marvell Pinmux Controller
150device		rk_gpio		# RockChip GPIO Controller
151device		rk_pinctrl	# RockChip Pinmux Controller
152
153# I2C
154device		aw_rsb		# Allwinner Reduced Serial Bus
155device		bcm2835_bsc	# Broadcom BCM283x I2C bus
156device		twsi		# Allwinner I2C controller
157device		rk_i2c		# RockChip I2C controller
158
159# Clock and reset controllers
160device		aw_ccu		# Allwinner clock controller
161
162# Interrupt controllers
163device		aw_nmi		# Allwinner NMI support
164device		mv_cp110_icu	# Marvell CP110 ICU
165device		mv_ap806_gicp	# Marvell AP806 GICP
166
167# Real-time clock support
168device		aw_rtc		# Allwinner Real-time Clock
169device		mv_rtc		# Marvell Real-time Clock
170
171# Watchdog controllers
172device		aw_wdog		# Allwinner Watchdog
173
174# Power management controllers
175device		axp81x		# X-Powers AXP81x PMIC
176device		rk805		# RockChip RK805 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.
200options 	EFIRT		# EFI Runtime Services
201device		clk
202device		phy
203device		hwreset
204device		nvmem
205device		regulator
206device		syscon
207device		aw_syscon
208
209# Backlight subsystem
210device		backlight
211
212# Misc devices.
213device		pl330		# ARM PL330 dma controller
214device		xdma		# xDMA framework for SoC on-chip dma controllers
215
216# Chip-specific errata
217options 	THUNDERX_PASS_1_1_ERRATA
218
219options 	FDT
220device		acpi
221
222# DTBs
223makeoptions	MODULES_EXTRA="dtb/allwinner dtb/rockchip dtb/rpi"
224
225# Add CAMDEBUG stuff
226options 	CAMDEBUG
227options 	CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH)
228
229# bring in camified MMC too
230options 	MMCCAM
231
232# arm64 doesn't support inb/outb, so disable chipset probing which needs it
233nooptions 	PPC_PROBE_CHIPSET
234
235# These cause weird issues, not sure why
236nooptions 	DEBUG
237
238# Makes assumptions about bus tags that aren't true on arm64
239nodevice	snd_cmi
240
241# arm64 didn't exist for these releases, so doesn't have the required compat
242# support. Just disable them because they are meaningless.
243nooptions 	COMPAT_FREEBSD4
244nooptions 	COMPAT_FREEBSD5
245nooptions 	COMPAT_FREEBSD6
246nooptions 	COMPAT_FREEBSD7
247nooptions 	COMPAT_FREEBSD9
248nooptions 	COMPAT_FREEBSD10
249
250# arm64 supports 32-bit FreeBSD/arm binaries (armv[67] ABIs)
251options 	COMPAT_FREEBSD32	# Compatible with FreeBSD/arm
252
253#####################################################################
254# ZFS support
255
256options 	ZFS
257
258#
259# HID-over-I2C support
260#
261device		iichid		# HID-over-I2C support
262options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
263options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
264