xref: /freebsd/sys/arm64/conf/NOTES (revision 56abac3fc39ec44e4310782a8fe0ee90e71e419e)
1*56abac3fSWarner Losh#
2*56abac3fSWarner Losh# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
3*56abac3fSWarner Losh#
4*56abac3fSWarner Losh# This file contains machine dependent kernel configuration notes.  For
5*56abac3fSWarner Losh# machine independent notes, look in /sys/conf/NOTES.
6*56abac3fSWarner Losh#
7*56abac3fSWarner Losh# $FreeBSD$
8*56abac3fSWarner Losh#
9*56abac3fSWarner Losh
10*56abac3fSWarner Losh#
11*56abac3fSWarner Losh# We want LINT to cover profiling as well.
12*56abac3fSWarner Losh# Except it's broken.
13*56abac3fSWarner Losh#profile         2
14*56abac3fSWarner Losh
15*56abac3fSWarner Losh#
16*56abac3fSWarner Losh# Enable the kernel DTrace hooks which are required to load the DTrace
17*56abac3fSWarner Losh# kernel modules.
18*56abac3fSWarner Losh#
19*56abac3fSWarner Loshoptions 	KDTRACE_HOOKS
20*56abac3fSWarner Losh
21*56abac3fSWarner Losh#
22*56abac3fSWarner Losh# Most of the following is copied from ARM64 GENERIC.
23*56abac3fSWarner Loshcpu		ARM64
24*56abac3fSWarner Losh
25*56abac3fSWarner Loshmakeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
26*56abac3fSWarner Loshmakeoptions	WITH_CTF=1		# Run ctfconvert(1) for DTrace support
27*56abac3fSWarner Losh
28*56abac3fSWarner Loshoptions 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
29*56abac3fSWarner Loshoptions 	KDTRACE_FRAME		# Ensure frames are compiled in
30*56abac3fSWarner Loshoptions 	VFP			# Floating-point support
31*56abac3fSWarner Loshoptions 	RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
32*56abac3fSWarner Loshoptions 	INTRNG
33*56abac3fSWarner Losh
34*56abac3fSWarner Loshnooptions 	GDB			# Support remote GDB -- not supported
35*56abac3fSWarner Losh
36*56abac3fSWarner Losh# SoC support
37*56abac3fSWarner Loshoptions 	SOC_ALLWINNER_A64
38*56abac3fSWarner Loshoptions 	SOC_ALLWINNER_H5
39*56abac3fSWarner Loshoptions 	SOC_CAVM_THUNDERX
40*56abac3fSWarner Loshoptions 	SOC_HISI_HI6220
41*56abac3fSWarner Loshoptions 	SOC_BRCM_BCM2837
42*56abac3fSWarner Loshoptions 	SOC_MARVELL_8K
43*56abac3fSWarner Loshoptions 	SOC_ROCKCHIP_RK3328
44*56abac3fSWarner Loshoptions 	SOC_ROCKCHIP_RK3399
45*56abac3fSWarner Loshoptions 	SOC_XILINX_ZYNQ
46*56abac3fSWarner Losh
47*56abac3fSWarner Losh# Timer drivers
48*56abac3fSWarner Loshdevice		a10_timer
49*56abac3fSWarner Losh
50*56abac3fSWarner Losh# Annapurna Alpine drivers
51*56abac3fSWarner Loshdevice		al_ccu			# Alpine Cache Coherency Unit
52*56abac3fSWarner Loshdevice		al_nb_service		# Alpine North Bridge Service
53*56abac3fSWarner Loshdevice		al_iofic		# I/O Fabric Interrupt Controller
54*56abac3fSWarner Loshdevice		al_serdes		# Serializer/Deserializer
55*56abac3fSWarner Loshdevice		al_udma			# Universal DMA
56*56abac3fSWarner Losh
57*56abac3fSWarner Losh# Qualcomm Snapdragon drivers
58*56abac3fSWarner Loshdevice		qcom_gcc		# Global Clock Controller
59*56abac3fSWarner Losh
60*56abac3fSWarner Losh# VirtIO support
61*56abac3fSWarner Loshdevice		virtio
62*56abac3fSWarner Loshdevice		virtio_pci
63*56abac3fSWarner Loshdevice		virtio_mmio
64*56abac3fSWarner Loshdevice		virtio_blk
65*56abac3fSWarner Loshdevice		vtnet
66*56abac3fSWarner Losh
67*56abac3fSWarner Losh# CPU frequency control
68*56abac3fSWarner Loshdevice		cpufreq
69*56abac3fSWarner Losh
70*56abac3fSWarner Losh# Bus drivers
71*56abac3fSWarner Loshdevice		al_pci		# Annapurna Alpine PCI-E
72*56abac3fSWarner Loshoptions 	PCI_HP			# PCI-Express native HotPlug
73*56abac3fSWarner Loshoptions 	PCI_IOV		# PCI SR-IOV support
74*56abac3fSWarner Losh
75*56abac3fSWarner Losh# Ethernet NICs
76*56abac3fSWarner Loshdevice		mdio
77*56abac3fSWarner Loshdevice		awg		# Allwinner EMAC Gigabit Ethernet
78*56abac3fSWarner Loshdevice		axgbe		# AMD Opteron A1100 integrated NIC
79*56abac3fSWarner Loshdevice		neta		# Marvell Armada 370/38x/XP/3700 NIC
80*56abac3fSWarner Loshdevice  	smc		# SMSC LAN91C111
81*56abac3fSWarner Loshdevice		vnic		# Cavium ThunderX NIC
82*56abac3fSWarner Loshdevice		al_eth		# Annapurna Alpine Ethernet NIC
83*56abac3fSWarner Loshdevice		dwc_rk		# Rockchip Designware
84*56abac3fSWarner Loshdevice		dwc_socfpga	# Altera SOCFPGA Ethernet MAC
85*56abac3fSWarner Losh
86*56abac3fSWarner Losh# Etherswitch devices
87*56abac3fSWarner Loshdevice		e6000sw		# Marvell mv88e6085 based switches
88*56abac3fSWarner Losh
89*56abac3fSWarner Losh# NVM Express (NVMe) support
90*56abac3fSWarner Loshdevice		nvme		# base NVMe driver
91*56abac3fSWarner Loshoptions 	NVME_USE_NVD=0	# prefer the cam(4) based nda(4) driver
92*56abac3fSWarner Loshdevice		nvd		# expose NVMe namespaces as disks, depends on nvme
93*56abac3fSWarner Losh
94*56abac3fSWarner Losh# MMC/SD/SDIO Card slot support
95*56abac3fSWarner Loshdevice		sdhci_xenon		# Marvell Xenon SD/MMC controller
96*56abac3fSWarner Loshdevice		aw_mmc			# Allwinner SD/MMC controller
97*56abac3fSWarner Loshdevice		dwmmc
98*56abac3fSWarner Loshdevice		dwmmc_altera
99*56abac3fSWarner Loshdevice		rk_emmcphy
100*56abac3fSWarner Losh
101*56abac3fSWarner Losh# Serial (COM) ports
102*56abac3fSWarner Loshdevice		uart_msm	# Qualcomm MSM UART driver
103*56abac3fSWarner Loshdevice		uart_mu		# RPI3 aux port
104*56abac3fSWarner Loshdevice		uart_mvebu	# Armada 3700 UART driver
105*56abac3fSWarner Loshdevice		uart_ns8250	# ns8250-type UART driver
106*56abac3fSWarner Loshdevice		uart_snps
107*56abac3fSWarner Loshdevice		pl011
108*56abac3fSWarner Losh
109*56abac3fSWarner Losh# USB support
110*56abac3fSWarner Loshdevice		aw_ehci			# Allwinner EHCI USB interface (USB 2.0)
111*56abac3fSWarner Loshdevice		aw_usbphy		# Allwinner USB PHY
112*56abac3fSWarner Loshdevice		dwcotg			# DWC OTG controller
113*56abac3fSWarner Loshdevice		ehci_mv			# Marvell EHCI USB interface
114*56abac3fSWarner Losh
115*56abac3fSWarner Losh# USB ethernet support
116*56abac3fSWarner Loshdevice		muge
117*56abac3fSWarner Loshdevice		smsc
118*56abac3fSWarner Losh
119*56abac3fSWarner Losh# Sound support
120*56abac3fSWarner Loshdevice a10_codec
121*56abac3fSWarner Losh
122*56abac3fSWarner Losh# DMA controller
123*56abac3fSWarner Loshdevice		a31_dmac
124*56abac3fSWarner Losh
125*56abac3fSWarner Losh# GPIO / PINCTRL
126*56abac3fSWarner Loshdevice		a37x0_gpio	# Marvell Armada 37x0 GPIO controller
127*56abac3fSWarner Loshdevice		aw_gpio		# Allwinner GPIO controller
128*56abac3fSWarner Loshdevice		fdt_pinctrl
129*56abac3fSWarner Loshdevice		mv_gpio		# Marvell GPIO controller
130*56abac3fSWarner Loshdevice		mvebu_pinctrl	# Marvell Pinmux Controller
131*56abac3fSWarner Loshdevice		rk_gpio		# RockChip GPIO Controller
132*56abac3fSWarner Loshdevice		rk_pinctrl	# RockChip Pinmux Controller
133*56abac3fSWarner Losh
134*56abac3fSWarner Losh# I2C
135*56abac3fSWarner Loshdevice		aw_rsb		# Allwinner Reduced Serial Bus
136*56abac3fSWarner Loshdevice		bcm2835_bsc	# Broadcom BCM283x I2C bus
137*56abac3fSWarner Loshdevice		twsi		# Allwinner I2C controller
138*56abac3fSWarner Loshdevice		rk_i2c		# RockChip I2C controller
139*56abac3fSWarner Losh
140*56abac3fSWarner Losh# Clock and reset controllers
141*56abac3fSWarner Loshdevice		aw_ccu		# Allwinner clock controller
142*56abac3fSWarner Losh
143*56abac3fSWarner Losh# Interrupt controllers
144*56abac3fSWarner Loshdevice		aw_nmi		# Allwinner NMI support
145*56abac3fSWarner Loshdevice		mv_cp110_icu	# Marvell CP110 ICU
146*56abac3fSWarner Loshdevice		mv_ap806_gicp	# Marvell AP806 GICP
147*56abac3fSWarner Losh
148*56abac3fSWarner Losh# Real-time clock support
149*56abac3fSWarner Loshdevice		aw_rtc		# Allwinner Real-time Clock
150*56abac3fSWarner Loshdevice		mv_rtc		# Marvell Real-time Clock
151*56abac3fSWarner Losh
152*56abac3fSWarner Losh# Watchdog controllers
153*56abac3fSWarner Loshdevice		aw_wdog		# Allwinner Watchdog
154*56abac3fSWarner Losh
155*56abac3fSWarner Losh# Power management controllers
156*56abac3fSWarner Loshdevice		axp81x		# X-Powers AXP81x PMIC
157*56abac3fSWarner Loshdevice		rk805		# RockChip RK805 PMIC
158*56abac3fSWarner Losh
159*56abac3fSWarner Losh# EFUSE
160*56abac3fSWarner Loshdevice		aw_sid		# Allwinner Secure ID EFUSE
161*56abac3fSWarner Losh
162*56abac3fSWarner Losh# Thermal sensors
163*56abac3fSWarner Loshdevice		aw_thermal	# Allwinner Thermal Sensor Controller
164*56abac3fSWarner Loshdevice		mv_thermal	# Marvell Thermal Sensor Controller
165*56abac3fSWarner Losh
166*56abac3fSWarner Losh# SPI
167*56abac3fSWarner Loshdevice		bcm2835_spi	# Broadcom BCM283x SPI bus
168*56abac3fSWarner Losh
169*56abac3fSWarner Losh# PWM
170*56abac3fSWarner Loshdevice		pwm
171*56abac3fSWarner Loshdevice		aw_pwm
172*56abac3fSWarner Losh
173*56abac3fSWarner Loshdevice		vt_efifb
174*56abac3fSWarner Losh
175*56abac3fSWarner Losh# EVDEV support
176*56abac3fSWarner Loshoptions		EVDEV_SUPPORT		# evdev support in legacy drivers
177*56abac3fSWarner Loshdevice		aw_cir
178*56abac3fSWarner Losh
179*56abac3fSWarner Losh# Pseudo devices.
180*56abac3fSWarner Loshoptions 	EFIRT		# EFI Runtime Services
181*56abac3fSWarner Losh
182*56abac3fSWarner Losh# EXT_RESOURCES pseudo devices
183*56abac3fSWarner Loshoptions 	EXT_RESOURCES
184*56abac3fSWarner Loshdevice		clk
185*56abac3fSWarner Loshdevice		phy
186*56abac3fSWarner Loshdevice		hwreset
187*56abac3fSWarner Loshdevice		nvmem
188*56abac3fSWarner Loshdevice		regulator
189*56abac3fSWarner Loshdevice		syscon
190*56abac3fSWarner Loshdevice		aw_syscon
191*56abac3fSWarner Losh
192*56abac3fSWarner Losh# Chip-specific errata
193*56abac3fSWarner Loshoptions 	THUNDERX_PASS_1_1_ERRATA
194*56abac3fSWarner Losh
195*56abac3fSWarner Loshoptions 	FDT
196*56abac3fSWarner Loshdevice		acpi
197*56abac3fSWarner Losh
198*56abac3fSWarner Losh# DTBs
199*56abac3fSWarner Loshmakeoptions	MODULES_EXTRA="dtb/allwinner dtb/rockchip dtb/rpi"
200*56abac3fSWarner Losh
201*56abac3fSWarner Losh# Add CAMDEBUG stuff
202*56abac3fSWarner Loshoptions 	CAMDEBUG
203*56abac3fSWarner Loshoptions 	CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH)
204*56abac3fSWarner Losh
205*56abac3fSWarner Losh# bring in camified MMC too
206*56abac3fSWarner Loshoptions		MMCCAM
207*56abac3fSWarner Losh
208*56abac3fSWarner Losh# No support for floppies on arm64
209*56abac3fSWarner Loshnodevice	fdc
210*56abac3fSWarner Losh
211*56abac3fSWarner Losh# arm64 doesn't support inb/outb, so disable chipset probing which needs it
212*56abac3fSWarner Loshnooptions 	PPC_PROBE_CHIPSET
213*56abac3fSWarner Losh
214*56abac3fSWarner Losh# can't support syscons, no inb/outb, ditto for the screen savers
215*56abac3fSWarner Loshnodevice	sc
216*56abac3fSWarner Loshnodevice	blank_saver
217*56abac3fSWarner Loshnodevice	daemon_saver
218*56abac3fSWarner Loshnodevice	dragon_saver
219*56abac3fSWarner Loshnodevice	fade_saver
220*56abac3fSWarner Loshnodevice	fire_saver
221*56abac3fSWarner Loshnodevice	green_saver
222*56abac3fSWarner Loshnodevice	logo_saver
223*56abac3fSWarner Loshnodevice	rain_saver
224*56abac3fSWarner Loshnodevice	snake_saver
225*56abac3fSWarner Loshnodevice	star_saver
226*56abac3fSWarner Loshnodevice	warp_saver
227*56abac3fSWarner Losh
228*56abac3fSWarner Losh# These cause weird issues, not sure why
229*56abac3fSWarner Loshnodevice	ukbd
230*56abac3fSWarner Loshnooptions 	DEBUG
231*56abac3fSWarner Losh
232*56abac3fSWarner Losh# Makes assumptions about bus tags that aren't true on arm64
233*56abac3fSWarner Loshnodevice	snd_cmi
234*56abac3fSWarner Losh
235*56abac3fSWarner Losh# arm64 didn't exist for these releases, so doesn't have the required compat
236*56abac3fSWarner Losh# support. Just disable them because they are meaningless.
237*56abac3fSWarner Loshnooptions 	COMPAT_FREEBSD4
238*56abac3fSWarner Loshnooptions 	COMPAT_FREEBSD5
239*56abac3fSWarner Loshnooptions 	COMPAT_FREEBSD6
240*56abac3fSWarner Loshnooptions 	COMPAT_FREEBSD7
241*56abac3fSWarner Loshnooptions 	COMPAT_FREEBSD9
242*56abac3fSWarner Loshnooptions 	COMPAT_FREEBSD10
243*56abac3fSWarner Losh
244*56abac3fSWarner Losh# arm64 supports 32-bit FreeBSD/arm binaries (armv[67] ABIs)
245*56abac3fSWarner Loshoptions 	COMPAT_FREEBSD32	# Compatible with FreeBSD/arm
246