RPI revision 1.80
11.1Sskrll#
21.80Sjmcneill#	$NetBSD: RPI,v 1.80 2018/06/30 16:30:35 jmcneill Exp $
31.1Sskrll#
41.1Sskrll#	RPi -- Raspberry Pi
51.1Sskrll#
61.1Sskrll
71.1Sskrllinclude	"arch/evbarm/conf/std.rpi"
81.62Sskrllinclude "arch/evbarm/conf/GENERIC.common"
91.1Sskrll
101.78Sskrllmakeoptions DTSGNUARCH="arm arm64"
111.78Sskrllmakeoptions DTSSUBDIR="broadcom"
121.78Sskrll
131.78Sskrllmakeoptions	DTS="
141.78Sskrll	bcm2835-rpi-a.dts
151.78Sskrll	bcm2835-rpi-a-plus.dts
161.78Sskrll	bcm2835-rpi-b.dts
171.78Sskrll	bcm2835-rpi-b-plus.dts
181.78Sskrll	bcm2835-rpi-b-rev2.dts
191.78Sskrll	bcm2835-rpi-zero.dts
201.78Sskrll"
211.1Sskrll
221.60Sskrlloptions 	CPU_ARM1176
231.78Sskrlloptions 	SOC_BCM2835
241.60Sskrlloptions 	TPIDRPRW_IS_CURLWP
251.61Sjmcneilloptions 	ARM11_COMPAT_MMU
261.60Sskrlloptions 	__HAVE_MM_MD_CACHE_ALIASING
271.60Sskrllmakeoptions 	CPUFLAGS="-march=armv6z -mtune=arm1176jzf-s -mfpu=vfp"
281.1Sskrll
291.1Sskrll# Architecture options
301.1Sskrll
311.1Sskrll# Development and Debugging options
321.33Sreinoud#options 	KGDB,KGDB_PLCOMUNIT=0,KGDB_DEVRATE=115200,KGDB_CONMODE=0xB00
331.1Sskrllmakeoptions	DEBUG="-g"	# compile full symbol table
341.48Sjoergmakeoptions	COPY_SYMTAB=1
351.1Sskrlloptions 	PLCONSOLE
361.1Sskrll#options 	PLCONSOLE,PLCOMCNUNIT=0,PLCONSPEED=115200,PLCONMODE=0xB00
371.1Sskrll
381.1Sskrll## USB Debugging options
391.77Sskrll#options USB_DEBUG
401.65Sskrll#options DWC2_DEBUG
411.1Sskrll#options UHUB_DEBUG
421.1Sskrll
431.1Sskrll
441.1Sskrll# Valid options for BOOT_ARGS:
451.1Sskrll#  single		Boot to single user only
461.1Sskrll#  kdb			Give control to kernel debugger
471.1Sskrll#  ask			Ask for file name to reboot from
481.1Sskrll#  pmapdebug=<n>	If PMAP_DEBUG, set pmap_debug_level to <n>
491.1Sskrll#  memorydisk=<n>	Set memorydisk size to <n> KB
501.1Sskrll#  quiet		Show aprint_naive output
511.1Sskrll#  verbose		Show aprint_normal and aprint_verbose output
521.1Sskrll#options		BOOT_ARGS="\"\""
531.1Sskrll
541.22Sjakllschconfig		netbsd		root on ? type ?
551.1Sskrll
561.78Sskrll# Device tree support
571.78Sskrllarmfdt0		at root
581.79Sjmcneillsimplebus*	at fdt?
591.1Sskrll
601.60Sskrll# The CPU(s)
611.78Sskrllcpus*		at fdt? pass 0
621.80Sjmcneillcpu*		at fdt? pass 0
631.1Sskrll
641.78Sskrllfclock*		at fdt? pass 0
651.1Sskrll
661.1Sskrll# Interrupt Controller
671.78Sskrllbcmicu*		at fdt? pass 1
681.78Sskrll
691.78Sskrll# System timer
701.78Sskrllbcmtmr0		at fdt? pass 1
711.78Sskrll
721.78Sskrll# Clock manager
731.78Sskrllbcmcprman0 	at fdt? pass 1
741.78Sskrll
751.78Sskrll# AUX
761.78Sskrllbcmaux0		at fdt? pass 2
771.78Sskrll
781.78Sskrll# pulse width modulator manager
791.78Sskrll#bcmpwm0 	at fdt?
801.78Sskrll
811.78Sskrllfregulator*	at fdt?
821.78Sskrllgpiokeys*	at fdt?
831.78Sskrll
841.78Sskrll# GPIO LEDs
851.78Sskrllgpioleds*	at fdt?
861.1Sskrll
871.4Sskrll# VC Mailbox
881.78Sskrllbcmmbox*	at fdt?
891.78Sskrllvcmbox* 	at bcmmbox?
901.4Sskrll
911.51Sjmcneill# DMA Controller
921.78Sskrllbcmdmac0	at fdt?
931.51Sjmcneill
941.27Sjmcneill# VCHIQ
951.78Sskrllvchiq0		at fdt?
961.30Sjmcneill
971.30Sjmcneill# AUDS
981.30Sjmcneillvcaudio0	at vchiq0
991.76Sjmcneillaudio*		at audiobus?
1001.27Sjmcneill
1011.71Schristosspkr*		at audio?		# PC speaker (synthesized)
1021.69Snat
1031.1Sskrll# PL011 uart
1041.78Sskrllplcom*		at fdt?
1051.1Sskrll
1061.74Sjmcneill# AUX UART
1071.78Sskrllcom0		at fdt?
1081.74Sjmcneill
1091.15Sjmcneill# Framebuffer console
1101.78Sskrllgenfb0		at fdt?
1111.20Sjmcneillwsdisplay*	at genfb?
1121.31Sreinoudoptions		VCONS_DRAW_INTR
1131.56Sskrll#options 	RPI_HWCURSOR
1141.15Sjmcneill
1151.1Sskrll# Power management, Reset controller and Watchdog registers
1161.78Sskrllwatchdog0	at fdt?
1171.1Sskrll
1181.23Sjmcneill# Random number generator
1191.78Sskrllbcmrng0 	at fdt?
1201.23Sjmcneill
1211.44Skardel# GPIO
1221.78Sskrllbcmgpio*	at fdt?
1231.44Skardel
1241.1Sskrll# Arasan SD/MMC Interface
1251.78Sskrllsdhc*		at fdt?
1261.78Sskrllsdmmc*		at sdhc?
1271.1Sskrll
1281.72Sjmcneill# SD host controller
1291.78Sskrllsdhost* 	at fdt?
1301.78Sskrllsdmmc* 		at sdhost?
1311.72Sjmcneill
1321.1Sskrllld*     at sdmmc?
1331.1Sskrll
1341.17Sskrll# On-board USB
1351.78Sskrlldwctwo* 	at fdt?
1361.41Sskrllusb* 		at dwctwo?
1371.7Sjakllsch
1381.38Sskrll# USB device drivers
1391.17Sskrllinclude "dev/usb/usbdevices.config"
1401.7Sjakllsch
1411.57Suebayasimidi*		at midibus?
1421.57Suebayasi
1431.50Sskrll# MII/PHY support
1441.50Sskrllexphy* 		at mii? phy ?		# 3Com internal PHYs
1451.50Sskrllgentbi* 	at mii? phy ?		# Generic Ten-Bit 1000BASE-[CLS]X PHYs
1461.50Sskrllglxtphy*	at mii? phy ?		# Level One LXT-1000 PHYs
1471.50Sskrllgphyter* 	at mii? phy ?		# NS83861 Gig-E PHY
1481.50Sskrllicsphy*		at mii? phy ?		# Integrated Circuit Systems ICS189x
1491.50Sskrlligphy*		at mii? phy ?		# Intel IGP01E1000
1501.50Sskrllihphy*		at mii? phy ?		# Intel 82577 PHYs
1511.50Sskrllikphy*		at mii? phy ?		# Intel 82563 PHYs
1521.50Sskrllinphy*		at mii? phy ?		# Intel 82555 PHYs
1531.50Sskrlliophy*		at mii? phy ?		# Intel 82553 PHYs
1541.50Sskrlllxtphy*		at mii? phy ?		# Level One LXT-970 PHYs
1551.50Sskrllmakphy*		at mii? phy ?		# Marvell Semiconductor 88E1000 PHYs
1561.50Sskrllnsphy*		at mii? phy ?		# NS83840 PHYs
1571.50Sskrllnsphyter*	at mii? phy ? 		# NS83843 PHYs
1581.50Sskrllpnaphy*		at mii? phy ?		# generic HomePNA PHYs
1591.50Sskrllqsphy*		at mii? phy ?		# Quality Semiconductor QS6612 PHYs
1601.50Sskrllrdcphy*		at mii? phy ?		# RDC R6040 10/100 PHY
1611.50Sskrllrgephy*		at mii? phy ?		# Realtek 8169S/8110S internal PHYs
1621.50Sskrllrlphy*		at mii? phy ?		# Realtek 8139/8201L PHYs
1631.50Sskrllsqphy*		at mii? phy ?		# Seeq 80220/80221/80223 PHYs
1641.50Sskrlltlphy*		at mii? phy ?		# ThunderLAN PHYs
1651.50Sskrlltqphy*		at mii? phy ?		# TDK Semiconductor PHYs
1661.50Sskrllurlphy*		at mii? phy ?		# Realtek RTL8150L internal PHYs
1671.50Sskrllukphy*		at mii? phy ?		# generic unknown PHYs
1681.18Sskrll
1691.14Sjakllsch# Broadcom Serial Control (I2C)
1701.78Sskrllbsciic* at fdt?
1711.14Sjakllschiic* at i2cbus?
1721.14Sjakllsch
1731.58Smacallan# 'DS3231 Raspberry Pi RTC Board Real Time Clock Module for Arduino'
1741.58Smacallan# sold by linksprite.com
1751.58Smacallan#dsrtc* at iic1 addr 0x68 flags 3231
1761.58Smacallan
1771.68Saymeric# MCP7940 based PiFace Real Time Clock
1781.68Saymeric#dsrtc* at iic1 addr 0x6f flags 7940
1791.68Saymeric
1801.14Sjakllsch# SPI controller
1811.78Sskrllbcmspi* at fdt?
1821.14Sjakllschspi* at spibus?
1831.14Sjakllsch
1841.64Sphx# MCP3x0x ADC
1851.64Sphx# flags selects the actual chip, refer to mcp3kadc(4)
1861.64Sphx#mcp3kadc0 at spi? slave 0 flags 0
1871.64Sphx
1881.43Skardel# PIFace or other boards using that chip (needs gpio)
1891.43Skardel#mcp23s17gpio0 at spi? slave 0 flags 0
1901.55Sjakllsch#mcp23s17gpio1 at spi? slave 0 flags 1
1911.43Skardel#mcp23s17gpio2 at spi? slave 0 flags 2
1921.43Skardel#mcp23s17gpio3 at spi? slave 0 flags 3
1931.43Skardel
1941.44Skardel# gpio support (e. g. mcp23s17gpio, bcmgpio)
1951.44Skardelgpio*		at gpiobus?
1961.43Skardel
1971.1Sskrll# various options for wscons - we try to look as much like a standard
1981.1Sskrll# sun console as possible
1991.1Sskrlloptions 	WSEMUL_VT100		# sun terminal emulation
2001.5Sskrlloptions 	WS_DEFAULT_FG=WSCOL_WHITE
2011.5Sskrlloptions 	WS_DEFAULT_BG=WSCOL_BLACK
2021.5Sskrlloptions 	WS_KERNEL_FG=WSCOL_GREEN
2031.5Sskrlloptions 	WS_KERNEL_BG=WSCOL_BLACK
2041.24Sskrlloptions 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
2051.24Sskrlloptions 	WSDISPLAY_COMPAT_SYSCONS	# emulate some more ioctls
2061.3Sabsoptions 	WSDISPLAY_COMPAT_USL		# wsconscfg VT handling
2071.1Sskrlloptions 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
2081.1Sskrlloptions 	WSDISPLAY_DEFAULTSCREENS=4
2091.24Sskrll
2101.15Sjmcneill#options 	FONT_QVSS8x15
2111.1Sskrll#options 	FONT_GALLANT12x22	# the console font
2121.1Sskrll
2131.1Sskrll# Pseudo-Devices
2141.1Sskrll
2151.1Sskrll# network pseudo-devices
2161.9Sskrll#pseudo-device	carp			# Common Address Redundancy Protocol
2171.9Sskrll#pseudo-device	ipfilter		# IP filter (firewall) and NAT
2181.1Sskrll#pseudo-device	kttcp			# network loopback
2191.9Sskrll#pseudo-device	ppp			# Point-to-Point Protocol
2201.9Sskrll#pseudo-device	pppoe			# PPP over Ethernet (RFC 2516)
2211.9Sskrll#options 	PPPOE_SERVER		# Enable PPPoE server via link0
2221.9Sskrll#pseudo-device	sl			# Serial Line IP
2231.9Sskrll#pseudo-device	strip			# Starmode Radio IP (Metricom)
2241.9Sskrll#pseudo-device	irframetty		# IrDA frame line discipline
2251.9Sskrll#pseudo-device	tap			# virtual Ethernet
2261.9Sskrll#pseudo-device	tun			# network tunneling over tty
2271.9Sskrll#pseudo-device	gre			# generic L3 over IP tunnel
2281.9Sskrll#pseudo-device	gif			# IPv[46] over IPv[46] tunnel (RFC 1933)
2291.9Sskrll#pseudo-device	faith			# IPv[46] TCP relay translation i/f
2301.9Sskrll#pseudo-device	stf			# 6to4 IPv6 over IPv4 encapsulation
2311.9Sskrll#pseudo-device	vlan			# IEEE 802.1q encapsulation
2321.9Sskrll#pseudo-device	bridge			# simple inter-network bridging
2331.9Sskrll#options	BRIDGE_IPF		# bridge uses IP/IPv6 pfil hooks too
2341.9Sskrll#pseudo-device	agr			# IEEE 802.3ad link aggregation
2351.9Sskrll#pseudo-device	pf			# PF packet filter
2361.9Sskrll#pseudo-device	pflog			# PF log if
2371.1Sskrll
2381.1Sskrll# miscellaneous pseudo-devices
2391.78Sskrllpseudo-device	openfirm
2401.9Sskrll
2411.9Sskrll# wscons pseudo-devices
2421.9Sskrllpseudo-device	wsmux			# mouse & keyboard multiplexor
2431.9Sskrllpseudo-device	wsfont
2441.9Sskrll
2451.29Sjmcneill# userland interface to drivers, including autoconf and properties retrieval
2461.29Sjmcneill
2471.16Sjmcneill# local configuration
2481.16Sjmcneillcinclude "arch/evbarm/conf/RPI.local"
2491.75Snat
2501.75Snat# Bluetooth serial UART devices
2511.75Snatpseudo-device btuart
2521.75Snatpseudo-device bcsp
2531.75Snatpseudo-device bthfive
254