#       $NetBSD: INSTALL,v 1.68 2024/09/03 19:51:02 andvar Exp $
#
#       INSTALL -- Installation kernel
#

include "arch/prep/conf/std.prep"

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

makeoptions     COPTS="-Os" # Reduce size.

# Enable the hooks used for initializing the ram-disk.
options         MEMORY_DISK_HOOKS
options         MEMORY_DISK_IS_ROOT     # Force root on ram-disk
options         MEMORY_DISK_ROOT_SIZE=4608      # 2.25mb
options         MEMORY_DISK_SERVER=0    # don't need for install
options         MEMORY_DISK_RBFLAGS=RB_SINGLE   # boot in single-user mode

maxusers        8

# Platform support
options         PIC_OPENPIC     # OpenPIC support (7043-140)
options         PIC_PREPIVR
options         PIC_I8259

# Compatibility options
include         "conf/compat_netbsd20.config"

# File systems
file-system     FFS             # UFS
#file-system    EXT2FS          # second extended file system (linux)
file-system     MFS             # memory file system
file-system     NFS             # Network File System client
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     MSDOSFS         # MS-DOS file system
#file-system    PTYFS           # /dev/pts/N support

# File system options
#options        DISKLABEL_EI    # disklabel Endian Independent support
#options        FFS_EI          # FFS Endian Independent support
options         FFS_NO_SNAPSHOT # No FFS snapshot support
options         WAPBL           # File system journaling support

#options        USERCONF        # userconf(4) support
options         PIPE_SOCKETPAIR         # smaller, but slower pipe(2)
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel
options         NFS_V2_ONLY     # Exclude NFS3 code to save space

# Networking options
options         INET            # IP + ICMP + TCP + UDP
#options        NFS_BOOT_BOOTPARAM
#options        NFS_BOOT_DHCP

#
# wscons options
#
# builtin terminal emulations
options         WSEMUL_VT100            # VT100 / VT220 emulation
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
# different kernel output - see dev/wscons/wsdisplayvar.h
options         WS_KERNEL_FG=WSCOL_GREEN
#options        WS_KERNEL_BG=WSCOL_BLACK
# see dev/pckbport/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

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

#
# Device configuration
#

mainbus0 at root
cpu0    at mainbus0

# Basic Bus Support

# PCI bus support
pci0    at mainbus0 bus ?
pci*    at pchb? bus ?
pci*    at ppb? bus ?

# 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
pceb*   at pci? dev ? function ?        # PCI-EISA bridges

# EISA bus support
eisa*   at pceb?

# ISA bus support
isa*    at pcib?                        # ISA on PCI-ISA bridge
isa*    at pceb?

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

# ISA PCMCIA controllers
pcic0   at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000

#options        PCIC_ISA_INTR_ALLOC_MASK=0x4a00 # free irq 9,11,14
#options        PCIC_ISA_ALLOC_IOBASE=0x0400
#options        PCIC_ISA_ALLOC_IOSIZE=0x0100

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

# PNP bus device for attaching objects described in the residual
pnpbus0 at mainbus0

# Console Devices

# wscons
pckbc0          at isa?                 # pc keyboard controller
pckbd*          at pckbc?               # PC keyboard
#pms*           at pckbc?               # PS/2 mouse for wsmouse
vga*            at pci?
wsdisplay*      at vga? console ?
wskbd*          at pckbd? console ?
#wsmouse*       at pms? mux 0

mcclock* at pnpbus?                     # mc146818 and compatible
mkclock* at pnpbus?                     # mk48t18 and compatible
nvram* at pnpbus?

# Serial Devices

# ISA serial interfaces
com0    at isa? port 0x3f8 irq 4        # standard PC serial ports
com1    at isa? port 0x2f8 irq 3

# Parallel Printer Interfaces

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


# SCSI Controllers and Devices

# PCI SCSI controllers
#adw*   at pci? dev ? function ?        # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
#ahc*   at pci? dev ? function ?        # Adaptec [23]94x, aic78x0 SCSI
#esiop* at pci? dev ? function ?        # Symbios 53c825/875 and newer chips
#iha*   at pci? dev ? function ?        # Initio INIC-940/950 SCSI
#pcscp* at pci? dev ? function ?        # AMD 53c974 PCscsi-PCI SCSI
siop*   at pci? dev ? function ?        # Symbios 53c8xx SCSI

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

# SCSI bus support
#scsibus* at adw?
#scsibus* at ahc?
#scsibus* at aic?
#scsibus* at esiop?
#scsibus* at iha?
#scsibus* at pcscp?
scsibus* at siop?

# 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


# IDE and related devices

# IDE controller found on most Power Personal machines
wdc*    at pnpbus?

# PCI IDE controllers
pciide*         at pci? dev ? function ? flags 0x0000
hptide*         at pci? dev ? function ?
slide*          at pci? dev ? function ?

# PCMCIA IDE controllers
#wdc*   at pcmcia? function ?

# 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

# Miscellaneous mass storage devices

# ISA floppy
#fdc0   at isa? port 0x3f0 irq 6 drq 2  # standard PC floppy controllers
#fd*    at fdc? drive ?

# Network Interfaces

# PCI network interfaces
ep*     at pci? dev ? function ?        # 3Com 3c59x
ex*     at pci? dev ? function ?        # 3Com 3c90x[BC]
fxp*    at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
ne*     at pci? dev ? function ?        # NE2000-compatible Ethernet
pcn*    at pci? dev ? function ?        # AMD PCnet-PCI Ethernet
rtk*    at pci? dev ? function ?        # Realtek 8129/8139
sip*    at pci? dev ? function ?        # SiS 900/DP83815 Ethernet
tlp*    at pci? dev ? function ?        # DECchip 21x4x and clones
vr*     at pci? dev ? function ?        # VIA Rhine Fast Ethernet

# ISA network interfaces
#ep*    at isa? port ? irq ?            # 3Com 3c509 Ethernet
we1     at isa? port 0x300 iomem 0xe4000 irq 11 # WD/SMC Ethernet

# ISA Plug-and-Play network interfaces
#ep*    at isapnp?                      # 3Com 3c509 Ethernet
#ne*    at isapnp?                      # NE2000-compatible Ethernet

# PCMCIA network interfaces
ep*     at pcmcia? function ?           # 3Com 3c589 and 3c562 Ethernet
ne*     at pcmcia? function ?           # NE2000-compatible Ethernet

# MII/PHY support
dmphy*  at mii? phy ?                   # Davicom DM9101 PHYs
exphy*  at mii? phy ?                   # 3Com internal PHYs
icsphy* at mii? phy ?                   # Integrated Circuit Systems ICS189x
inphy*  at mii? phy ?                   # Intel 82555 PHYs
iophy*  at mii? phy ?                   # Intel 82553 PHYs
lxtphy* at mii? phy ?                   # Level One LXT-970 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
ukphy*  at mii? phy ?                   # generic unknown PHYs

# Pull in optional local configuration - always at end
include "arch/prep/conf/INSTALL.local"

# Pseudo-Devices

# disk/mass storage pseudo-devices
pseudo-device   md                      # memory disk device (ramdisk)
#pseudo-device  fss                     # file system snapshot device
pseudo-device   raid                    # RAIDframe disk driver
options         RAID_AUTOCONFIG         # auto-configuration of RAID components

# network pseudo-devices
pseudo-device   loop                    # network loopback

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
#options        RND_COM                 # use "com" randomness as well