# $OpenBSD: GENERIC,v 1.98 2019/04/01 08:46:16 patrick Exp $
#
# GENERIC machine description file
#
# This machine description file is used to generate the default OpenBSD
# kernel.  The generic kernel does not include all options, subsystems
# and device drivers, but should be useful for most applications.
#
# The machine description file can be customised for your specific
# machine to reduce the kernel size and improve its performance.
#
# For further information on compiling OpenBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

machine		arm64
include		"../../../conf/GENERIC"
maxusers	32

option		TIMEZONE=0	# time zone to adjust RTC time by
option		DST=0		# daylight saving time used by RTC
option		PCIVERBOSE
option		USER_PCICONF	# user-space PCI configuration
option		USBVERBOSE

makeoptions	KERNEL_BASE_PHYS="0x00200000"
makeoptions	KERNEL_BASE_VIRT="0xffffff8000200000"

config		bsd	swap generic

# The main bus device
mainbus0	at root
cpu0		at mainbus?
apm0		at mainbus?
efi0		at mainbus?
acpi0		at mainbus?
acpibtn*	at acpi?
acpiec*		at acpi?
acpimcfg*	at acpi?
acpipci*	at acpi?
pci*		at acpipci?
ahci*		at acpi?
com*		at acpi?
pluart*		at acpi?
xhci*		at acpi?
simplebus*	at fdt?

scsibus*	at scsi?
sd*		at scsibus?
st*		at scsibus?
cd*		at scsibus?
ch*		at scsibus?
uk*		at scsibus?

ampintc*	at fdt? early 1
ampintcmsi*	at fdt? early 1
agintc*		at fdt? early 1
agintcmsi*	at fdt? early 1
agtimer*	at fdt?
ahci*		at fdt?
dwge*		at fdt?
dwpcie*		at fdt?
pci*		at dwpcie?
ohci*		at fdt?
ehci*		at fdt?
pciecam*	at fdt?
pci*		at pciecam?
sdhc*		at fdt?
sdmmc*		at sdhc?
bwfm*		at sdmmc?	# Broadcom FullMAC
xhci*		at fdt?
ccp*		at fdt?		# AMD Cryptographic Co-processor

# NS16550 compatible serial ports
com*		at fdt?

# Generic devices
pinctrl*	at fdt? early 1
plgpio*		at fdt? early 1
plrtc*		at fdt?
pluart*		at fdt?
psci*		at fdt? early 1
syscon*		at fdt? early 1

virtio*		at fdt?
virtio*		at pci?
vio*		at virtio?
vioblk*		at virtio?
viomb*		at virtio?
viornd*		at virtio?
vioscsi*	at virtio?

option	WSDISPLAY_COMPAT_USL		# VT handling
option	WSDISPLAY_COMPAT_RAWKBD		# provide raw scancodes; needed for X11
option	WSDISPLAY_DEFAULTSCREENS=6	# initial number of text consoles

simplefb*	at fdt?
wsdisplay*	at simplefb?

radeondrm*	at pci?
drm*		at radeondrm?
wsdisplay*	at radeondrm?

# iMX
imxccm*		at fdt? early 1
imxiomuxc*	at fdt? early 1
imxanatop*	at fdt? early 1
imxgpc*		at fdt?
imxgpio*	at fdt?
fec*		at fdt?
imxuart*	at fdt?
imxiic*		at fdt?
iic*		at imxiic?
imxesdhc*	at fdt?
sdmmc*		at imxesdhc?
imxsrc*		at fdt?
imxspi*		at fdt?
ssdfb*		at iic?
ssdfb*		at spi?
wsdisplay*	at ssdfb?

# Raspberry Pi 3
bcmaux*		at fdt?
bcmintc*	at fdt?
bcmdog*		at fdt?
bcmrng*		at fdt?
bcmtemp*	at fdt?
dwctwo*		at fdt?
usb*		at dwctwo?

# HiSilicon SoCs
hiclock*	at fdt? early 1
hidwusb*	at fdt?
hireset*	at fdt? early 1
hitemp*		at fdt?

# Marvell SoCs
mvclock*	at fdt? early 1
mvgicp*		at fdt? early 1
mvicu*		at fdt? early 1
mvpinctrl*	at fdt? early 1
mvgpio*		at fdt?
mvrng*		at fdt?
mvrtc*		at fdt?
mvtemp*		at fdt?

# Rockchip SoCs
rkclock*	at fdt? early 1
rkgrf*		at fdt? early 1
rkpinctrl*	at fdt? early 1
rkgpio*		at fdt?
rkiic*		at fdt?
iic*		at rkiic?
rkpcie*		at fdt?
pci*		at rkpcie?
rktemp*		at fdt?
rkdwusb*	at fdt?
dwmmc*		at fdt?
sdmmc*		at dwmmc?

