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