# $NetBSD: GENERIC,v 1.118 2024/01/29 18:27:12 christos Exp $
#
# GENERIC machine description file
#
# This machine description file is used to generate the default NetBSD
# kernel.  The generic kernel does not include all options, subsystems
# and device drivers, but should be useful for most applications.
#
# The machine description file can be customised for your specific
# machine to reduce the kernel size and improve its performance.
#
# For further information on compiling NetBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

#
# This kernel supports...
#       HP Jornada 680/690
#       HP 620LX/660LX
#       HITACHI HPW50PA
#

include         "arch/hpcsh/conf/std.hpcsh"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

maxusers        32                      # estimated number of users

options         HZ=64                   # default clock rate

# System options specific to hpcsh

# CPU support.  At least one is REQUIRED.
options         SH3
#options        SH4

# Example of how to set gcc optimization options (XXX: not tested)
#makeoptions    COPTS="-Os"             # generic
#makeoptions    CPUFLAGS="-m3"          # CPU specific

#
# PCLOCK is estimated by kernel.
#                               PCLOCK          CPU CLOCK
#       HP Jornada 680/690      22.22MHz        133MHz
#       HP 620LX                18.75MHz         75MHz
#       HITACHI HPW50PA         25MHz           100MHz
#
#options        PCLOCK=...

# in-kernel bootloader, see kloader(4)
options         KLOADER
#options        KLOADER_KERNEL_PATH="\"/netbsd\""
#options        KLOADER_DEBUG

#options        HPC_DEBUG_INTERRUPT_MONITOR
#options        KSTACK_DEBUG


# Standard system options

#options        RTC_OFFSET=-540 # hardware clock is this many mins. west of GMT
                               # (overrides tz info that hpcboot.exe passes)

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        MODULAR         # new style module(7) framework
#options        MODULAR_DEFAULT_AUTOLOAD

options         USERCONF                # userconf(4) support
options         PIPE_SOCKETPAIR         # smaller, but slower pipe(2)
options         SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options        BUFQ_READPRIO
#options        BUFQ_PRIOCSCAN

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options        BUFQ_READPRIO
options         BUFQ_PRIOCSCAN

# Diagnostic/debugging support options
#options        DIAGNOSTIC      # expensive kernel consistency checks
#options        DEBUG           # expensive debugging checks/support
#options        DDB             # in-kernel debugger
#options        DDB_ONPANIC=1   # see also sysctl(7): `ddb.onpanic'
#options        DDB_HISTORY_SIZE=512    # enable history editing in DDB
#options        KGDB            # remote debugger
#options        KGDB_DEVRATE=19200
#options        KGDB_DEVNAME="\"scif\""         # HP Jornada
#options        KGDB_DEVNAME="\"hd64461uart\""  # HITACHI PERSONA (SH3)
#options        KGDB_DEVNAME="\"hd64465uart\""  # HITACHI PERSONA (SH4)
#makeoptions    DEBUG="-g"      # compile full symbol table

# Compatibility options
include         "conf/compat_netbsd15.config"
#options        BSDDISKLABEL_EI # endian independent disklabel support

# Executable format options
options         EXEC_COFF       # 32-bit COFF executables

# File systems
file-system     FFS             # UFS
file-system     MFS             # memory file system (requires FFS)
#file-system    EXT2FS          # second extended file system (linux)
file-system     MSDOSFS         # MS-DOS file system
file-system     NFS             # Sun NFS-compatible filesystem client
#file-system    NULLFS          # loopback file system
#file-system    UMAPFS          # NULLFS + uid and gid remapping
#file-system    UNION           # union file system
#file-system    OVERLAY         # overlay file system
#file-system    FDESC           # /dev/fd
file-system     KERNFS          # /kern
file-system     PROCFS          # /proc
#file-system    CODA            # Coda File System; also needs vcoda (below)
file-system     PTYFS           # /dev/pts/N support
#file-system    TMPFS           # Efficient memory file-system
#file-system    UDF             # experimental - OSTA UDF CD/DVD file-system

# File system options
#options        FFS_EI          # FFS Endian Independent support
options         FFS_NO_SNAPSHOT # No FFS snapshot support
#options        UFS_DIRHASH     # UFS Large Directory Hashing
#options        UFS_EXTATTR     # Extended attribute support for UFS1
options         WAPBL           # File system journaling support