# Sunxi SoCs
sxipio*		at fdt? early 1	# GPIO pins for leds & PHYs
gpio*		at sxipio?
sxiccmu*	at fdt? early 1	# Clock Control Module/Unit
sxirsb*		at fdt? early 1	# Reduced Serial Bus
axppmic*	at rsb?
sxirtc*		at fdt?		# Real Time Clock
sximmc*		at fdt?		# SD/MMC card controller
sdmmc*		at sximmc?	# SD/MMC bus
sxitemp*	at fdt?		# Temperature sensor
sxitwi*		at fdt?		# I2C controller
iic*		at sxitwi?	# I2C bus
dwxe*		at fdt?

# PCI
ppb*		at pci?			# PCI-PCI bridges
pci*		at ppb?

# PCI Ethernet
bnxt*		at pci?			# Broadcom BCM573xx, BCM574xx
em*		at pci?			# Intel Pro/1000 Ethernet
ix*		at pci?			# Intel 82598EB 10Gb Ethernet
mskc*		at pci?			# Marvell Yukon-2
msk*		at mskc?		#  each port of above
re*		at pci?			# Realtek 8169/8169S/8110S

# PCI SCSI
ahci*		at pci? flags 0x0000	# AHCI SATA controllers
					# flags 0x0001 to force SATA 1 (1.5Gb/s)
nvme*		at pci?			# NVMe controllers

# USB Controllers
ohci*		at pci?			# Open Host Controller
uhci*		at pci?			# Universal Host Controller (Intel)
ehci*		at pci?			# Enhanced Host Controller
xhci*		at pci?			# eXtensible Host Controller

# USB bus support
usb*		at ohci?
usb*		at uhci?
usb*		at ehci?
usb*		at xhci?

