#
#       $NetBSD: MILAN.in,v 1.30 2022/08/15 04:40:20 tsutsui Exp $
#
# Milan
#
# This configuration file is for a generic Milan
#

#include "GENERIC.in"

#
# For the moment, the MILAN will be the only one to use wscons, so define
# the wscons options here too for the moment.
# 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
# XXX:  Since the Milan VGA works in monochrome for the moment, _only_
#       use black and white here!
options         WS_KERNEL_FG=WSCOL_WHITE
options         WS_KERNEL_BG=WSCOL_BLACK

# compatibility to other console drivers
options         WSDISPLAY_COMPAT_USL    # wsconscfg VT handling
#options        WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes

# 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
# modify the screen type of the console; defaults to "80x25"
#options        VGA_CONSOLE_SCREENTYPE="\"80x25\""
# use explicit WSDISPLAY_FONTENC_IBM font that MI vga(4) assumes
options         FONT_VT220L8x16

#
# The following sections describe various hardware options.
#

isab0           at mainbus0                     # ISA-bus
isa0            at isab0
pcib0           at mainbus0                     # PCI-bus
pci0            at pcib0
nvr0            at mainbus0                     # nvram driver
ser0            at mainbus0
fdcisa0         at isa? port 0x3f0 irq 6 drq 2  # standard PC floppy contr.
fdisa0          at fdcisa0 drive 0

#
# Ok, the stuff below requires some explanation...
# Initially, when Atari started with IDE on the Falcon, they decided to
# swap the bytelanes on the IDE controller. So all data on the disk was
# byteswapped and all CDROM drivers had to byteswap the data to make
# this nice idea work... To remain compatible with the 'current' drivers,
# this scheme was adopted by the Hades hardware (hence wdc_mb.c). On the Milan
# however, the change was reverted. But... now the hardware is connected to
# a little endian (ISA) bus, in PIO mode this is essentially the same as
# swapping the bytelanes. The fun starts when you use the PCIIDE DMA mode
# provided by the PCI_ISA bridge on the Milan. CDROM's are OK, but the data
# on the disk is swapped :-( Now luckily, both the Milan and HDDRIVER
# developers have thought up a solution, you can make a byteswapped disk
# during the partitioning with HDDRIVER and TOS supports booting from it!
# Ok, now you have to choose:
#   - If _none_ of your disks are marked byteswapped by HDDRIVER, choose
#     the MILAN-ISAIDE version.
#   - If _all_ of your disks are byteswapped, use the  MILAN-PCIIDE version
# The is no way to mix things!
#

#if defined(MILAN_ISAIDE)
# wdc on ISA with flags = WDC_OPTIONS_ATA_NOSTREAM!
wdc0            at isa? port 0x1f0 irq 14 flags 0x04    # 1st IDE controller
wdc1            at isa? port 0x170 irq 15 flags 0x04    # 2nd IDE controller
#endif /* MILAN_ISAIDE */

#if defined(MILAN_PCIIDE)
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
#hptide*        at pci? dev ? function ?        # Triones/HighPoint IDE controllers
#optiide*       at pci? dev ? function ?        # Opti IDE controllers
#pdcide*        at pci? dev ? function ?        # Promise IDE controllers
#pdcsata*       at pci? dev ? function ?        # Promise SATA150 controllers
piixide*        at pci? dev ? function ?        # Intel 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
#endif /* MILAN_PCIIDE */

atabus*         at ata? channel ?

#
# The Milan uses wscons
#
vga0            at pci? dev ? function ?        # a PCI VGA card
wsdisplay*      at vga? console ?               # as a wscons console
pckbc0          at isa?                         # PC keyboard controller
pckbd*          at pckbc?                       # PC keyboard
pms*            at pckbc?                       # PS/2 mouse
wskbd*          at pckbd? console ?             # wscons keyboard
wsmouse*        at pms?                         # wscons mouse
pseudo-device   wsmux                           # mouse & keyboard multiplexor

# ATA devices
wd*             at atabus? drive ?
atapibus*       at atabus?                              # ATAPI bus support
# ATAPI devices
cd*             at atapibus? drive ?            # ATAPI CD-ROM drives