#	$NetBSD: INSTALL_LAPTOP,v 1.57.2.5 2004/07/24 11:34:41 tron Exp $
#
#	INSTALL - Installation kernel.
#
#	This kernel should be derived from GENERIC with some features
#	commented out.
#
#	This kernel does NOT support X, mice, audio devices, non-NetBSD
#	emulation.
#

include "arch/i386/conf/std.i386"

#options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

# Enable the hooks used for initializing the root memory-disk.
options 	MEMORY_DISK_HOOKS
options 	MEMORY_DISK_IS_ROOT	# force root on memory disk
options 	MEMORY_DISK_SERVER=0	# no userspace memory disk support
options 	MEMORY_DISK_ROOT_SIZE=10000	# size of memory disk, in blocks

makeoptions	COPTS="-Os"		# generates smaller code than -O2, -O1

maxusers	32		# estimated number of users

# CPU support.  At least one is REQUIRED.
options 	I386_CPU
options 	I486_CPU
options 	I586_CPU
options 	I686_CPU

# CPU-related options.
options 	MATH_EMULATE	# floating point emulation
#options 	VM86		# virtual 8086 emulation
#options 	USER_LDT	# user-settable LDT; used by WINE

# Misc. i386-specific options
#options 	XSERVER		# X server support in console drivers

# This option allows you to force a serial console at the specified
# I/O address.
#options 	CONSDEVNAME="\"com\"",CONADDR=0x3f8,CONSPEED=9600

# The following options override the memory sizes passed in from the boot
# block.  Use them *only* if the boot block is unable to determine the correct
# values.  Note that the BIOS may *correctly* report less than 640k of base
# memory if the extended BIOS data area is located at the top of base memory
# (as is the case on most recent systems).
#options 	REALBASEMEM=...	# size of base memory
#options 	REALEXTMEM=...	# size of extended memory

# Avoid irq 5 and 7, the most likely cause of problems on modern laptops.
options 	PCIC_ISA_INTR_ALLOC_MASK=0xff5f

# Standard system options

options 	INSECURE	# disable kernel security levels

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

#options 	KTRACE		# system call tracing via ktrace(1)

#options 	SYSVMSG		# System V-like message queues
#options 	SYSVSEM		# System V-like semaphores
#options 	SYSVSHM		# System V-like memory sharing
#options 	SHMMAXPGS=2048	# 2048 pages is the default

#options 	LKM		# loadable kernel modules

options 	USERCONF	# userconf(4) support
options 	PIPE_SOCKETPAIR		# smaller, but slower pipe(2)
#options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
options 	MALLOC_NOINLINE		# Not inlining MALLOC saves memory

# Diagnostic/debugging support options
#options 	DIAGNOSTIC	# expensive kernel consistency checks
#options 	DEBUG		# expensive debugging checks/support
#options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
options 	DDB		# in-kernel debugger
#options 	DDB_ONPANIC=1	# see also sysctl(8): `ddb.onpanic'
options 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
#options 	KGDB		# remote debugger
#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
#makeoptions	DEBUG="-g"	# compile full symbol table

# Compatibility options
#options 	COMPAT_NOMID	# NetBSD 0.8, 386BSD, and BSDI
#options 	COMPAT_09	# NetBSD 0.9
#options 	COMPAT_10	# NetBSD 1.0
#options 	COMPAT_11	# NetBSD 1.1
#options 	COMPAT_12	# NetBSD 1.2, 386BSD, and BSDI
options 	COMPAT_13	# NetBSD 1.3, 386BSD, and BSDI
options 	COMPAT_14	# NetBSD 1.4
options 	COMPAT_15	# NetBSD 1.5
options 	COMPAT_16	# NetBSD 1.6
#options 	COMPAT_43	# 4.3BSD, 386BSD, and BSDI
options 	COMPAT_386BSD_MBRPART # recognize old partition ID
#options 	TCP_COMPAT_42	# 4.2BSD TCP/IP bug compat. Not recommended.

