xref: /freebsd/sys/arm64/conf/NOTES (revision e32fecd0c2c3ee37c47ee100f169e7eb0282a873)
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# $FreeBSD$
8#
9
10#
11# We want LINT to cover profiling as well.
12# Except it's broken.
13#profile         2
14
15#
16# Enable the kernel DTrace hooks which are required to load the DTrace
17# kernel modules.
18#
19options 	KDTRACE_HOOKS
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_BRCM_BCM2837
38options 	SOC_BRCM_BCM2838
39options 	SOC_BRCM_NS2
40options 	SOC_CAVM_THUNDERX
41options 	SOC_FREESCALE_IMX8
42options 	SOC_HISI_HI6220
43options 	SOC_INTEL_STRATIX10
44options 	SOC_MARVELL_8K
45options 	SOC_NVIDIA_TEGRA210
46options 	SOC_NXP_LS
47options 	SOC_ROCKCHIP_RK3328
48options 	SOC_ROCKCHIP_RK3399
49options 	SOC_XILINX_ZYNQ
50
51# Timer drivers
52device		a10_timer
53
54# Annapurna Alpine drivers
55device		al_ccu			# Alpine Cache Coherency Unit
56device		al_nb_service		# Alpine North Bridge Service
57device		al_iofic		# I/O Fabric Interrupt Controller
58device		al_serdes		# Serializer/Deserializer
59device		al_udma			# Universal DMA
60
61# Qualcomm Snapdragon drivers
62device		qcom_gcc		# Global Clock Controller
63
64# VirtIO support
65device		virtio
66device		virtio_pci
67device		virtio_mmio
68device		virtio_blk
69device		vtnet
70
71# Microsoft Hyper-V
72device		hyperv
73
74# CPU frequency control
75device		cpufreq
76
77# Accelerated software crypto
78device		armv8crypto		# ARMv8 OpenCrypto module
79device		ossl			# OpenSSL OpenCrypto module
80
81# Bus drivers
82device		al_pci		# Annapurna Alpine PCI-E
83options 	PCI_HP			# PCI-Express native HotPlug
84options 	PCI_IOV		# PCI SR-IOV support
85
86# Ethernet NICs
87device		mdio
88device		awg		# Allwinner EMAC Gigabit Ethernet
89device		axa		# AMD Opteron A1100 integrated NIC
90device		neta		# Marvell Armada 370/38x/XP/3700 NIC
91device  	smc		# SMSC LAN91C111
92device		vnic		# Cavium ThunderX NIC
93device		al_eth		# Annapurna Alpine Ethernet NIC
94device		dwc_rk		# Rockchip Designware
95device		dwc_socfpga	# Altera SOCFPGA Ethernet MAC
96device		ice		# Intel 800 Series Physical Function
97device		ice_ddp		# Intel 800 Series DDP Package
98
99# Etherswitch devices
100device		e6000sw		# Marvell mv88e6085 based switches
101
102# NVM Express (NVMe) support
103device		nvme		# base NVMe driver
104options 	NVME_USE_NVD=0	# prefer the cam(4) based nda(4) driver
105device		nvd		# expose NVMe namespaces as disks, depends on nvme
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# USB support
123device		aw_usbphy		# Allwinner USB PHY
124device		dwcotg			# DWC OTG controller
125device		ehci_mv			# Marvell EHCI USB interface
126
127# USB ethernet support
128device		muge
129device		smsc
130
131# Sound support
132device a10_codec
133
134# DMA controller
135device		a31_dmac
136
137# GPIO / PINCTRL
138device		a37x0_gpio	# Marvell Armada 37x0 GPIO controller
139device		aw_gpio		# Allwinner GPIO controller
140device		fdt_pinctrl
141device		mv_gpio		# Marvell GPIO controller
142device		mvebu_pinctrl	# Marvell Pinmux Controller
143device		rk_gpio		# RockChip GPIO Controller
144device		rk_pinctrl	# RockChip Pinmux Controller
145
146# I2C
147device		aw_rsb		# Allwinner Reduced Serial Bus
148device		bcm2835_bsc	# Broadcom BCM283x I2C bus
149device		twsi		# Allwinner I2C controller
150device		rk_i2c		# RockChip I2C controller
151
152# Clock and reset controllers
153device		aw_ccu		# Allwinner clock controller
154
155# Interrupt controllers
156device		aw_nmi		# Allwinner NMI support
157device		mv_cp110_icu	# Marvell CP110 ICU
158device		mv_ap806_gicp	# Marvell AP806 GICP
159
160# Real-time clock support
161device		aw_rtc		# Allwinner Real-time Clock
162device		mv_rtc		# Marvell Real-time Clock
163
164# Watchdog controllers
165device		aw_wdog		# Allwinner Watchdog
166
167# Power management controllers
168device		axp81x		# X-Powers AXP81x PMIC
169device		rk805		# RockChip RK805 PMIC
170
171# EFUSE
172device		aw_sid		# Allwinner Secure ID EFUSE
173
174# Thermal sensors
175device		aw_thermal	# Allwinner Thermal Sensor Controller
176device		mv_thermal	# Marvell Thermal Sensor Controller
177
178# SPI
179device		bcm2835_spi	# Broadcom BCM283x SPI bus
180
181# PWM
182device		pwm
183device		aw_pwm
184
185device		vt_efifb
186device		vt_simplefb
187
188# EVDEV support
189options 	EVDEV_SUPPORT		# evdev support in legacy drivers
190device		aw_cir
191
192# Pseudo devices.
193options 	EFIRT		# EFI Runtime Services
194device		clk
195device		phy
196device		hwreset
197device		nvmem
198device		regulator
199device		syscon
200device		aw_syscon
201
202# Backlight subsystem
203device		backlight
204
205# Misc devices.
206device		pl330		# ARM PL330 dma controller
207device		xdma		# xDMA framework for SoC on-chip dma controllers
208
209# Chip-specific errata
210options 	THUNDERX_PASS_1_1_ERRATA
211
212options 	FDT
213device		acpi
214
215# DTBs
216makeoptions	MODULES_EXTRA="dtb/allwinner dtb/rockchip dtb/rpi"
217
218# Add CAMDEBUG stuff
219options 	CAMDEBUG
220options 	CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH)
221
222# bring in camified MMC too
223options 	MMCCAM
224
225# arm64 doesn't support inb/outb, so disable chipset probing which needs it
226nooptions 	PPC_PROBE_CHIPSET
227
228# These cause weird issues, not sure why
229nooptions 	DEBUG
230
231# Makes assumptions about bus tags that aren't true on arm64
232nodevice	snd_cmi
233
234# arm64 didn't exist for these releases, so doesn't have the required compat
235# support. Just disable them because they are meaningless.
236nooptions 	COMPAT_FREEBSD4
237nooptions 	COMPAT_FREEBSD5
238nooptions 	COMPAT_FREEBSD6
239nooptions 	COMPAT_FREEBSD7
240nooptions 	COMPAT_FREEBSD9
241nooptions 	COMPAT_FREEBSD10
242
243# arm64 supports 32-bit FreeBSD/arm binaries (armv[67] ABIs)
244options 	COMPAT_FREEBSD32	# Compatible with FreeBSD/arm
245
246#####################################################################
247# ZFS support
248
249options 	ZFS
250
251#
252# HID-over-I2C support
253#
254device		iichid		# HID-over-I2C support
255options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
256options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
257