summaryrefslogtreecommitdiff
path: root/sys/arch/sgi/conf
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2012-03-28 20:44:24 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2012-03-28 20:44:24 +0000
commit6ea0ed8392999d052b79785548a577d7e55b7184 (patch)
treeb4c5fb05563150bb09cc3d203971a18a2b5277bc /sys/arch/sgi/conf
parentb71835f84a40d614f56816274c2400a719e82600 (diff)
Work in progress support for the SGI Indigo, Indigo 2 and Indy systems
(IP20, IP22, IP24) in 64-bit mode, adapated from NetBSD. Currently limited to headless operation, input and video drivers will get ported soon. Should work on all R4000, R4440 and R5000 based systems. L2 cache on R5000SC Indy not supported yet (coming soon), R4600 not supported yet either (coming soon as well). Tested to boot multiuser on: Indigo2 R4000SC, Indy R4000PC, Indy R4000SC, Indy R5000SC, Indigo2 R4400SC. There are still glitches in the Ethernet driver which are being looked at. Expansion support is limited to the GIO E++ board; GIO boards with PCI-GIO bridges not ported yet due to the lack of hardware, and this kind of driver does not port blindly. Most of this work comes from NetBSD, polishing and integration work, as well as putting as many ``R4x00 in 64-bit mode'' erratas as necessary, by yours truly. More work is coming, as well as trying to get some easy way to boot install kernels (as older PROM can only boot ECOFF binaries, which won't do for the kernel).
Diffstat (limited to 'sys/arch/sgi/conf')
-rw-r--r--sys/arch/sgi/conf/GENERIC-IP2285
-rw-r--r--sys/arch/sgi/conf/RAMDISK-IP2295
-rw-r--r--sys/arch/sgi/conf/files.sgi29
3 files changed, 206 insertions, 3 deletions
diff --git a/sys/arch/sgi/conf/GENERIC-IP22 b/sys/arch/sgi/conf/GENERIC-IP22
new file mode 100644
index 00000000000..c062b6c4cb4
--- /dev/null
+++ b/sys/arch/sgi/conf/GENERIC-IP22
@@ -0,0 +1,85 @@
+# $OpenBSD: GENERIC-IP22,v 1.1 2012/03/28 20:44:23 miod Exp $
+#
+# THIS KERNEL IS FOR INDIGO (IP20), INDY (IP22) AND INDIGO2 (IP24) SYSTEMS ONLY.
+#
+# For further information on compiling OpenBSD 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.
+
+machine sgi mips64
+include "../../../conf/GENERIC"
+maxusers 32 # Estimated number of users
+
+# Make options
+makeoption LINK_ADDRESS="0xffffffff88100000"
+# Force use of 16KB pages. The R5000 Indy, which has the infamous XKPHYS
+# coherency bug wrt ll/sc instructions, can not have more than 256MB of
+# physical memory, all of it fitting within CKSEG0.
+option PAGE_SHIFT="14"
+
+#option WSDISPLAY_COMPAT_RAWKBD # Provide raw scancodes; needed for X11
+
+# Define what targets to support
+option TGT_INDIGO # R4x00 Indigo (IP20)
+option TGT_INDIGO2 # Indigo2 (IP22/IP26/IP28)
+option TGT_INDY # Indy (IP24)
+option ARCBIOS # mandatory
+option CPU_R4000 # R4000/R4400 support (IP20/IP22/IP24)
+#option CPU_R4600 # R4600 support (IP22/IP24)
+option CPU_R5000 # R5000 support (IP24)
+
+config bsd swap generic
+
+#
+# Definition of system
+#
+mainbus0 at root
+cpu* at mainbus0
+clock0 at mainbus0
+
+int0 at mainbus0 # Interrupt Controller
+imc0 at mainbus0 # Memory Controller
+gio0 at imc0
+#eisa0 at imc0
+
+hpc0 at gio? addr 0x1fb80000
+hpc1 at gio? addr 0x1fb00000
+hpc2 at gio? addr 0x1f980000
+
+dpclock0 at hpc0 # IP20
+dsclock0 at hpc0 # IP22/24
+sq* at hpc? # On-board Ethernet or E++ adapter
+wdsc* at hpc? # On-board SCSI or GIO32 SCSI adapter
+#haltwo* at hpc? # Indy/Indigo2 Audio
+#panel* at hpc? # Indy front panel buttons
+#pckbc* at hpc? # Indy/Indigo2 keyboard and mouse
+
+zs* at hpc?
+zstty* at zs? # Serial ports
+
+#newport* at gio? # Indy Newport graphics
+#wsdisplay* at newport?
+
+#grtwo* at gio? # Express (GR2) graphics
+#wsdisplay* at grtwo?
+
+#light* at gio? # Light/Starter/Entry (LG1/LG2) graphics
+#wsdisplay* at light?
+
+scsibus* at scsi?
+sd* at scsibus?
+st* at scsibus?
+cd* at scsibus?
+ch* at scsibus?
+safte* at scsibus?
+ses* at scsibus?
+uk* at scsibus?
+
+pseudo-device crypto 1
+#pseudo-device hotplug 1 # devices hot plugging
+#pseudo-device wsmux 2 # Mouse and keyboard multiplexor
diff --git a/sys/arch/sgi/conf/RAMDISK-IP22 b/sys/arch/sgi/conf/RAMDISK-IP22
new file mode 100644
index 00000000000..91e2e00f390
--- /dev/null
+++ b/sys/arch/sgi/conf/RAMDISK-IP22
@@ -0,0 +1,95 @@
+# $OpenBSD: RAMDISK-IP22,v 1.1 2012/03/28 20:44:23 miod Exp $
+#
+# THIS KERNEL IS FOR INDIGO (IP20), INDY (IP22) AND INDIGO2 (IP24) SYSTEMS ONLY.
+
+machine sgi mips64
+
+maxusers 4
+option TIMEZONE=0 # minutes west of GMT (for)
+option DST=0 # use daylight savings rules
+
+# Make options
+makeoption LINK_ADDRESS="0xffffffff88100000"
+# Force use of 16KB pages. The R5000 Indy, which has the infamous XKPHYS
+# coherency bug wrt ll/sc instructions, can not have more than 256MB of
+# physical memory, all of it fitting within CKSEG0.
+option PAGE_SHIFT="14"
+
+option DDB
+
+# Filesystem options
+option CD9660 # ISO 9660 + Rock Ridge file system
+option FIFO # POSIX fifo support (in all filesystems)
+option FFS # fast filesystem
+#option MSDOSFS # Ability to read write MS-Dos filesystem
+option NFSCLIENT # Sun NFS-compatible filesystem (client)
+
+# Networking options
+option INET # IP + ICMP + TCP + UDP
+option INET6 # IPv6 (needs INET)
+
+# RAMDISK stuff
+option MINIROOTSIZE=10240
+option RAMDISK_HOOKS
+
+# Define what targets to support
+option TGT_INDIGO # R4x00 Indigo (IP20)
+option TGT_INDIGO2 # Indigo2 (IP22/IP26/IP28)
+option TGT_INDY # Indy (IP24)
+option ARCBIOS # mandatory
+option CPU_R4000 # R4000/R4400 support (IP20/IP22/IP24)
+#option CPU_R4600 # R4600 support (IP22/IP24)
+option CPU_R5000 # R5000 support (IP24)
+
+# Specify storage configuration using ramdisk
+config bsd root on rd0a swap on rd0b
+
+#
+# Definition of system
+#
+mainbus0 at root
+cpu* at mainbus0
+clock0 at mainbus0
+
+int0 at mainbus0 # Interrupt Controller
+imc0 at mainbus0 # Memory Controller
+gio0 at imc0
+#eisa0 at imc0
+
+hpc0 at gio? addr 0x1fb80000
+hpc1 at gio? addr 0x1fb00000
+hpc2 at gio? addr 0x1f980000
+
+dpclock0 at hpc0 # IP20
+dsclock0 at hpc0 # IP22/24
+sq* at hpc? # On-board Ethernet or E++ adapter
+wdsc* at hpc? # On-board SCSI or GIO32 SCSI adapter
+#pckbc* at hpc? # Indy/Indigo2 keyboard and mouse
+
+zs* at hpc?
+zstty* at zs? # Serial ports
+
+#newport* at gio? # Indy Newport graphics
+#wsdisplay* at newport?
+
+#grtwo* at gio? # Express (GR2) graphics
+#wsdisplay* at grtwo?
+
+#light* at gio? # Light/Starter/Entry (LG1/LG2) graphics
+#wsdisplay* at light?
+
+scsibus* at scsi?
+sd* at scsibus?
+st* at scsibus?
+cd* at scsibus?
+#ch* at scsibus?
+#uk* at scsibus?
+
+#### PSEUDO Devices
+pseudo-device loop 1 # network loopback
+pseudo-device bpfilter 1 # packet filter ports
+
+pseudo-device rd 1 # Ram disk.
+pseudo-device bio 1 # ioctl multiplexing device
+
+option BOOT_CONFIG # add support for boot -c
diff --git a/sys/arch/sgi/conf/files.sgi b/sys/arch/sgi/conf/files.sgi
index 83953010ed9..a13ff36f3c7 100644
--- a/sys/arch/sgi/conf/files.sgi
+++ b/sys/arch/sgi/conf/files.sgi
@@ -1,4 +1,4 @@
-# $OpenBSD: files.sgi,v 1.46 2011/11/15 22:27:53 deraadt Exp $
+# $OpenBSD: files.sgi,v 1.47 2012/03/28 20:44:23 miod Exp $
#
# maxpartitions must be first item in files.${ARCH}
#
@@ -14,6 +14,8 @@ file arch/sgi/sgi/bus_dma.c
file arch/sgi/sgi/conf.c
file arch/sgi/sgi/disksubr.c disk
file arch/sgi/sgi/lock_machdep.c multiprocessor
+file arch/sgi/sgi/ip22_machdep.c tgt_indigo | tgt_indigo2 |
+ tgt_indy
file arch/sgi/sgi/ip27_machdep.c tgt_origin
file arch/sgi/sgi/ip30_machdep.c tgt_octane
file arch/sgi/sgi/ip30_nmi.S tgt_octane & ddb
@@ -56,6 +58,21 @@ device clock
attach clock at mainbus
#
+# IP20/22/24 specific devices
+#
+define giobus {}
+device imc: giobus, eisabus
+attach imc at mainbus
+file arch/sgi/localbus/imc.c imc
+
+device int
+attach int at mainbus
+file arch/sgi/localbus/int.c int
+
+include "arch/sgi/gio/files.gio"
+include "arch/sgi/hpc/files.hpc"
+
+#
# O2 MACE localbus autoconfiguration devices
#
define macebus {[base = -1]}
@@ -87,6 +104,13 @@ major {cd = 3}
include "dev/i2o/files.i2o"
#
+# EISA Bus support
+#
+
+include "dev/eisa/files.eisa"
+file arch/sgi/sgi/eisa_machdep.c eisa
+
+#
# PCI Bus support
#
@@ -132,9 +156,9 @@ file arch/sgi/dev/iockbc.c iockbc |
# DS1687 Time-Of-Day calendar device
device dsrtc
-attach dsrtc at macebus with dsrtc_macebus
attach dsrtc at ioc with dsrtc_ioc
attach dsrtc at iof with dsrtc_iof
+attach dsrtc at macebus with dsrtc_macebus
file arch/sgi/dev/dsrtc.c dsrtc
# GBE framebuffer
@@ -207,4 +231,3 @@ file arch/sgi/dev/owmem_subr.c owmac | owserial
# IP35 SPD memory information
attach spdmem at mainbus with spdmem_mainbus
file arch/sgi/dev/spdmem_mainbus.c spdmem_mainbus
-