#options 	COMPAT_SVR4	# binary compatibility with SVR4
#options 	COMPAT_IBCS2	# binary compatibility with SCO and ISC
#options 	COMPAT_LINUX	# binary compatibility with Linux
#options 	COMPAT_FREEBSD	# binary compatibility with FreeBSD

# File systems
file-system 	FFS		# UFS
file-system 	EXT2FS		# second extended file system (linux)
#file-system 	LFS		# log-structured file system
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	NTFS		# Windows/NT Filesystem
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 	PORTAL		# portal filesystem (still experimental)
#file-system 	PROCFS		# /proc
#file-system 	UMAPFS		# NULLFS + uid and gid remapping
#file-system 	UNION		# union file system

# File system options
#options 	QUOTA		# UFS quotas
#options 	NFSSERVER	# Network File System server
#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
				# immutable) behave as system flags.
options 	VNODE_OP_NOINLINE	# Not inlining vnode op calls saves mem

# Networking options
#options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
options 	INET6		# IPv6
#options 	MROUTING	# IP multicast routing
#options 	NS		# XNS
#options 	NSIP		# XNS tunneling over IP
#options 	ISO,TPIP	# OSI
#options 	EON		# OSI tunneling over IP
#options 	CCITT,LLC,HDLC	# X.25
#options 	NETATALK	# AppleTalk networking protocols
#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 	PFIL_HOOKS	# pfil(9) packet filter hooks
#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options 	EISAVERBOSE	# verbose EISA device autoconfig messages
#options 	MIIVERBOSE	# verbose PHY autoconfig messages
#options 	PCIVERBOSE	# verbose PCI device autoconfig messages
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space
#options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
#options 	SCSIVERBOSE	# human readable SCSI error messages

#
# wscons options
#
# builtin terminal emulations 
#options 	WSEMUL_SUN		# sun terminal emulation
options 	WSEMUL_VT100		# VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options 	WS_KERNEL_FG=WSCOL_WHITE
#options 	WS_KERNEL_BG=WSCOL_BLACK
# compatibility to other console drivers
#options 	WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
#options 	WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
#options 	WSDISPLAY_COMPAT_USL            # VT handling
#options 	WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
# see dev/pckbc/wskbdmap_mfii.c for implemented layouts
#options 	PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
# allocate a number of virtual screens at autoconfiguration time
#options 	WSDISPLAY_DEFAULTSCREENS=4
# use a large software cursor that doesn't blink
options 	PCDISPLAY_SOFTCURSOR
# modify the screen type of the console; defaults to "80x25"
#options 	VGA_CONSOLE_SCREENTYPE="\"80x24\""

# Kernel root file system and dump configuration.
config		netbsd	root on ? type ?
#config		netbsd	root on ? type nfs

#
# Device configuration
#

mainbus0 at root
cpu* at mainbus?

#apm0	at mainbus0			# Advanced power management


# Basic Bus Support

# PCI bus support
pci*	at mainbus? bus ?
pci*	at pchb? bus ?
pci*	at ppb? bus ?

# Configure PCI using BIOS information
options 	PCIBIOS			# PCI BIOS support
#options 	PCIBIOSVERBOSE		# PCI BIOS verbose info
options 	PCIBIOS_ADDR_FIXUP	# fixup PCI I/O addresses
options 	PCIBIOS_BUS_FIXUP	# fixup PCI bus numbering
options 	PCIBIOS_INTR_FIXUP	# fixup PCI interrupt routing
#options 	PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
options 	PCIBIOS_INTR_GUESS	# see pcibios(4)
#options 	PCIINTR_DEBUG		# super-verbose PCI interrupt fixup

# PCI bridges
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges
ppb*	at pci? dev ? function ?	# PCI-PCI bridges

# ISA bus support
isa0	at mainbus?
isa0	at pcib?

# PCMCIA bus support
pcmcia*	at pcic? controller ? socket ?
pcmcia*	at tcic? controller ? socket ?

# ISA PCMCIA controllers
pcic0 	at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000
pcic1 	at isa? port 0x3e2 iomem 0xe0000 iosiz 0x4000
pcic2	at isa? port 0x3e4 iomem 0xe0000 iosiz 0x4000
tcic0 	at isa? port 0x240 iomem 0xd0000 iosiz 0x10000

