#
# $NetBSD: RPI,v 1.96 2023/02/09 14:09:48 abs Exp $
#
# RPi -- Raspberry Pi
#
include "arch/evbarm/conf/std.rpi"
include "arch/evbarm/conf/GENERIC.common"
options CPU_ARM1176
options SOC_BCM2835
options TPIDRPRW_IS_CURLWP
options ARM11_COMPAT_MMU
options __HAVE_MM_MD_CACHE_ALIASING
makeoptions CPUFLAGS="-march=armv6z -mtune=arm1176jzf-s -mfpu=vfp"
# Architecture options
# Development and Debugging options
#options KGDB,KGDB_PLCOMUNIT=0,KGDB_DEVRATE=115200,KGDB_CONMODE=0xB00
#options VERBOSE_INIT_ARM
#options EARLYCONS=bcm2835,CONSADDR=0x20201000 # RPI1, RPI0
#options EARLYCONS=bcm2835_aux,CONSADDR=0x20215040 # RPI0W
makeoptions DEBUG="-g" # compile full symbol table
makeoptions COPY_SYMTAB=1
options PLCONSOLE
#options PLCONSOLE,PLCOMCNUNIT=0,PLCONSPEED=115200,PLCONMODE=0xB00
## USB Debugging options
#options USB_DEBUG
#options DWC2_DEBUG
#options UHUB_DEBUG
# Valid options for BOOT_ARGS:
# single Boot to single user only
# kdb Give control to kernel debugger
# ask Ask for file name to reboot from
# memorydisk=<n> Set memorydisk size to <n> KB
# quiet Show aprint_naive output
# verbose Show aprint_normal and aprint_verbose output
#options BOOT_ARGS="\"\""
config netbsd root on ? type ?
# Device tree support
armfdt0 at root
simplebus* at fdt? pass 0
# The CPU(s)
cpus* at fdt? pass 0
cpu* at fdt? pass 0
fclock* at fdt? pass 0
# Interrupt Controller
bcmicu* at fdt? pass 1
# System timer
bcmtmr0 at fdt? pass 1
# Clock manager
bcmcprman0 at fdt? pass 1
# AUX
bcmaux0 at fdt? pass 2
# pulse width modulator manager
#bcmpwm0 at fdt?
fregulator* at fdt?
gpiokeys* at fdt?
# GPIO LEDs
gpioleds* at fdt?
# VC Mailbox
bcmmbox* at fdt?
vcmbox* at bcmmbox?
# DMA Controller
bcmdmac0 at fdt?
# VCHIQ
vchiq0 at fdt?
# AUDS
vcaudio0 at vchiq0
audio* at audiobus?
spkr* at audio? # PC speaker (synthesized)
# PL011 uart
plcom* at fdt?
# AUX UART
com0 at fdt?
# Framebuffer console
genfb0 at fdt?
wsdisplay* at genfb?
options VCONS_DRAW_INTR
#options RPI_HWCURSOR
# Power management, Reset controller and Watchdog registers
bcmpmwdog* at fdt?
# Random number generator
bcmrng0 at fdt?
# GPIO
bcmgpio* at fdt?
# Arasan SD/MMC Interface
sdhc* at fdt?
sdmmc* at sdhc?
# SD host controller
bcmsdhost* at fdt?
sdmmc* at bcmsdhost?
ld* at sdmmc?
bwfm* at sdmmc?
# On-board USB
dwctwo* at fdt?
usb* at dwctwo?
# USB device drivers
include "dev/usb/usbdevices.config"
midi* at midibus?
# MII/PHY support
exphy* at mii? phy ? # 3Com internal PHYs
gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs
glxtphy* at mii? phy ? # Level One LXT-1000 PHYs
gphyter* at mii? phy ? # NS83861 Gig-E PHY
icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
igphy* at mii? phy ? # Intel IGP01E1000
ihphy* at mii? phy ? # Intel 82577 PHYs
ikphy* at mii? phy ? # Intel 82563 PHYs
inphy* at mii? phy ? # Intel 82555 PHYs
iophy* at mii? phy ? # Intel 82553 PHYs
lxtphy* at mii? phy ? # Level One LXT-970 PHYs
makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs
nsphy* at mii? phy ? # NS83840 PHYs
nsphyter* at mii? phy ? # NS83843 PHYs
pnaphy* at mii? phy ? # generic HomePNA PHYs
qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
rdcphy* at mii? phy ? # RDC R6040 10/100 PHY
rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs
rlphy* at mii? phy ? # Realtek 8139/8201L PHYs
smscphy* at mii? phy ? # SMSC LAN87xx PHYs
sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
tlphy* at mii? phy ? # ThunderLAN PHYs
tqphy* at mii? phy ? # TDK Semiconductor PHYs
urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
ukphy* at mii? phy ? # generic unknown PHYs
# Broadcom Serial Control (I2C)
bsciic* at fdt?
iic* at i2cbus?
# 'DS3231 Raspberry Pi RTC Board Real Time Clock Module for Arduino'
# sold by linksprite.com
#dsrtc* at iic1 addr 0x68 flags 3231
# MCP7940 based PiFace Real Time Clock
#dsrtc* at iic1 addr 0x6f flags 7940
# SPI controller
bcmspi* at fdt?
spi* at spibus?
# MCP3x0x ADC
# flags selects the actual chip, refer to mcp3kadc(4)
#mcp3kadc0 at spi? slave 0 flags 0
# PIFace or other boards using that chip (needs gpio)
#mcpgpio0 at spi? slave 0 flags 0
#mcpgpio1 at spi? slave 0 flags 1
#mcpgpio2 at spi? slave 0 flags 2
#mcpgpio3 at spi? slave 0 flags 3
# MCP230xx GPIO on I2C.
mcpgpio* at iic? addr ?
# gpio support (e. g. mcpgpio, bcmgpio)
gpio* at gpiobus?
# various options for wscons - we try to look as much like a standard
# sun console as possible
options WSEMUL_VT100 # sun terminal emulation
options WS_DEFAULT_FG=WSCOL_WHITE
options WS_DEFAULT_BG=WSCOL_BLACK
options WS_KERNEL_FG=WSCOL_GREEN
options WS_KERNEL_BG=WSCOL_BLACK
options WSDISPLAY_COMPAT_PCVT # emulate some ioctls
options WSDISPLAY_COMPAT_SYSCONS # emulate some more ioctls
options WSDISPLAY_COMPAT_USL # wsconscfg VT handling
options WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes
options WSDISPLAY_DEFAULTSCREENS=4
options FONT_BOLD8x16
options FONT_BOLD16x32
#options FONT_QVSS8x15
#options FONT_GALLANT12x22 # the console font
# Pseudo-Devices
# network pseudo-devices
#pseudo-device carp # Common Address Redundancy Protocol
#pseudo-device npf # NPF packet filter
#pseudo-device kttcp # network loopback
#pseudo-device sl # Serial Line IP
#pseudo-device irframetty # IrDA frame line discipline
#pseudo-device faith # IPv[46] TCP relay translation i/f
#pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation
#pseudo-device agr # IEEE 802.3ad link aggregation
# miscellaneous pseudo-devices
pseudo-device openfirm
# wscons pseudo-devices
pseudo-device wsmux # mouse & keyboard multiplexor
pseudo-device wsfont
# userland interface to drivers, including autoconf and properties retrieval
# Bluetooth devices
include "dev/bluetooth/bluetoothdevices.config"
# Pull in optional local configuration - always at end
cinclude "arch/evbarm/conf/RPI.local"