FreeBSD on an NEC Versa 5080X

Notes:

Suspend-to-disk should work on this model. You'll need to make a s2d partition using the DOS utilities available from NEC's support site for this machine (or probably any utility capable of making a s2d partition).

Sound works via the sbc device - it's an ISA ESS 18xx chip that (nearly) perfectly emulates a sound blaster. Again, it's ISA, so turn off PNP in BIOS and hard-code the location (as in my kernel config below). The pcm device needs no 'at' options because it's found on the 'sbc'.

Kernel config


machine		i386
cpu		I586_CPU
ident		NEC5080
maxusers	0

#makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols

options		INCLUDE_CONFIG_FILE
options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	NFS			#Network Filesystem
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=15000	#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options		ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev

# To make an SMP kernel, the next two are needed
#options 	SMP			# Symmetric MultiProcessor Kernel
#options 	APIC_IO			# Symmetric (APIC) I/O

# We have a 586, so we need to tell FreeBSD that we don't have the bug
options		NO_F00F_HACK

options		USER_LDT

device		isa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0
device		fd1	at fdc0 drive 1

# ATA and ATAPI devices
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives

# I actually have one of these - the LS120 drive available for
# this machine's media bay
device		atapifd			# ATAPI floppy drives

options 	ATA_STATIC_ID		#Static device numbering

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
#device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100


device		pcm
#device          pcm0 at isa? irq 5 drq 1 flags 0x0
device		sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x3

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
device		apm0    at nexus? flags 0x02

# PCCARD (PCMCIA) support
device		card
device		pcic0	at isa? irq 0 port 0x3e0 iomem 0xd0000
device		pcic1	at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3

# Parallel port
device		ppc0	at isa? irq 7
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
device		plip		# TCP/IP over parallel
device		ppi		# Parallel port interface device
#device		vpo		# Requires scbus and da


# PCI Ethernet NICs.
device		de		# DEC/Intel DC21x4x (``Tulip'')
device		vx		# 3Com 3c590, 3c595 (``Vortex'')

# Since we don't have cardbus support, all PCMCIA NICs will be ISA-attached

# ISA Ethernet NICs.
# 'device ed' requires 'device miibus'
device		ed0	at isa? port 0x280 irq 10 iomem 0xd8000
device		ep
device		fe0	at isa? port 0x300
# Xircom Ethernet
device		xe
# PRISM I IEEE 802.11b wireless NIC.
device		awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device		wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device		an

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	sl	1	# Kernel SLIP
pseudo-device	ppp	1	# Kernel PPP
pseudo-device	pty		# Pseudo-ttys (telnet etc)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
device		ugen		# Generic
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse
device		uscanner	# Scanners

# USB com devices
device		ucom
device		uplcom		# Prolific Tech. PL-2303 (AKA Cables-to-Go)
device		uvscom

XFree86 4

I find that moused has a difficult time with emulating 3 buttons and it's better to use direct /dev/psm0 access if you need emulate3.
Also, I don't like the Windows keboard layout, so I put <CTRL> in the right place. :)

Section "ServerLayout"
	Identifier     "XFree86 Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
	FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
	Load  "dbe"
	Load  "dri"
	Load  "extmod"
	Load  "glx"
	Load  "pex5"
	Load  "record"
	Load  "xie"
	Load  "xtrap"
	Load  "speedo"
	Load  "type1"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
	Option	    "XkbRules" "xfree86"
	Option	    "XkbModel" "pc101"
	Option	    "XkbLayout" "us"
	Option	    "XkbOptions" "ctrl:nocaps"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "PS/2"
	Option	    "Device" "/dev/psm0"
	Option	    "Emulate3Buttons"
	Option	    "Emulate3Timeout" "50"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
	HorizSync    31.5 - 48.5
	VertRefresh  50.0 - 70.0
EndSection

Section "Device"
        #Option     "ShadowFB"
        #Option     "VGAClocks"
	Identifier  "Card0"
	Driver      "neomagic"
	VendorName  "Neomagic"
	BoardName   "NM2160"
	BusID       "PCI:0:2:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	DefaultDepth     16
	SubSection "Display"
		Depth     16
		Modes    "1024x768"
	EndSubSection
EndSection