# PCI PCMCIA controllers
pcic0	at pci? dev? function ?

# ISA Plug-and-Play bus support
isapnp0	at isa?

# ISA Plug-and-Play PCMCIA controllers
pcic*	at isapnp?

# CardBus bridge support
cbb* 		at pci? dev ? function ?
cardslot* 	at cbb?

# CardBus bus support
cardbus* 	at cardslot?
pcmcia* 	at cardslot?


# Coprocessor Support

# Math Coprocessor support
npx0	at isa? port 0xf0 irq 13	# x86 math coprocessor


# Console Devices

# ISA console
#pc0	at isa? port 0x60 irq 1		# pccons generic PC console driver

# Keyboard layout configuration for pccons
#options 	FRENCH_KBD
#options 	FINNISH_KBD
#options 	GERMAN_KBD
#options 	NORWEGIAN_KBD

# wscons
pckbc0		at isa?			# pc keyboard controller
pckbd*		at pckbc?		# PC keyboard
#pms*		at pckbc?		# PS/2 mouse for wsmouse
vga0		at isa?
vga*		at pci? dev ? function ?
pcdisplay0	at isa?			# CGA, MDA, EGA, HGA
wsdisplay*	at vga? console ?
wsdisplay*	at pcdisplay? console ?
wskbd*		at pckbd? console ?
#wsmouse*	at pms? mux 0

pcppi0		at isa?
sysbeep0	at pcppi?

# Serial Devices

# PCI serial interfaces
#com*	at puc? port ?			# 16x50s on "universal" comm boards
#cy*	at pci? dev ? function ?	# Cyclades Cyclom-Y serial boards

# ISA Plug-and-Play serial interfaces
com*	at isapnp?			# Modems and serial boards

# PCMCIA serial interfaces
com*	at pcmcia? function ?		# Modems and serial cards

pcmcom*	at pcmcia? function ?		# PCMCIA multi-port serial cards
com*	at pcmcom? slave ?		# ...and the slave devices

# CardBus serial interfaces
com* 	at cardbus? dev ? function ?	# Modems and serial cards

# ISA serial interfaces
#options 	COM_HAYESP		# adds Hayes ESP serial board support
com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports
com1	at isa? port 0x2f8 irq 3
com2	at isa? port 0x3e8 irq 5
#com3	at isa? port 0x2e8 irq 9
#ast0	at isa? port 0x1a0 irq 5	# AST 4-port serial cards
#com*	at ast? slave ?
#boca0	at isa? port 0x100 irq 5	# BOCA 8-port serial cards
#com*	at boca? slave ?
#tcom0	at isa? port 0x100 irq 7	# TC-800 8-port serial cards
#com*	at tcom? slave ?
#rtfps0	at isa? port 0x1230 irq 10	# RT 4-port serial cards
#com*	at rtfps? slave ?
#cy0	at isa? iomem 0xd4000 irq 12	# Cyclades serial cards


# Parallel Printer Interfaces

# ISA parallel printer interfaces
#lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports
#lpt1	at isa? port 0x278
#lpt2	at isa? port 0x3bc


# SCSI Controllers and Devices

# PCMCIA SCSI controllers
aic*	at pcmcia? function ?		# Adaptec APA-1460 SCSI

# CardBus SCSI cards
ahc* 	at cardbus? dev ? function ?	# Adaptec ADP-1480
adv*	at cardbus? dev ? function ?	# AdvanSys 1200[A,B], 9xx[U,UA] SCSI

# SCSI bus support
scsibus* at scsi?

# SCSI devices
sd*	at scsibus? target ? lun ?	# SCSI disk drives
st*	at scsibus? target ? lun ?	# SCSI tape drives
cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
#ch*	at scsibus? target ? lun ?	# SCSI autochangers
#ss*	at scsibus? target ? lun ?	# SCSI scanners
#uk*	at scsibus? target ? lun ?	# SCSI unknown

