# $NetBSD: GENERIC64,v 1.21 2025/02/08 16:12:20 skrll Exp $
#
# GENERIC machine description file
#
# This machine description file is used to generate the default NetBSD
# kernel for RV64.  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 NetBSD 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.

include	"arch/riscv/conf/std.riscv64"
include	"arch/riscv/conf/files.generic64"
include	"arch/riscv/conf/GENERIC.common"

#options 	EARLYCONS=com, CONSADDR=0x10000000	# qemu virt
options 	VERBOSE_INIT_RISCV

# Diagnostic/debugging support options
options 	DIAGNOSTIC	# inexpensive kernel consistency checks
				# XXX to be commented out on release branch
options 	DEBUG		# expensive debugging checks/support
#options 	LOCKDEBUG	# expensive locking checks/support
#options 	KERNHIST
#options 	KERNHIST_PRINT
#options 	UVMHIST
#options 	UVMHIST_PRINT
#options 	PMAPHIST
#options 	PMAPHIST_PRINT
#options 	SYSCTL_DEBUG
#options 	SYSCTL_DEBUG_SETUP
#options 	SYSCTL_DEBUG_CREATE
#options 	PMAP_FAULTINFO
#options 	RISCV_SYSCALL_DEBUG
#options 	SYSCALL_DEBUG

#options 	COMPAT_NETBSD32
#options 	EXEC_ELF32

# Cache controller
ccache* 	at fdt?			# SiFive FU[57]40 L2 Cache

# Fixed Voltage/Current Regulators
fregulator* 	at fdt? pass 4

# Clock and reset controller
jh7100clkc* 	at fdt?	pass 2		# StarFive JH7100 clock controller
jh7110clkc* 	at fdt?	pass 2		# StarFive JH7110 clock controller
sun20id1ccu* 	at fdt? pass 2		# Allwinner D1/D1s CCU

# Security ID EFUSE
sunxisid* 	at fdt? pass 4		# Allwinner SID

# DMA
sun6idma* 	at fdt? pass 4		# Allwinner DMA controller (sun6i)

# PCIe PHY
jh7110pciephy* 	at fdt? pass 3		# StarFive JH7110 PCIe PHY

# PCIe
jh7110pcie* 	at fdt?			# StarFive JH7110 PCIe

# Pin control
jh7100pinctrl* 	at fdt? pass 2		# StarFive JH7100 pinctrl driver
jh7110pinctrl* 	at fdt? pass 2		# StarFive JH7110 pinctrl driver
sunxigpio* 	at fdt? pass 2		# Allwinner GPIO
gpio* 		at gpiobus?

# System control
jh7110syscon* 	at fdt? pass 1

# SDMMC
dwcmmc* 	at fdt?			# DesignWare SD/MMC
sdmmc* 		at sdmmcbus?
ld0 		at sdmmc0
ld1 		at sdmmc1
ld2 		at sdmmc2
ld3 		at sdmmc3
ld* 		at sdmmc?
bwfm* 		at sdmmc?		# Broadcom BCM43xxx WiFi Interface

# USB PHY
sunxiusbphy* 	at fdt?			# Allwinner USB PHY

# USB
jh71x0usb* 	at fdt?			# StarFive JH71x0 usb

# Ethernet
#awge* 		at fdt?			# DesignWare Gigabit Ethernet
eqos* 		at fdt?			# DesignWare Ethernet QoS

# MII/PHY support
micphy* 	at mii? phy ?		# Micrel KSZ[89]xxx PHYs
mcommphy* 	at mii? phy ?		# Motorcomm YT8511C/YT8511H PHYs
ukphy* 		at mii? phy ?		# generic unknown PHYs

# Temperature sensor
jh71x0temp* 	at fdt?			# StarFive JH71x0 Temperature sensor

# Random number generators
jh7110trng* 	at fdt?			# StarFive JH7110 True RNG

# Pull in optional local configuration - always at end
cinclude 	"arch/riscv/conf/GENERIC64.local"
