xref: /freebsd/sys/arm64/conf/NOTES (revision b3d0562dd84540be2fd98e6a457cdcb232e9f915)
156abac3fSWarner Losh#
256abac3fSWarner Losh# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
356abac3fSWarner Losh#
456abac3fSWarner Losh# This file contains machine dependent kernel configuration notes.  For
556abac3fSWarner Losh# machine independent notes, look in /sys/conf/NOTES.
656abac3fSWarner Losh#
756abac3fSWarner Losh#
856abac3fSWarner Losh
956abac3fSWarner Losh#
1056abac3fSWarner Losh# We want LINT to cover profiling as well.
1156abac3fSWarner Losh# Except it's broken.
1256abac3fSWarner Losh#profile         2
1356abac3fSWarner Losh
1456abac3fSWarner Losh#
1556abac3fSWarner Losh# Enable the kernel DTrace hooks which are required to load the DTrace
1656abac3fSWarner Losh# kernel modules.
1756abac3fSWarner Losh#
1856abac3fSWarner Loshoptions 	KDTRACE_HOOKS
19*b3d0562dSGleb Smirnoffoptions 	KDTRACE_MIB_SDT
2056abac3fSWarner Losh
2156abac3fSWarner Losh#
2256abac3fSWarner Losh# Most of the following is copied from ARM64 GENERIC.
2356abac3fSWarner Loshcpu		ARM64
2456abac3fSWarner Losh
2556abac3fSWarner Loshmakeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
2656abac3fSWarner Loshmakeoptions	WITH_CTF=1		# Run ctfconvert(1) for DTrace support
2756abac3fSWarner Losh
2856abac3fSWarner Loshoptions 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
2956abac3fSWarner Loshoptions 	KDTRACE_FRAME		# Ensure frames are compiled in
3056abac3fSWarner Loshoptions 	VFP			# Floating-point support
3156abac3fSWarner Loshoptions 	RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
3256abac3fSWarner Losh
3356abac3fSWarner Losh# SoC support
3456abac3fSWarner Loshoptions 	SOC_ALLWINNER_A64
3556abac3fSWarner Loshoptions 	SOC_ALLWINNER_H5
36402c04afSAndrew Turneroptions 	SOC_ALLWINNER_H6
3756abac3fSWarner Loshoptions 	SOC_BRCM_BCM2837
380227a149SKyle Evansoptions 	SOC_BRCM_BCM2838
39402c04afSAndrew Turneroptions 	SOC_BRCM_NS2
402222b0e7SAndrew Turneroptions 	SOC_CAVM_THUNDERX
41402c04afSAndrew Turneroptions 	SOC_FREESCALE_IMX8
422222b0e7SAndrew Turneroptions 	SOC_HISI_HI6220
43402c04afSAndrew Turneroptions 	SOC_INTEL_STRATIX10
4456abac3fSWarner Loshoptions 	SOC_MARVELL_8K
45402c04afSAndrew Turneroptions 	SOC_NVIDIA_TEGRA210
46402c04afSAndrew Turneroptions 	SOC_NXP_LS
4773ad5af7SEmmanuel Vadotoptions 	SOC_ROCKCHIP
4856abac3fSWarner Loshoptions 	SOC_ROCKCHIP_RK3328
4956abac3fSWarner Loshoptions 	SOC_ROCKCHIP_RK3399
5073ad5af7SEmmanuel Vadotoptions 	SOC_ROCKCHIP_RK3568
5156abac3fSWarner Loshoptions 	SOC_XILINX_ZYNQ
5256abac3fSWarner Losh
5356abac3fSWarner Losh# Timer drivers
54c4530dffSMitchell Hornedevice		aw_timer
5556abac3fSWarner Losh
5656abac3fSWarner Losh# Annapurna Alpine drivers
5756abac3fSWarner Loshdevice		al_ccu			# Alpine Cache Coherency Unit
5856abac3fSWarner Loshdevice		al_nb_service		# Alpine North Bridge Service
5956abac3fSWarner Loshdevice		al_iofic		# I/O Fabric Interrupt Controller
6056abac3fSWarner Loshdevice		al_serdes		# Serializer/Deserializer
6156abac3fSWarner Loshdevice		al_udma			# Universal DMA
6256abac3fSWarner Losh
6356abac3fSWarner Losh# Qualcomm Snapdragon drivers
6456abac3fSWarner Loshdevice		qcom_gcc		# Global Clock Controller
6556abac3fSWarner Losh
664d779448SXin LI# Google Virtual NIC
674d779448SXin LIdevice		gve		# Google Virtual NIC (gVNIC) driver
684d779448SXin LI
69b6a72a9fSAndrew Turner# Microsoft Hyper-V
70b6a72a9fSAndrew Turnerdevice		hyperv
71b6a72a9fSAndrew Turner
7256abac3fSWarner Losh# CPU frequency control
7356abac3fSWarner Loshdevice		cpufreq
7456abac3fSWarner Losh
75c3e77ab4SJohn Baldwin# Accelerated software crypto
76c3e77ab4SJohn Baldwindevice		armv8crypto		# ARMv8 OpenCrypto module
77c3e77ab4SJohn Baldwindevice		ossl			# OpenSSL OpenCrypto module
78c3e77ab4SJohn Baldwin
7956abac3fSWarner Losh# Bus drivers
8056abac3fSWarner Loshdevice		al_pci		# Annapurna Alpine PCI-E
8156abac3fSWarner Loshoptions 	PCI_HP			# PCI-Express native HotPlug
8256abac3fSWarner Loshoptions 	PCI_IOV		# PCI SR-IOV support
8356abac3fSWarner Losh
8456abac3fSWarner Losh# Ethernet NICs
8556abac3fSWarner Loshdevice		mdio
8656abac3fSWarner Loshdevice		awg		# Allwinner EMAC Gigabit Ethernet
877113afc8SEmmanuel Vadotdevice		axa		# AMD Opteron A1100 integrated NIC
8856abac3fSWarner Loshdevice		neta		# Marvell Armada 370/38x/XP/3700 NIC
8956abac3fSWarner Loshdevice  	smc		# SMSC LAN91C111
9056abac3fSWarner Loshdevice		vnic		# Cavium ThunderX NIC
9156abac3fSWarner Loshdevice		al_eth		# Annapurna Alpine Ethernet NIC
92a01dc140SMitchell Hornedevice  	dwc		# Synopsys Designware GMAC Ethernet
9356abac3fSWarner Loshdevice		dwc_rk		# Rockchip Designware
9456abac3fSWarner Loshdevice		dwc_socfpga	# Altera SOCFPGA Ethernet MAC
9571d10453SEric Joynerdevice		ice		# Intel 800 Series Physical Function
9671d10453SEric Joynerdevice		ice_ddp		# Intel 800 Series DDP Package
9756abac3fSWarner Losh
9856abac3fSWarner Losh# Etherswitch devices
9956abac3fSWarner Loshdevice		e6000sw		# Marvell mv88e6085 based switches
10056abac3fSWarner Losh
1012f721943SWarner Losh# Storage
1022f721943SWarner Losh# Broadcom MPT Fusion, version 4, is 64-bit only
1032f721943SWarner Loshdevice		mpi3mr			# LSI-Logic MPT-Fusion 4
1042f721943SWarner Losh
10556abac3fSWarner Losh# MMC/SD/SDIO Card slot support
10656abac3fSWarner Loshdevice		sdhci_xenon		# Marvell Xenon SD/MMC controller
10756abac3fSWarner Loshdevice		aw_mmc			# Allwinner SD/MMC controller
10856abac3fSWarner Loshdevice		dwmmc
10956abac3fSWarner Loshdevice		dwmmc_altera
11056abac3fSWarner Loshdevice		rk_emmcphy
11156abac3fSWarner Losh
11256abac3fSWarner Losh# Serial (COM) ports
11356abac3fSWarner Loshdevice		uart_msm	# Qualcomm MSM UART driver
11456abac3fSWarner Loshdevice		uart_mu		# RPI3 aux port
11556abac3fSWarner Loshdevice		uart_mvebu	# Armada 3700 UART driver
11656abac3fSWarner Loshdevice		uart_ns8250	# ns8250-type UART driver
11756abac3fSWarner Loshdevice		uart_snps
11856abac3fSWarner Loshdevice		pl011
11956abac3fSWarner Losh
120b889b90aSAndrew Turner# Early printf using the pl011 uart under the Arm FVP
121b889b90aSAndrew Turneroptions 	SOCDEV_PA=0x1c090000
122b889b90aSAndrew Turneroptions 	EARLY_PRINTF=pl011
123b889b90aSAndrew Turner
12456abac3fSWarner Losh# USB support
12556abac3fSWarner Loshdevice		aw_usbphy		# Allwinner USB PHY
12656abac3fSWarner Loshdevice		dwcotg			# DWC OTG controller
12756abac3fSWarner Loshdevice		ehci_mv			# Marvell EHCI USB interface
12856abac3fSWarner Losh
12956abac3fSWarner Losh# USB ethernet support
13056abac3fSWarner Loshdevice		muge
13156abac3fSWarner Loshdevice		smsc
13256abac3fSWarner Losh
13356abac3fSWarner Losh# Sound support
13456abac3fSWarner Loshdevice a10_codec
13556abac3fSWarner Losh
13656abac3fSWarner Losh# DMA controller
13756abac3fSWarner Loshdevice		a31_dmac
13856abac3fSWarner Losh
13956abac3fSWarner Losh# GPIO / PINCTRL
14056abac3fSWarner Loshdevice		a37x0_gpio	# Marvell Armada 37x0 GPIO controller
14156abac3fSWarner Loshdevice		aw_gpio		# Allwinner GPIO controller
14256abac3fSWarner Loshdevice		fdt_pinctrl
14356abac3fSWarner Loshdevice		mv_gpio		# Marvell GPIO controller
14456abac3fSWarner Loshdevice		mvebu_pinctrl	# Marvell Pinmux Controller
14556abac3fSWarner Loshdevice		rk_gpio		# RockChip GPIO Controller
14656abac3fSWarner Loshdevice		rk_pinctrl	# RockChip Pinmux Controller
14756abac3fSWarner Losh
14856abac3fSWarner Losh# I2C
14956abac3fSWarner Loshdevice		aw_rsb		# Allwinner Reduced Serial Bus
15056abac3fSWarner Loshdevice		bcm2835_bsc	# Broadcom BCM283x I2C bus
15156abac3fSWarner Loshdevice		twsi		# Allwinner I2C controller
15256abac3fSWarner Loshdevice		rk_i2c		# RockChip I2C controller
15356abac3fSWarner Losh
15456abac3fSWarner Losh# Clock and reset controllers
15556abac3fSWarner Loshdevice		aw_ccu		# Allwinner clock controller
15656abac3fSWarner Losh
15756abac3fSWarner Losh# Interrupt controllers
15856abac3fSWarner Loshdevice		aw_nmi		# Allwinner NMI support
15956abac3fSWarner Loshdevice		mv_cp110_icu	# Marvell CP110 ICU
16056abac3fSWarner Loshdevice		mv_ap806_gicp	# Marvell AP806 GICP
16156abac3fSWarner Losh
16256abac3fSWarner Losh# Real-time clock support
16356abac3fSWarner Loshdevice		aw_rtc		# Allwinner Real-time Clock
16456abac3fSWarner Loshdevice		mv_rtc		# Marvell Real-time Clock
16556abac3fSWarner Losh
16656abac3fSWarner Losh# Watchdog controllers
16756abac3fSWarner Loshdevice		aw_wdog		# Allwinner Watchdog
16856abac3fSWarner Losh
16956abac3fSWarner Losh# Power management controllers
17056abac3fSWarner Loshdevice		axp81x		# X-Powers AXP81x PMIC
17173ad5af7SEmmanuel Vadotdevice		rk8xx		# RockChip RK8XX base support
17256abac3fSWarner Loshdevice		rk805		# RockChip RK805 PMIC
17373ad5af7SEmmanuel Vadotdevice		rk808		# RockChip RK808 PMIC
17473ad5af7SEmmanuel Vadotdevice		rk817		# RockChip RK817 PMIC
17556abac3fSWarner Losh
17656abac3fSWarner Losh# EFUSE
17756abac3fSWarner Loshdevice		aw_sid		# Allwinner Secure ID EFUSE
17856abac3fSWarner Losh
17956abac3fSWarner Losh# Thermal sensors
18056abac3fSWarner Loshdevice		aw_thermal	# Allwinner Thermal Sensor Controller
18156abac3fSWarner Loshdevice		mv_thermal	# Marvell Thermal Sensor Controller
18256abac3fSWarner Losh
18356abac3fSWarner Losh# SPI
18456abac3fSWarner Loshdevice		bcm2835_spi	# Broadcom BCM283x SPI bus
18556abac3fSWarner Losh
18656abac3fSWarner Losh# PWM
18756abac3fSWarner Loshdevice		pwm
18856abac3fSWarner Loshdevice		aw_pwm
18956abac3fSWarner Losh
19056abac3fSWarner Loshdevice		vt_efifb
191f8c451d2SAndrew Turnerdevice		vt_simplefb
19256abac3fSWarner Losh
19356abac3fSWarner Losh# EVDEV support
19456abac3fSWarner Loshoptions 	EVDEV_SUPPORT		# evdev support in legacy drivers
19556abac3fSWarner Loshdevice		aw_cir
19656abac3fSWarner Losh
19756abac3fSWarner Losh# Pseudo devices.
19856abac3fSWarner Loshdevice		clk
199bfd2ce2aSStephen J. Kiernandevice		efidev		# EFI pseudo-device
200bfd2ce2aSStephen J. Kiernandevice		efirtc		# EFI RTC
20156abac3fSWarner Loshdevice		phy
20256abac3fSWarner Loshdevice		hwreset
20356abac3fSWarner Loshdevice		nvmem
20456abac3fSWarner Loshdevice		regulator
20556abac3fSWarner Loshdevice		syscon
20656abac3fSWarner Loshdevice		aw_syscon
20756abac3fSWarner Losh
20890b8c0eaSEmmanuel Vadot# Backlight subsystem
20990b8c0eaSEmmanuel Vadotdevice		backlight
21090b8c0eaSEmmanuel Vadot
211fce985b0SIan Lepore# Misc devices.
212fce985b0SIan Leporedevice		pl330		# ARM PL330 dma controller
213fce985b0SIan Leporedevice		xdma		# xDMA framework for SoC on-chip dma controllers
214fce985b0SIan Lepore
21556abac3fSWarner Losh# Chip-specific errata
21656abac3fSWarner Loshoptions 	THUNDERX_PASS_1_1_ERRATA
21756abac3fSWarner Losh
218bfd2ce2aSStephen J. Kiernanoptions 	EFIRT		# EFI Runtime Services
21956abac3fSWarner Loshoptions 	FDT
22056abac3fSWarner Loshdevice		acpi
22156abac3fSWarner Losh
22256abac3fSWarner Losh# DTBs
22356abac3fSWarner Loshmakeoptions	MODULES_EXTRA="dtb/allwinner dtb/rockchip dtb/rpi"
22456abac3fSWarner Losh
22556abac3fSWarner Losh# Add CAMDEBUG stuff
22656abac3fSWarner Loshoptions 	CAMDEBUG
22756abac3fSWarner Loshoptions 	CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH)
22856abac3fSWarner Losh
22956abac3fSWarner Losh# bring in camified MMC too
23056abac3fSWarner Loshoptions 	MMCCAM
23156abac3fSWarner Losh
23256abac3fSWarner Losh# arm64 doesn't support inb/outb, so disable chipset probing which needs it
23356abac3fSWarner Loshnooptions 	PPC_PROBE_CHIPSET
23456abac3fSWarner Losh
23556abac3fSWarner Losh# These cause weird issues, not sure why
23656abac3fSWarner Loshnooptions 	DEBUG
23756abac3fSWarner Losh
23856abac3fSWarner Losh# Makes assumptions about bus tags that aren't true on arm64
23956abac3fSWarner Loshnodevice	snd_cmi
24056abac3fSWarner Losh
24156abac3fSWarner Losh# arm64 didn't exist for these releases, so doesn't have the required compat
24256abac3fSWarner Losh# support. Just disable them because they are meaningless.
24356abac3fSWarner Loshnooptions 	COMPAT_FREEBSD4
24456abac3fSWarner Loshnooptions 	COMPAT_FREEBSD5
24556abac3fSWarner Loshnooptions 	COMPAT_FREEBSD6
24656abac3fSWarner Loshnooptions 	COMPAT_FREEBSD7
24756abac3fSWarner Loshnooptions 	COMPAT_FREEBSD9
24856abac3fSWarner Loshnooptions 	COMPAT_FREEBSD10
24956abac3fSWarner Losh
25056abac3fSWarner Losh# arm64 supports 32-bit FreeBSD/arm binaries (armv[67] ABIs)
25156abac3fSWarner Loshoptions 	COMPAT_FREEBSD32	# Compatible with FreeBSD/arm
2526dfd7f4bSMatt Macy
253ac4ddc46SDmitry Salychevoptions		IOMMU # ARM64 SMMU/IOMMU
254ac4ddc46SDmitry Salychev
2556dfd7f4bSMatt Macy#####################################################################
2566dfd7f4bSMatt Macy# ZFS support
2576dfd7f4bSMatt Macy
2586dfd7f4bSMatt Macyoptions 	ZFS
2590f0379faSVladimir Kondratyev
2600f0379faSVladimir Kondratyev#
2610f0379faSVladimir Kondratyev# HID-over-I2C support
2620f0379faSVladimir Kondratyev#
2630f0379faSVladimir Kondratyevdevice		iichid		# HID-over-I2C support
2640f0379faSVladimir Kondratyevoptions 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
2650f0379faSVladimir Kondratyevoptions 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
266