# IDE and related devices
# PCI IDE controllers - see pciide(4) for supported hardware.
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide* 	at pci? dev ? function ? flags 0x0000	# GENERIC pciide driver
acardide*	at pci? dev ? function ?	# Acard IDE controllers
aceride* 	at pci? dev ? function ?	# Acer Lab IDE controllers
artsata*	at pci? dev ? function ?	# Intel i31244 SATA controller
cmdide* 	at pci? dev ? function ?	# CMD tech IDE controllers
cypide* 	at pci? dev ? function ?	# Cypress IDE controllers
#geodeide* 	at pci? dev ? function ?	# AMD Geode IDE controllers
hptide* 	at pci? dev ? function ?	# Triones/HighPoint IDE controllers
optiide* 	at pci? dev ? function ?	# Opti IDE controllers
piixide* 	at pci? dev ? function ?	# Intel IDE controllers
pdcide* 	at pci? dev ? function ?	# Promise IDE controllers
satalink*	at pci? dev ? function ?	# SiI SATALink controllers
siside* 	at pci? dev ? function ?	# SiS IDE controllers
slide* 		at pci? dev ? function ?	# Symphony Labs IDE controllers
viaide* 	at pci? dev ? function ?	# VIA/AMD/Nvidia IDE controllers

# ISA Plug-and-Play IDE controllers
wdc*	at isapnp?

# PCMCIA IDE controllers
wdc*	at pcmcia? function ?

# ISA ST506, ESDI, and IDE controllers
# Use flags 0x01 if you want to try to use 32bits data I/O (the driver will
# fall back to 16bits I/O if 32bits I/O are not functional).
# Some controllers pass the initial 32bit test, but will fail later.
wdc0	at isa? port 0x1f0 irq 14 flags 0x00
wdc1	at isa? port 0x170 irq 15 flags 0x00

# ATA (IDE) bus support
atabus* at ata?

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
wd*	at atabus? drive ? flags 0x0000

# ATAPI bus support
atapibus* at atapi?

# ATAPI devices
# flags have the same meaning as for IDE drives.
cd*	at atapibus? drive ? flags 0x0000	# ATAPI CD-ROM drives
sd*	at atapibus? drive ? flags 0x0000	# ATAPI disk drives
st*	at atapibus? drive ? flags 0x0000	# ATAPI tape drives
#uk*	at atapibus? drive ? flags 0x0000	# ATAPI unknown


# Miscellaneous mass storage devices

# ISA floppy
fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
#fdc1	at isa? port 0x370 irq ? drq ?
fd*	at fdc? drive ?			# the drives themselves
# some machines need you to do this instead of fd*
#fd0	at fdc0 drive 0

# Network Interfaces

# PCI network interfaces
ath*	at pci? dev ? function ?	# Atheros 5210/5211/5212 802.11
bce* 	at pci? dev ? function ?	# Broadcom 4401 10/100 Ethernet
bge* 	at pci? dev ? function ?	# Broadcom 570x gigabit Ethernet
ex*	at pci? dev ? function ?	# 3Com 90x[BC]
fxp*	at pci? dev ? function ?	# Intel EtherExpress PRO 10+/100B
ne* 	at pci? dev ? function ?	# NE2000-compatible Ethernet
re*	at pci? dev ? function ?	# Realtek 8139C+/8169/8169S/8110S
rtk* 	at pci? dev ? function ? 	# Realtek 8129/8139
tlp*	at pci? dev ? function ?	# DECchip 21x4x and clones
wm*	at pci? dev ? function ?	# Intel 8254x gigabit

# PCMCIA network interfaces
an*	at pcmcia? function ?		# Aironet PC4500/PC4800 (802.11)
awi*	at pcmcia? function ?		# BayStack 650 (802.11FH)
cnw*	at pcmcia? function ?		# Xircom/Netwave AirSurfer
ep*	at pcmcia? function ?		# 3Com 3c589 and 3c562 Ethernet
mbe*	at pcmcia? function ?		# MB8696x based Ethernet
ne*	at pcmcia? function ?		# NE2000-compatible Ethernet
ray*	at pcmcia? function ?		# Raytheon Raylink (802.11)
sm*	at pcmcia? function ?		# Megahertz Ethernet
wi*	at pcmcia? function ?		# Lucent/Intersil WaveLan IEEE (802.11)
xi*	at pcmcia? function ?		# Xircom CreditCard Ethernet