# USB devices
uhub*		at usb?			# USB Hubs
uhub*		at uhub?		# USB Hubs
urng*		at uhub?		# USB Random Number Generator
uonerng*	at uhub?		# Moonbase Otago OneRNG
umodem*		at uhub?		# USB Modems/Serial
ucom*		at umodem?
uvisor*		at uhub?		# Handspring Visor
ucom*		at uvisor?
uvscom*		at uhub?		# SUNTAC Slipper U VS-10U serial
ucom*		at uvscom?
ubsa*		at uhub?		# Belkin serial adapter
ucom*		at ubsa?
uftdi*		at uhub?		# FTDI FT8U100AX serial adapter
ucom*		at uftdi?
uplcom*		at uhub?		# I/O DATA USB-RSAQ2 serial adapter
ucom*		at uplcom?
umct*		at uhub?		# MCT USB-RS232 serial adapter
ucom*		at umct?
uslcom*		at uhub?		# Silicon Laboratories CP210x serial
ucom*		at uslcom?
uscom*		at uhub?		# Simple USB serial adapters
ucom*		at uscom?
uark*		at uhub?		# Arkmicro ARK3116 serial
ucom*		at uark?
moscom*		at uhub?		# MosChip MCS7703 serial
ucom*		at moscom?
umcs*		at uhub?		# MosChip MCS78x0 serial
ucom*		at umcs?
uipaq*		at uhub?		# iPAQ serial adapter
ucom*		at uipaq?
umsm*		at uhub?		# Qualcomm MSM EVDO
ucom*		at umsm?
uchcom*		at uhub?		# WinChipHead CH341/340 serial
ucom*		at uchcom?
uticom*		at uhub?		# TI serial
ucom*		at uticom?
uxrcom*		at uhub?		# Exar XR21V1410 serial
ucom*		at uxrcom?
uaudio*		at uhub?		# USB Audio
audio*		at uaudio?
umidi*		at uhub?		# USB MIDI
midi*		at umidi?
ulpt*		at uhub?		# USB Printers
umass*		at uhub?		# USB Mass Storage devices
uhidev*		at uhub?		# Human Interface Devices
ums*		at uhidev?		# USB mouse
wsmouse*	at ums? mux 0
uts*		at uhub?		# USB touchscreen
wsmouse*	at uts? mux 0
uwacom*		at uhidev?		# USB Wacom tablet
wsmouse*	at uwacom? mux 0
ukbd*		at uhidev?		# USB keyboard
wskbd*		at ukbd? mux 1
ucycom*		at uhidev?		# Cypress serial
ucom*		at ucycom?
uslhcom*	at uhidev?		# Silicon Labs CP2110 USB HID UART
ucom*		at uslhcom?
uhid*		at uhidev?		# USB generic HID support
upd*		at uhidev?		# USB Power Devices sensors
aue*		at uhub?		# ADMtek AN986 Pegasus Ethernet
atu*		at uhub?		# Atmel AT76c50x based 802.11b
axe*		at uhub?		# ASIX Electronics AX88172 USB Ethernet
axen*		at uhub?		# ASIX Electronics AX88179 USB Ethernet
cue*		at uhub?		# CATC USB-EL1201A based Ethernet
kue*		at uhub?		# Kawasaki KL5KUSB101B based Ethernet
smsc*		at uhub?		# SMSC LAN95xx Ethernet
cdce*		at uhub?		# CDC Ethernet
urndis*		at uhub?		# Remote NDIS Ethernet
upl*		at uhub?		# Prolific PL2301/PL2302 host-to-host `network'
ugl*		at uhub?		# Genesys Logic GL620USB-A host-to-host `network'
udav*		at uhub?		# Davicom DM9601 based Ethernet
mos*		at uhub?		# MOSCHIP MCS7730/7830 10/100 Ethernet
mue*		at uhub?		# Microchip LAN75xx/LAN78xx Ethernet
url*		at uhub?		# Realtek RTL8150L based adapters
ure*		at uhub?		# Realtek RTL8152 based adapters
wi*		at uhub?		# WaveLAN IEEE 802.11DS
udsbr*		at uhub?		# D-Link DSB-R100 radio
radio*		at udsbr?		# USB radio
uberry*		at uhub?		# Research In Motion BlackBerry
ugen*		at uhub?		# USB Generic driver
uath*		at uhub?		# Atheros AR5005UG/AR5005UX
ural*		at uhub?		# Ralink RT2500USB
rum*		at uhub?		# Ralink RT2501USB/RT2601USB
run*		at uhub?		# Ralink RT2700U/RT2800U/RT3000U
otus*		at uhub?		# Atheros AR9001U
athn*		at uhub?		# Atheros AR9002U
zyd*		at uhub?		# Zydas ZD1211
upgt*		at uhub?		# Conexant/Intersil PrismGT SoftMAC USB
urtw*		at uhub?		# Realtek 8187
rsu*		at uhub?		# Realtek RTL8188SU/RTL8191SU/RTL8192SU
urtwn*		at uhub?		# Realtek RTL8188CU/RTL8192CU
udcf*		at uhub?		# Gude Expert mouseCLOCK
uthum*		at uhidev?		# TEMPerHUM sensor
ugold*		at uhidev?		# gold TEMPer sensor
utrh*		at uhidev?		# USBRH sensor
utwitch*	at uhidev?		# YUREX BBU sensor
uow*		at uhub?		# Maxim/Dallas DS2490 1-Wire adapter
uoakrh*		at uhidev?		# Toradex OAK temp and rel humidity
uoaklux*	at uhidev?		# Toradex OAK LUX
uoakv*		at uhidev?		# Toradex OAK 10V sensor
onewire*	at uow?
uvideo*		at uhub?		# USB Video
video*		at uvideo?
utvfu*		at uhub?		# Fushicai Audio-Video Grabber
video*		at utvfu?
audio*		at utvfu?
udl*		at uhub?		# DisplayLink USB displays
wsdisplay*	at udl?
bwfm*		at uhub?		# Broadcom FullMAC

amphy*		at mii?			# AMD 79C873 PHYs
atphy*		at mii?			# Attansic F1 PHYs
eephy*		at mii?			# Marvell 88E1000 series PHY
rgephy*		at mii?			# Realtek 8169S/8110S PHY
rlphy*		at mii?			# Realtek 8139 internal PHYs
ukphy*		at mii?			# "unknown" PHYs
urlphy*		at mii?			# Realtek RTL8150L internal PHY

scsibus*	at scsi?
sd*		at scsibus?
cd*		at scsibus?
st*		at scsibus?
ch*		at scsibus?
uk*		at scsibus?

# I2C devices
abcrtc*		at iic?			# Abracon x80x RTC
fanpwr*		at iic?			# FAN53555 regulator
islrtc*		at iic?			# ISL1208 RTC
rkpmic*		at iic?			# RK808 PMIC
sypwr*		at iic?			# SY8106A regulator

# GPIO "pin bus" drivers
gpioiic*	at gpio?		# I2C bus bit-banging
iic*		at gpioiic?
gpioow*		at gpio?		# 1-Wire bus bit-banging
onewire*	at gpioow?

# 1-Wire devices
option	ONEWIREVERBOSE
owid*		at onewire?		# ID
owsbm*		at onewire?		# Smart Battery Monitor
owtemp*		at onewire?		# Temperature
owctr*		at onewire?		# Counter device

# Pseudo-Devices
pseudo-device	openprom
pseudo-device	hotplug		1	# devices hot plugging

# mouse & keyboard multiplexor pseudo-devices
pseudo-device	wsmux		2
