Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#
#	$NetBSD: BCM5301X,v 1.39 2022/08/07 02:52:25 simonb Exp $
#
#	BCM5301X -- Broadcom BCM5301X Eval Board Kernel
#

include	"arch/evbarm/conf/std.bcm53xx"

# estimated number of users

maxusers	32

# Standard system options

options 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
#options 	NTP		# NTP phase/frequency locked loop

# CPU options

#makeoptions	DEFCOPTS="-O0"
options 	UVMHIST
#options 	UVMHIST_PRINT,A9WDT_PERIOD_DEFAULT=30
options 	BCM53XX_CONSOLE_EARLY
options 	BCMETH_COUNTERS
#options 	MULTIPROCESSOR
options 	CPU_CORTEX
#options 	MEMSIZE=256
options 	BCM5301X
#options 	PMAPCOUNTERS
options 	BUSDMA_COUNTERS
makeoptions	KERNEL_BASE_PHYS="0x80100000"

# Architecture options

# File systems

file-system	FFS		# UFS
#file-system	LFS		# log-structured file system
file-system	MFS		# memory file system
file-system	NFS		# Network file system
#file-system 	ADOSFS		# AmigaDOS-compatible file system
#file-system 	EXT2FS		# second extended file system (linux)
file-system	CD9660		# ISO 9660 + Rock Ridge file system
file-system	MSDOSFS		# MS-DOS file system
#file-system	FDESC		# /dev/fd
file-system	KERNFS		# /kern
#file-system	NULLFS		# loopback file system
#file-system	PROCFS		# /proc
#file-system	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)
#file-system	UMAPFS		# NULLFS + uid and gid remapping
#file-system	UNION		# union file system
file-system	TMPFS		# memory file system
file-system	PTYFS		# /dev/pts/N support

# File system options
#options 	FFS_EI		# FFS Endian Independent support
#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
#options 	QUOTA		# legacy UFS quotas
#options 	QUOTA2		# new, in-filesystem UFS quotas
options 	UFS_DIRHASH	# UFS Large Directory Hashing
#options 	UFS_EXTATTR	# Extended attribute support for UFS1
options 	WAPBL		# File system journaling support
#options 	DISKLABEL_EI	# disklabel Endian Independent support
#options 	NFSSERVER	# Network File System server

# Networking options

#options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
options 	INET6		# IPV6
#options 	IPSEC		# IP security
#options 	IPSEC_DEBUG	# debug for IP security
#options 	MROUTING	# IP multicast routing
#options 	PIM		# Protocol Independent Multicast
#options 	NETATALK	# AppleTalk networking
#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
#options 	PPP_DEFLATE	# Deflate compression support for PPP
#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG

options 	NFS_BOOT_BOOTP
options 	NFS_BOOT_DHCP
#options		NFS_BOOT_BOOTSTATIC
#options		NFS_BOOTSTATIC_MYIP="\"192.168.1.4\""
#options		NFS_BOOTSTATIC_GWIP="\"192.168.1.1\""
#options		NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
#options		NFS_BOOTSTATIC_SERVADDR="\"192.168.1.1\""
#options		NFS_BOOTSTATIC_SERVER="\"192.168.1.1:/nfs/sdp2430\""

options 	NFS_BOOT_RWSIZE=1024

# Compatibility options
include 	"conf/compat_netbsd30.config"
options 	COMPAT_NETBSD32	# allow running arm (e.g. non-earm) binaries

# Shared memory options

options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing

# Device options

#options 	MEMORY_DISK_HOOKS	# boottime setup of ramdisk
#options 	MEMORY_DISK_ROOT_SIZE=8192	# Size in blocks
#options 	MEMORY_DISK_DYNAMIC
#options 	MINIROOTSIZE=1000	# Size in blocks
#options 	MEMORY_DISK_IS_ROOT	# use memory disk as root

# Wedge support
options 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
options 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges

# Miscellaneous kernel options
options 	MODULAR		# support dynamically loaded kernel modules
options 	MODULAR_DEFAULT_AUTOLOAD
options 	KTRACE		# system call tracing, a la ktrace(1)
options 	PCIVERBOSE	# Verbose PCI autoconfiguration messages
#options 	PCI_CONFIG_DUMP	# Verbose PCI autoconfiguration messages
options 	PCI_NETBSD_CONFIGURE # perform PCI configuration
options 	RNDVERBOSE	# Verbose rnd messages
#options 	SCSIVERBOSE	# Verbose SCSI errors
#options 	MIIVERBOSE	# Verbose MII autoconfiguration messages
#options 	DDB_KEYCODE=0x40
#options 	USERCONF	# userconf(4) support
#options	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)