mhzc*	at pcmcia? function ?		# Megahertz Ethernet/Modem combo cards
com*	at mhzc?
sm*	at mhzc?

# CardBus network cards
ath*	at cardbus? dev ? function ?	# Atheros 5210/5211/5212 802.11
atw*	at cardbus? dev ? function ?	# ADMtek ADM8211 (802.11)
ex* 	at cardbus? dev ? function ?	# 3Com 3C575TX
fxp* 	at cardbus? dev ? function ? 	# Intel i8255x
rtk* 	at cardbus? dev ? function ? 	# Realtek 8129/8139
tlp* 	at cardbus? dev ? function ?	# DECchip 21143

# MII/PHY support
brgphy*	at mii? phy ?			# Broadcom BCM5400-family PHYs
exphy*	at mii? phy ?			# 3Com internal PHYs
icsphy*	at mii? phy ?			# Integrated Circuit Systems ICS189x
igphy*	at mii? phy ?			# Intel IGP01E1000
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
qsphy*	at mii? phy ?			# Quality Semiconductor QS6612 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

# USB Controller and Devices

# PCI USB controllers
ehci*	at pci?	dev ? function ?	# Enhanced Host Controller
uhci*	at pci?				# Universal Host Controller (Intel)
ohci*	at pci?				# Open Host Controller

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

# USB Hubs
uhub*	at usb?
uhub*	at uhub? port ? configuration ? interface ?

# USB HID device
uhidev*	at uhub? port ? configuration ? interface ?

# USB Mice
#ums*	at uhidev? reportid ?
#wsmouse*	at ums?

# USB Keyboards
ukbd*	at uhidev? reportid ?
wskbd*	at ukbd? console ?

# USB Generic HID devices
uhid*	at uhidev? reportid ?

# USB Printer
#ulpt*	at uhub? port ? configuration ? interface ?

# USB Mass Storage
umass*	at uhub? port ? configuration ? interface ?

# USB Ethernet adapters
aue* 	at uhub? port ?		# ADMtek AN986 Pegasus based adapters
cue* 	at uhub? port ?		# CATC USB-EL1201A based adapters
kue* 	at uhub? port ?		# Kawasaki LSI KL5KUSB101B based adapters
uax*	at uhub? port ?		# ASIX AX88172 based adapters
url*	at uhub? port ?		# Realtek RTL8150L based adapters

# USB Generic driver
ugen*	at uhub? port ? configuration ? interface ?

# Pull in optional local configuration
include	"arch/i386/conf/GENERIC.local"

# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device	ccd		4	# concatenated/striped disk devices
#pseudo-device	raid		4	# RAIDframe disk driver
pseudo-device	md		1	# memory disk device (ramdisk)
#pseudo-device	vnd		4	# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter	8	# Berkeley packet filter
#pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	ppp		2	# Point-to-Point Protocol
pseudo-device	sl		2	# Serial Line IP
#pseudo-device	strip		2	# Starmode Radio IP (Metricom)
#pseudo-device	tun		2	# network tunneling over tty
#pseudo-device	gre		2	# generic L3 over IP tunnel

# miscellaneous pseudo-devices
pseudo-device	pty		2	# pseudo-terminals (Sysinst needs two)
#pseudo-device	tb		1	# tablet line discipline
#pseudo-device	sequencer	1	# MIDI sequencer
# rnd works; RND_COM does not on port i386 yet.
pseudo-device	rnd			# /dev/random and in-kernel generator
#options 	RND_COM			# use "com" randomness as well (BROKEN)

# a pseudo device needed for Coda	# also needs CODA (above)
#pseudo-device	vcoda		4	# coda minicache <-> venus comm.

# wscons pseudo-devices
pseudo-device	wsmux			# mouse & keyboard multiplexor
#pseudo-device	wsfont