# Networking options
options         INET            # IP + ICMP + TCP + UDP
options         INET6           # IPV6

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        ALTQ            # Manipulate network interfaces' output queues
#options        ALTQ_BLUE       # Stochastic Fair Blue
#options        ALTQ_CBQ        # Class-Based Queueing
#options        ALTQ_CDNR       # Diffserv Traffic Conditioner
#options        ALTQ_FIFOQ      # First-In First-Out Queue
#options        ALTQ_FLOWVALVE  # RED/flow-valve (red-penalty-box)
#options        ALTQ_HFSC       # Hierarchical Fair Service Curve
#options        ALTQ_LOCALQ     # Local queueing discipline
#options        ALTQ_PRIQ       # Priority Queueing
#options        ALTQ_RED        # Random Early Detection
#options        ALTQ_RIO        # RED with IN/OUT
#options        ALTQ_WFQ        # Weighted Fair Queueing

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
options         MIIVERBOSE      # verbose PHY autoconfig messages
#options        PCMCIAVERBOSE   # verbose PCMCIA configuration messages

options         NFS_BOOT_DHCP

#
# wscons options
#
# builtin terminal emulations
options         WSEMUL_VT100
# allocate a number of virtual screens at autoconfiguration time
options         WSDISPLAY_DEFAULTSCREENS=4

# customization of console and kernel output - see dev/wscons/wsdisplayvar.h
options         WSDISPLAY_CUSTOM_OUTPUT # color customization from wsconsctl(8)
#options        WS_DEFAULT_FG=WSCOL_WHITE
#options        WS_DEFAULT_BG=WSCOL_BLACK
#options        WS_DEFAULT_COLATTR="(0)"
#options        WS_DEFAULT_MONOATTR="(0)"
options         WS_KERNEL_FG=WSCOL_BROWN
options         WS_KERNEL_BG=WSCOL_BLUE
#options        WS_KERNEL_COLATTR=""
#options        WS_KERNEL_MONOATTR=""

# compatibility to other console drivers
options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes

options         FONT_VT220L8x10                 # the console font


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

#
# Device configuration
#
mainbus0 at root

# temporally power management
hpcapm0         at mainbus0                     # power management
apmdev0         at hpcapm0                      # APM
btnmgr0         at mainbus0
wskbd*          at btnmgr0 mux 1

cpu*            at mainbus?
shb*            at mainbus?
rtc*            at shb?
adc*            at shb?                 # analog->digital converter
pfckbd*         at mainbus?

#
# Workstation Console attachments
#
hpcfb*          at hd64461video?
wsdisplay*      at hpcfb?

hpckbd*         at pfckbd?
wskbd0          at hpckbd? mux 1

#
# HP Jornada (620LX/660LX, 680/690)
#
scif0           at shb?                 # serial port/console
options         SCIFCN_SPEED=19200
# don't need to define SCIFCONSOLE, you can select from the bootloader.

j6x0pwr*        at adc?                 # battery, on/off, etc

j6x0lcd*        at shb?                 # LCD power, brightness, contrast

j6x0tp*         at adc?                 # touch panel
wsmouse*        at j6x0tp? mux 0        # - as a pointing device
wskbd1          at j6x0tp? mux 1        # - "hard icons" as keys
# Do not convert hard icons to key presses while serving mouse input.
options         J6X0TP_WSMOUSE_EXCLUSIVE
# Customization for the mini-keymap of hard icons.
#options        J6X0TP_SETTINGS_ICON_KEYSYM="KS_Home"
#options        J6X0TP_PGUP_ICON_KEYSYM="KS_Prior"
#options        J6X0TP_PGDN_ICON_KEYSYM="KS_Next"
#options        J6X0TP_SWITCH_ICON_KEYSYM="KS_End"

#
# HITACHI PERSONA (HPW-50PAD, HPQ-650PA)
#
com0            at hd64461if?

psh3pwr*        at adc?                 # PERSONA SH3 battery, on/off, etc

psh3lcd*        at shb?                 # LCD power, brightness, contrast

