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