# Development and Debugging options

options 	DIAGNOSTIC	# internal consistency checks
options 	DEBUG
#options 	LOCKDEBUG	# Enable lock debugging
#options 	UVMHIST		# kernhist for uvm/pmap subsystems
options 	VERBOSE_INIT_ARM # verbose bootstraping messages
options 	DDB		# in-kernel debugger
options 	DDB_ONPANIC=1
options 	DDB_HISTORY_SIZE=100	# Enable history editing in DDB
options 	DDB_COMMANDONENTER="show event"
options 	DB_MAX_LINE=INT_MAX
#options 	KGDB
makeoptions	DEBUG="-g"	# compile full symbol table
makeoptions	COPY_SYMTAB=1

## USB Debugging options
options USB_DEBUG
options EHCI_DEBUG
options OHCI_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 ?

# The main bus device
mainbus0	at root

# The boot cpu
cpu0		at mainbus?
#cpu*		at mainbus?

# The MPCore interrupt controller and global timer
armperiph0	at mainbus?		# A9 On-Chip Peripherals
armgic0		at armperiph?		# ARM Generic Interrupt Controller
arml2cc0	at armperiph? flags 0	# ARM PL310 L2CC
arma9tmr0	at armperiph?		# A9 Global Timer
arma9wdt0	at armperiph? flags 1	# A9 Watchdog Timer

# ChipCommonA Peripherals
bcmcca0		at mainbus?		# ChipCommonA
#options 	CONADDR=0x18000300, CONSPEED=115200
options 	CONSPEED=9600
com0		at bcmcca? channel 0
com*		at bcmcca? channel 1

# ChipCommonB Peripherals
bcmccb0		at mainbus?		# ChipCommonB
bcmpax*		at bcmccb? port ? flags 2 # use bounce buffers
pci*		at bcmpax?
ppb*		at pci? dev ? function ?
pci*		at ppb?

ahcisata*	at pci? dev ? function ?
atabus* 	at ahcisata? channel ?
#options 	ATADEBUG
wd*		at atabus? drive ?
wm*		at pci? dev ? function ?
makphy*		at mii?
ukphy*		at mii?

bcmmdio0	at bcmccb0
bcmeth*		at bcmccb? port ?

# SDHC controllers
sdhc0		at bcmccb0
sdmmc*		at sdhc?		# SD/MMC bus
ld*		at sdmmc?

# Random Number Generator
bcmrng0		at bcmccb0

# NAND controller
#bcmnand0	at bcmccb0

# NAND layer
#nand0		at nandbus?

# use the bad block table
#options NAND_BBT

# Define flash partitions for board
#flash0		at nand0 offset 0x000000 size 0x080000 readonly 1 # X-Loader
#flash1		at nand0 offset 0x080000 size 0x1e0000 readonly 1 # U-Boot
#flash2		at nand0 offset 0x260000 size 0x020000 readonly 1 # UB Env
#flash3		at nand0 offset 0x280000 size 0x400000		# kernel
#flash4		at nand0 offset 0x680000 size 0			# filesystem

# I2C Controller
bcmi2c0 	at bcmccb0
iic*		at bcmi2c?

# NAND Controller
bcmnand0	at bcmccb0
nand*		at nandbus?
flash*		at nand?

# Watchdog timers
#bcmwdt*	at bcmccb0

# On-board USB
bcmusb*		at bcmccb0
ohci*		at bcmusb0
usb*		at ohci?
ehci*		at bcmusb0
usb*		at ehci?
uhub*		at usb?
uhub*		at uhub? port ?
umass*		at uhub? port ? configuration ? interface ?
scsibus*	at scsi?
sd*		at scsibus? target ? lun ?

# USB Ethernet adapters
axe*		at uhub? port ? configuration ? interface ?

# Hardware clocking and power management

# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device	md			# memory disk device (ramdisk)
#pseudo-device	vnd			# disk-like interface to files
#pseudo-device	fss			# file system snapshot device
#pseudo-device	putter			# for puffs and pud

# network pseudo-devices
pseudo-device	bpfilter		# Berkeley packet filter
pseudo-device	loop			# network loopback
#pseudo-device	kttcp			# network loopback
pseudo-device	vlan
pseudo-device	bridge
#pseudo-device	vether			# Virtual Ethernet for bridge

# miscellaneous pseudo-devices
pseudo-device	pty			# pseudo-terminals
#options	RND_COM
#pseudo-device	clockctl		# user control of clock subsystem
pseudo-device	ksyms			# /dev/ksyms
pseudo-device	drvctl			# device control
pseudo-device	lockstat		# lock profiling