psh3tp*         at adc?                 # PERSONA SH3 touch panel
wsmouse*        at psh3tp? mux 0

#
# Common HD64461 devices
#
hd64461if* at shb?

hd64461pcmcia*  at hd64461if?
#options        HD64461PCMCIA_DEBUG
#options        HD64461PCMCIA_REORDER_ATTACH    # attach channel 1 (CF) first

hd64461video*   at hd64461if?
#options        HD64461VIDEO_DEBUG
#options        HD64461VIDEO_HWACCEL            # XXX: too slow to bother


#
# machine independent part
#

# PCMCIA bus support
#pcmcia* at hd64461pcmcia? controller ? socket ?
pcmcia0 at hd64461pcmcia? controller 0 socket ? # I/O card, memory card
pcmcia1 at hd64461pcmcia? controller 1 socket ? # memory card only

# PCMCIA IDE controllers
#wdc*   at pcmcia? function ?
wdc0    at pcmcia1 function ?           # CF slot
wdc1    at pcmcia0 function ?           # PC Card slot

# ATA (IDE) bus support
#atabus* at ata?
atabus0 at wdc0 channel ?               # CF slot
atabus1 at wdc1 channel ?               # PC Card slot

# IDE drives
wd*     at atabus? drive ? flags 0x0000

# PCMCIA network interfaces
#ep*    at pcmcia0 function ?           # 3Com EtherLink III Ethernet
mbe*    at pcmcia0 function ?           # MB8696x based Ethernet
ne*     at pcmcia0 function ?           # NE2000-compatible Ethernet
wi*     at pcmcia0 function ?           # Lucent/Intersil WaveLan IEEE (802.11)

# MII/PHY support
lxtphy* at mii? phy ?                   # Level One LXT-970 PHYs
nsphyter* at mii? phy ?                 # NS83843 PHYs
#tqphy* at mii? phy?                    # TDK Semiconductor PHYs
ukphy*  at mii? phy ?                   # generic unknown PHYs

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

# Bluetooth Controller and Device support

# Bluetooth PCMCIA Controllers
bt3c*   at pcmcia? function ?           # 3Com 3CRWB6096-A
btbc*   at pcmcia? function ?           # AnyCom BlueCard LSE041/039/139

# Bluetooth Device Hub
bthub*  at bcsp?
bthub*  at bt3c?
bthub*  at btbc?
bthub*  at btuart?

# Bluetooth HID support
#bthidev* at bthub?

# Bluetooth Mouse
#btms*  at bthidev? reportid ?
#wsmouse* at btms? mux 0

# Bluetooth Keyboard
#btkbd* at bthidev? reportid ?
#wskbd* at btkbd? console ? mux 1

# Bluetooth Apple Magic Mouse
#btmagic* at bthub?
#wsmouse* at btmagic? mux 0

# Bluetooth Audio support
#btsco* at bthub?


# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device  vnd                     # disk-like interface to files
#options        VND_COMPRESSION         # compressed vnd(4)
pseudo-device   fss                     # file system snapshot device

# network pseudo-devices
pseudo-device   loop                    # network loopback
pseudo-device   ppp                     # serial-line IP ports
pseudo-device   bpfilter                # Berkeley packet filter
pseudo-device   carp                    # Common Address Redundancy Protocol
#pseudo-device  npf                     # NPF packet filter

#
# accept filters
pseudo-device   accf_data               # "dataready" accept filter
pseudo-device   accf_http               # "httpready" accept filter

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
pseudo-device   clockctl                # user control of clock subsystem
#pseudo-device  irframetty              # IrDA frame line discipline
pseudo-device   ksyms                   # kernel symbol table interface
pseudo-device   bcsp                    # BlueCore Serial Protocol
pseudo-device   btuart                  # Bluetooth HCI UART (H4)
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

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

# wscons pseudo-devices
pseudo-device   wsmux                   # mouse & keyboard multiplexor
#pseudo-device  wsfont                  # dynamic font loading support
#pseudo-device  hpf1275a                # HP F1275A external keyboard
#wskbd* at hpf1275a? mux 1

include "dev/veriexec.config"

# Pull in optional local configuration - always at end
cinclude        "arch/hpcsh/conf/GENERIC.local"