summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorwnelson <none@none>2005-10-13 07:41:36 -0700
committerwnelson <none@none>2005-10-13 07:41:36 -0700
commit1cb6af97c6f66f456d4f726ef056e1ebc0f73305 (patch)
tree82fc37ca4be18449a185848f4d6f94345bbc989a /usr/src
parentfd3af1c7b4cc69da990babda7f07c7c5bf1e1597 (diff)
downloadillumos-gate-1cb6af97c6f66f456d4f726ef056e1ebc0f73305.tar.gz
PSARC 2005/103 Schumacher
6237913 Need Schumacher support in ON
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/fm/topo/files/sparc/Makefile2
-rw-r--r--usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/Makefile30
-rw-r--r--usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/platform.topo42
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/Makefile4
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/schumacher/Makefile51
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/Makefile75
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/libpiclfrudata.conf46
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/Makefile75
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/piclfrutree.info74
-rw-r--r--usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/system-board.info134
-rw-r--r--usr/src/lib/cfgadm_plugins/Makefile.com1
-rw-r--r--usr/src/lib/libc_psr/spec/sun4u-us3/Makefile.links1
-rw-r--r--usr/src/lib/libc_psr/sun4u-us3/Makefile.com1
-rw-r--r--usr/src/lib/libmd5_psr/Makefile.com1
-rw-r--r--usr/src/lib/libmd5_psr/spec/Makefile.com1
-rw-r--r--usr/src/pkgdefs/SUNWcakr.u/prototype_com8
-rw-r--r--usr/src/pkgdefs/SUNWcar.u/prototype_com7
-rw-r--r--usr/src/pkgdefs/SUNWcryr/prototype_sparc5
-rw-r--r--usr/src/pkgdefs/SUNWfmd/prototype_sparc2
-rw-r--r--usr/src/pkgdefs/SUNWfruip.u/prototype_sparc8
-rw-r--r--usr/src/pkgdefs/SUNWhea/prototype_sparc2
-rw-r--r--usr/src/pkgdefs/SUNWkvm.u/prototype_com9
-rw-r--r--usr/src/pkgdefs/SUNWpiclu/prototype_sparc5
-rw-r--r--usr/src/pkgdefs/SUNWpstl.u/prototype_sparc2
-rw-r--r--usr/src/psm/stand/boot/sparcv9/sun4u/Makefile1
-rw-r--r--usr/src/uts/sun4u/Makefile.sun4u1
-rw-r--r--usr/src/uts/sun4u/schumacher/Makefile123
-rw-r--r--usr/src/uts/sun4u/schumacher/Makefile.files42
-rw-r--r--usr/src/uts/sun4u/schumacher/Makefile.rules52
-rw-r--r--usr/src/uts/sun4u/schumacher/Makefile.schumacher83
-rw-r--r--usr/src/uts/sun4u/schumacher/Makefile.targ101
-rw-r--r--usr/src/uts/sun4u/schumacher/os/schumacher.c370
-rw-r--r--usr/src/uts/sun4u/schumacher/platmod/Makefile108
33 files changed, 1463 insertions, 4 deletions
diff --git a/usr/src/cmd/fm/topo/files/sparc/Makefile b/usr/src/cmd/fm/topo/files/sparc/Makefile
index 880c1150f7..884049ec8b 100644
--- a/usr/src/cmd/fm/topo/files/sparc/Makefile
+++ b/usr/src/cmd/fm/topo/files/sparc/Makefile
@@ -37,7 +37,7 @@ SUBDIRS= \
SUNW,Netra-T4 SUNW,Sun-Blade-2000 SUNW,Sun-Fire-280R \
SUNW,Sun-Fire-V890 SUNW,Sun-Fire-V490 SUNW,Sun-Fire-V250 \
SUNW,Sun-Fire-V210 SUNW,Netra-240 SUNW,Netra-440 \
- SUNW,Sun-Fire-T200
+ SUNW,Sun-Fire-T200 SUNW,Netra-CP3010
include ../../../Makefile.subdirs
diff --git a/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/Makefile b/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/Makefile
new file mode 100644
index 0000000000..8609abc0a4
--- /dev/null
+++ b/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/Makefile
@@ -0,0 +1,30 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+TOPOSUBDIR = SUNW,Netra-CP3010
+TOPOFILES = platform.topo
+
+include ../../Makefile.com
diff --git a/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/platform.topo b/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/platform.topo
new file mode 100644
index 0000000000..33ccefd72b
--- /dev/null
+++ b/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/platform.topo
@@ -0,0 +1,42 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "%Z%%M% %I% %E% SMI"
+
+/motherboard0/cpumodule0/cpu[0]
+ PLAT-FRU=hc:///component=CPU0
+/motherboard0/cpu[1]
+ PLAT-FRU=hc:///component=CPU1
+/motherboard0/hostbridge0
+ DEV=/pci@1c
+/motherboard0/hostbridge0/pcibus[0]
+ DEV=/pci@1c,600000
+/motherboard0/hostbridge0/pcibus[1]
+ DEV=/pci@1d,700000
+/motherboard0/hostbridge1
+ DEV=/pci@1e
+/motherboard0/hostbridge1/pcibus[0]
+ DEV=/pci@1e,600000
+/motherboard0/hostbridge1/pcibus[1]
+ DEV=/pci@1f,700000
diff --git a/usr/src/cmd/picl/plugins/sun4u/Makefile b/usr/src/cmd/picl/plugins/sun4u/Makefile
index 86ece35885..f2c6f34bf7 100644
--- a/usr/src/cmd/picl/plugins/sun4u/Makefile
+++ b/usr/src/cmd/picl/plugins/sun4u/Makefile
@@ -31,11 +31,11 @@
SUBDIRS= lib .WAIT envmon .WAIT \
frudata grover excalibur psvc littleneck daktari \
cherrystone lw8 lw2plus taco enchilada chicago blade mpxu ents \
- chalupa silverstone sebring snowbird .WAIT
+ chalupa silverstone sebring snowbird schumacher .WAIT
MSGSUBDIRS= lib frudata grover excalibur psvc littleneck daktari \
cherrystone lw8 lw2plus taco enchilada chicago blade envmon mpxu ents \
- silverstone sebring snowbird
+ silverstone sebring snowbird schumacher
all := TARGET= all
install := TARGET= install
diff --git a/usr/src/cmd/picl/plugins/sun4u/schumacher/Makefile b/usr/src/cmd/picl/plugins/sun4u/schumacher/Makefile
new file mode 100644
index 0000000000..02a6c7e1e3
--- /dev/null
+++ b/usr/src/cmd/picl/plugins/sun4u/schumacher/Makefile
@@ -0,0 +1,51 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+# cmd/picl/plugins/sun4u/schumacher/Makefile
+#
+
+SUBDIRS= frudata frutree
+
+MSGSUBDIRS=
+
+all := TARGET= all
+install := TARGET= install
+clean := TARGET= clean
+clobber := TARGET= clobber
+lint := TARGET= lint
+_msg := TARGET= _msg
+
+.KEEP_STATE:
+
+all install clean clobber lint : $(SUBDIRS)
+
+_msg: $(MSGSUBDIRS)
+
+$(SUBDIRS): FRC
+ @cd $@; pwd; $(MAKE) $(TARGET)
+
+FRC:
diff --git a/usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/Makefile b/usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/Makefile
new file mode 100644
index 0000000000..94c099ae34
--- /dev/null
+++ b/usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/Makefile
@@ -0,0 +1,75 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+# lib/picl/plugins/sun4u/schumacher/frudata/Makefile
+#
+include $(SRC)/Makefile.psm
+
+# include library definitions
+include $(SRC)/lib/Makefile.lib
+
+ROOT_PLATFORM = $(USR_PLAT_DIR)/SUNW,Netra-CP3010
+
+include $(SRC)/cmd/picl/plugins/Makefile.com
+
+ROOTLIBDIR = $(ROOT_PLAT_PLUGINDIR)
+ROOTLIBDIR := OWNER = root
+ROOTLIBDIR := GROUP = sys
+
+CONF= libpiclfrudata.conf
+ROOTCONF= $(CONF:%=$(ROOTLIBDIR)/%)
+$(ROOTCONF) := FILEMODE = 0644
+
+ROOTLINTDIR = $(ROOTLIBDIR)
+
+.KEEP_STATE:
+
+SUBDIRS=
+
+all := TARGET= all
+install := TARGET= install
+clean := TARGET= clean
+clobber := TARGET= clobber
+lint := TARGET= lint
+
+all: $(CONF)
+
+install: $(ROOTLIBDIR) $(ROOTCONF)
+
+# include library targets
+include $(SRC)/lib/Makefile.targ
+include $(SRC)/cmd/picl/plugins/Makefile.targ
+
+$(ROOTLINTDIR)/%: ../%
+ $(INS.file)
+
+lint:
+
+$(SUBDIRS): FRC
+ @cd $@; pwd; $(MAKE) $(TARGET)
+
+FRC:
diff --git a/usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/libpiclfrudata.conf b/usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/libpiclfrudata.conf
new file mode 100644
index 0000000000..742eb56360
--- /dev/null
+++ b/usr/src/cmd/picl/plugins/sun4u/schumacher/frudata/libpiclfrudata.conf
@@ -0,0 +1,46 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "%Z%%M% %I% %E% SMI"
+#
+# This file creates the FRU device paths for the FRUAccess library
+#
+
+VERSION 1.0
+
+name:/platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/motherboard-fru-prom@81,a8
+PROP FRUDevicePath string r 0 "/devices/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/motherboard-fru-prom@81,a8:motherboard-fru-prom"
+
+name:/platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a0
+PROP FRUDevicePath string r 0 "/devices/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a0:dimm-spd"
+
+name:/platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a2
+PROP FRUDevicePath string r 0 "/devices/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a2:dimm-spd"
+
+name:/platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a4
+PROP FRUDevicePath string r 0 "/devices/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a4:dimm-spd"
+
+name:/platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a6
+PROP FRUDevicePath string r 0 "/devices/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a6:dimm-spd"
diff --git a/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/Makefile b/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/Makefile
new file mode 100644
index 0000000000..0377ae650e
--- /dev/null
+++ b/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/Makefile
@@ -0,0 +1,75 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+#
+# lib/picl/plugins/sun4u/schumacher/frutree/Makefile
+#
+include $(SRC)/Makefile.psm
+
+# include library definitions
+include $(SRC)/lib/Makefile.lib
+
+ROOT_PLATFORM = $(USR_PLAT_DIR)/SUNW,Netra-CP3010
+
+include $(SRC)/cmd/picl/plugins/Makefile.com
+
+ROOTLIBDIR = $(ROOT_PLAT_PLUGINDIR)
+ROOTLIBDIR := OWNER = root
+ROOTLIBDIR := GROUP = sys
+
+CONF= piclfrutree.conf
+ROOTCONF= $(CONF:%=$(ROOTLIBDIR)/%)
+$(ROOTCONF) := FILEMODE = 0644
+INFOS= piclfrutree.info system-board.info
+
+.KEEP_STATE:
+
+SUBDIRS=
+
+all := TARGET= all
+install := TARGET= install
+clean := TARGET= clean
+clobber := TARGET= clobber
+lint := TARGET= lint
+
+all: $(CONF)
+
+install: $(ROOTLIBDIR) $(ROOTCONF)
+
+$(CONF): $(INFOS)
+ $(RM) $@
+ $(CPP) piclfrutree.info > $@
+
+# include library targets
+include $(SRC)/lib/Makefile.targ
+include $(SRC)/cmd/picl/plugins/Makefile.targ
+
+lint:
+
+$(SUBDIRS): FRC
+ @cd $@; pwd; $(MAKE) $(TARGET)
+
+FRC:
diff --git a/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/piclfrutree.info b/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/piclfrutree.info
new file mode 100644
index 0000000000..4093e15d47
--- /dev/null
+++ b/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/piclfrutree.info
@@ -0,0 +1,74 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ *
+ * # ident "%Z%%M% %I% %E% SMI"
+ *
+ * supported prop types: void, int, uint, float, string
+ * supported prop access_modes: r, w, rw
+ *
+ * VERSION <version_number> -- supported version number is 1.0
+ *
+ * name:<namepath> -- gives the anchor node
+ * where <namepath> is <nodename>[@<bus-addr>][?<prop>=<val>]
+ *
+ * _class:<classpath> -- gives the anchor node
+ * where <classpath> is <classname>[@<bus-addr>][?<prop>=<val>]
+ *
+ * NODE <name> <class>
+ * {describes a subtree}
+ * ENDNODE
+ *
+ * PROP <name> <type> <access_mode> [<size> <value>] -- per property
+ *
+ * REFPROP <name> <dstnode>
+ *
+ * REFNODE <name> <class> with <destnode> -- Associates a new node
+ * with <destnode> if exists
+ * where
+ * <name> is the nodename
+ * <class> is the picl class.
+ * <destnode> is name:<namepath> or _class:<classpath>
+ *
+ * If "name:" or "_class:" is not specified in the <path>,
+ * the default is "name:"
+ *
+ */
+
+#define PLATFORM_CLASS jbus
+
+VERSION 1.0
+NODE frutree picl
+ NODE chassis fru
+ PROP ChassisType string r 0 "SUNW,Netra-CP3010"
+ NODE MB location
+ PROP SlotType string r 0 "atca"
+ PROP Label string r 0 "MOTHERBOARD"
+ ENDNODE
+ ENDNODE
+ENDNODE
+
+name:/frutree/chassis/MB
+#include "system-board.info"
+
diff --git a/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/system-board.info b/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/system-board.info
new file mode 100644
index 0000000000..4dc6a590a3
--- /dev/null
+++ b/usr/src/cmd/picl/plugins/sun4u/schumacher/frutree/system-board.info
@@ -0,0 +1,134 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ *
+ * # ident "%Z%%M% %I% %E% SMI"
+ *
+ * This file creates the system board structure
+ */
+
+NODE SUNW,Netra-CP3010 fru
+
+NODE CPU location
+ PROP Label string r 0 "CPU 0"
+ PROP GeoAddr uint r 1 1
+ PROP SlotType string r 0 "cpu"
+ENDNODE
+
+NODE CPU location
+ PROP Label string r 0 "CPU 1"
+ PROP GeoAddr uint r 1 2
+ PROP SlotType string r 0 "cpu"
+ENDNODE
+
+NODE mem-slot location
+ PROP GeoAddr uint r 1 1
+ PROP Label string r 0 "DIMM0"
+ PROP SlotType string r 0 "memory-module"
+ENDNODE
+
+NODE mem-slot location
+ PROP GeoAddr uint r 1 2
+ PROP Label string r 0 "DIMM1"
+ PROP SlotType string r 0 "memory-module"
+ENDNODE
+
+NODE mem-slot location
+ PROP GeoAddr uint r 1 3
+ PROP Label string r 0 "DIMM2"
+ PROP SlotType string r 0 "memory-module"
+ENDNODE
+
+NODE mem-slot location
+ PROP GeoAddr uint r 1 4
+ PROP Label string r 0 "DIMM3"
+ PROP SlotType string r 0 "memory-module"
+ENDNODE
+
+ENDNODE
+
+/*
+ * create the fru modules for CPU
+ */
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/CPU?GeoAddr=1
+REFNODE cpu-module fru WITH _class:/PLATFORM_CLASS/cpu?ID=0
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/CPU?GeoAddr=2
+REFNODE cpu-module fru WITH _class:/PLATFORM_CLASS/cpu?ID=1
+
+/*
+ * _fru_parent CPU devices
+ */
+_class:/PLATFORM_CLASS/cpu?ID=0
+REFPROP _fru_parent /frutree/chassis/MB/SUNW,Netra-CP3010/CPU?GeoAddr=1/cpu-module
+
+_class:/PLATFORM_CLASS/cpu?ID=1
+REFPROP _fru_parent /frutree/chassis/MB/SUNW,Netra-CP3010/CPU?GeoAddr=2/cpu-module
+
+/*
+ * _fru_parent motherboard
+ */
+_class:/PLATFORM_CLASS
+REFPROP _fru_parent /frutree/chassis/MB/SUNW,Netra-CP3010
+
+/*
+ * Set up memory module fru
+ */
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM0
+REFNODE mem-module fru WITH /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a0
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM1
+REFNODE mem-module fru WITH /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a2
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM2
+REFNODE mem-module fru WITH /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a4
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM3
+REFNODE mem-module fru WITH /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a6
+
+/*
+ * seeprom source for motherboard
+ */
+name:/frutree/chassis/MB/SUNW,Netra-CP3010
+PROP FRUDataAvailable void r
+REFPROP _seeprom_source /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/motherboard-fru-prom@81,a8
+
+/*
+ * seeprom source for dimms
+ */
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM0/mem-module
+PROP FRUDataAvailable void r
+REFPROP _seeprom_source /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a0
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM1/mem-module
+PROP FRUDataAvailable void r
+REFPROP _seeprom_source /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a2
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM2/mem-module
+PROP FRUDataAvailable void r
+REFPROP _seeprom_source /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a4
+
+name:/frutree/chassis/MB/SUNW,Netra-CP3010/mem-slot?Label=DIMM3/mem-module
+PROP FRUDataAvailable void r
+REFPROP _seeprom_source /platform/pci@1e,600000/isa@7/ipmc@0,2e8/i2c@81/dimm-spd@81,a6
diff --git a/usr/src/lib/cfgadm_plugins/Makefile.com b/usr/src/lib/cfgadm_plugins/Makefile.com
index 43fb1c4424..e4c26067b7 100644
--- a/usr/src/lib/cfgadm_plugins/Makefile.com
+++ b/usr/src/lib/cfgadm_plugins/Makefile.com
@@ -61,6 +61,7 @@ LINKED_PLATFORMS += SUNW,Serverblade1
LINKED_PLATFORMS += SUNW,Netra-T12
LINKED_PLATFORMS += SUNW,Netra-T4
LINKED_PLATFORMS += SUNW,Netra-CP2300
+LINKED_PLATFORMS += SUNW,Netra-CP3010
LINKED_DIRS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%)
LINKED_LIB_DIRS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%/lib)
diff --git a/usr/src/lib/libc_psr/spec/sun4u-us3/Makefile.links b/usr/src/lib/libc_psr/spec/sun4u-us3/Makefile.links
index 416f317982..8431e556ea 100644
--- a/usr/src/lib/libc_psr/spec/sun4u-us3/Makefile.links
+++ b/usr/src/lib/libc_psr/spec/sun4u-us3/Makefile.links
@@ -50,5 +50,6 @@ LINKED_PLATFORMS += SUNW,Sun-Fire-V890
LINKED_PLATFORMS += SUNW,Sun-Fire-V490
LINKED_PLATFORMS += SUNW,Netra-T12
LINKED_PLATFORMS += SUNW,Netra-T4
+LINKED_PLATFORMS += SUNW,Netra-CP3010
include $(SRC)/lib/libc_psr/spec/Makefile.com
diff --git a/usr/src/lib/libc_psr/sun4u-us3/Makefile.com b/usr/src/lib/libc_psr/sun4u-us3/Makefile.com
index 2963f6f2cb..cfc30f4eb7 100644
--- a/usr/src/lib/libc_psr/sun4u-us3/Makefile.com
+++ b/usr/src/lib/libc_psr/sun4u-us3/Makefile.com
@@ -57,6 +57,7 @@ LINKED_PLATFORMS = SUNW,Sun-Blade-1000
LINKED_PLATFORMS += SUNW,Sun-Blade-1500
LINKED_PLATFORMS += SUNW,Sun-Blade-2500
LINKED_PLATFORMS += SUNW,A70
+LINKED_PLATFORMS += SUNW,Netra-CP3010
LINKED_PLATFORMS += SUNW,Sun-Fire
LINKED_PLATFORMS += SUNW,Sun-Fire-V240
LINKED_PLATFORMS += SUNW,Sun-Fire-V250
diff --git a/usr/src/lib/libmd5_psr/Makefile.com b/usr/src/lib/libmd5_psr/Makefile.com
index 378ddced09..bfadba375f 100644
--- a/usr/src/lib/libmd5_psr/Makefile.com
+++ b/usr/src/lib/libmd5_psr/Makefile.com
@@ -93,5 +93,6 @@ LINKED_PLATFORMS += SUNW,Serverblade1
LINKED_PLATFORMS += SUNW,Netra-T12
LINKED_PLATFORMS += SUNW,Netra-T4
LINKED_PLATFORMS += SUNW,Netra-CP2300
+LINKED_PLATFORMS += SUNW,Netra-CP3010
.KEEP_STATE:
diff --git a/usr/src/lib/libmd5_psr/spec/Makefile.com b/usr/src/lib/libmd5_psr/spec/Makefile.com
index 00cd58bde8..195cd056ad 100644
--- a/usr/src/lib/libmd5_psr/spec/Makefile.com
+++ b/usr/src/lib/libmd5_psr/spec/Makefile.com
@@ -61,6 +61,7 @@ LINKED_PLATFORMS += SUNW,Serverblade1
LINKED_PLATFORMS += SUNW,Netra-T12
LINKED_PLATFORMS += SUNW,Netra-T4
LINKED_PLATFORMS += SUNW,Netra-CP2300
+LINKED_PLATFORMS += SUNW,Netra-CP3010
LINKED_DIRS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%)
LINKED_LIB_DIRS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%/lib)
diff --git a/usr/src/pkgdefs/SUNWcakr.u/prototype_com b/usr/src/pkgdefs/SUNWcakr.u/prototype_com
index a64f5204d0..b4a9c62517 100644
--- a/usr/src/pkgdefs/SUNWcakr.u/prototype_com
+++ b/usr/src/pkgdefs/SUNWcakr.u/prototype_com
@@ -54,6 +54,14 @@ f none platform/SUNW,Netra-CP2300/kernel/misc/sparcv9/platmod 755 root sys
d none platform/SUNW,Netra-CP2300/kernel/tod 755 root sys
d none platform/SUNW,Netra-CP2300/kernel/tod/sparcv9 755 root sys
f none platform/SUNW,Netra-CP2300/kernel/tod/sparcv9/todds1307 0755 root sys
+d none platform/SUNW,Netra-CP3010 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel/misc 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel/misc/sparcv9 755 root sys
+f none platform/SUNW,Netra-CP3010/kernel/misc/sparcv9/platmod 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel/crypto 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel/crypto/sparcv9 755 root sys
+s none platform/SUNW,Netra-CP3010/kernel/crypto/sparcv9/aes=../../../../sun4u-us3/kernel/crypto/sparcv9/aes
d none platform/SUNW,Netra-T12 755 root sys
d none platform/SUNW,Netra-T12/kernel 755 root sys
s none platform/SUNW,Netra-T12/kernel/cpu=../../SUNW,Sun-Fire/kernel/cpu
diff --git a/usr/src/pkgdefs/SUNWcar.u/prototype_com b/usr/src/pkgdefs/SUNWcar.u/prototype_com
index 31db64dfd8..d156a9959b 100644
--- a/usr/src/pkgdefs/SUNWcar.u/prototype_com
+++ b/usr/src/pkgdefs/SUNWcar.u/prototype_com
@@ -49,6 +49,7 @@ d none platform/sun4u-us3 755 root sys
d none platform/SUNW,Netra-T12 755 root sys
d none platform/SUNW,Netra-T4 755 root sys
d none platform/SUNW,Netra-CP2300 755 root sys
+d none platform/SUNW,Netra-CP3010 755 root sys
d none platform/SUNW,Serverblade1 755 root sys
d none platform/SUNW,Sun-Blade-100 755 root sys
d none platform/SUNW,Sun-Blade-1000 755 root sys
@@ -114,6 +115,7 @@ d none platform/SUNW,UltraSPARC-IIe-NetraCT-40/lib/sparcv9 755 root bin
d none platform/SUNW,UltraSPARC-IIe-NetraCT-60/lib/sparcv9 755 root bin
d none platform/SUNW,UltraSPARC-IIi-Netract/lib/sparcv9 755 root bin
d none platform/SUNW,Netra-CP2300/lib/sparcv9 755 root bin
+d none platform/SUNW,Netra-CP3010/lib/sparcv9 755 root bin
d none platform/sun4u-us3/lib/sparcv9 755 root bin
f none platform/sun4u/lib/sparcv9/libc_psr.so.1 755 root bin
f none platform/sun4u-us3/lib/sparcv9/libc_psr.so.1 755 root bin
@@ -125,6 +127,7 @@ s none platform/SUNW,Sun-Blade-1000/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3
s none platform/SUNW,Sun-Blade-1500/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
s none platform/SUNW,Sun-Blade-2500/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
s none platform/SUNW,A70/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
+s none platform/SUNW,Netra-CP3010/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
s none platform/SUNW,Sun-Fire-15000/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
s none platform/SUNW,Sun-Fire-V240/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
s none platform/SUNW,Sun-Fire-V250/lib/sparcv9/libc_psr.so.1=../../../sun4u-us3/lib/sparcv9/libc_psr.so.1
@@ -156,6 +159,7 @@ s none platform/SUNW,Sun-Blade-1000/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/l
s none platform/SUNW,Sun-Blade-1500/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
s none platform/SUNW,Sun-Blade-2500/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
s none platform/SUNW,A70/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
+s none platform/SUNW,Netra-CP3010/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
s none platform/SUNW,Sun-Fire-15000/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
s none platform/SUNW,Sun-Fire-480R/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
s none platform/SUNW,Sun-Fire-V240/lib/sparcv9/libmd5_psr.so.1=../../../sun4u/lib/sparcv9/libmd5_psr.so.1
@@ -212,6 +216,7 @@ d none platform/SUNW,UltraSPARC-IIe-NetraCT-40/lib 755 root bin
d none platform/SUNW,UltraSPARC-IIe-NetraCT-60/lib 755 root bin
d none platform/SUNW,UltraSPARC-IIi-Netract/lib 755 root bin
d none platform/SUNW,Netra-CP2300/lib 755 root bin
+d none platform/SUNW,Netra-CP3010/lib 755 root bin
f none platform/sun4u/lib/libc_psr.so.1 755 root bin
d none platform/sun4u-us3/lib 755 root sys
f none platform/sun4u-us3/lib/libc_psr.so.1 755 root bin
@@ -231,6 +236,7 @@ s none platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_p
s none platform/SUNW,Sun-Blade-1500/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
s none platform/SUNW,Sun-Blade-2500/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
s none platform/SUNW,A70/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
+s none platform/SUNW,Netra-CP3010/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
s none platform/SUNW,Sun-Fire/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
s none platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
s none platform/SUNW,Sun-Fire-V250/lib/libc_psr.so.1=../../sun4u-us3/lib/libc_psr.so.1
@@ -265,6 +271,7 @@ s none platform/SUNW,Sun-Blade-1000/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_p
s none platform/SUNW,Sun-Blade-1500/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
s none platform/SUNW,Sun-Blade-2500/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
s none platform/SUNW,A70/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
+s none platform/SUNW,Netra-CP3010/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
s none platform/SUNW,Sun-Fire/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
s none platform/SUNW,Sun-Fire-V240/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
s none platform/SUNW,Sun-Fire-V250/lib/libmd5_psr.so.1=../../sun4u/lib/libmd5_psr.so.1
diff --git a/usr/src/pkgdefs/SUNWcryr/prototype_sparc b/usr/src/pkgdefs/SUNWcryr/prototype_sparc
index a4d0fc4bc1..f7532db12a 100644
--- a/usr/src/pkgdefs/SUNWcryr/prototype_sparc
+++ b/usr/src/pkgdefs/SUNWcryr/prototype_sparc
@@ -75,6 +75,7 @@ d none platform/SUNW,Sun-Blade-1000 755 root sys
d none platform/SUNW,Sun-Blade-1500 755 root sys
d none platform/SUNW,Sun-Blade-2500 755 root sys
d none platform/SUNW,A70 755 root sys
+d none platform/SUNW,Netra-CP3010 755 root sys
d none platform/SUNW,Sun-Fire 755 root sys
d none platform/SUNW,Sun-Fire-15000 755 root sys
d none platform/SUNW,Sun-Fire-V240 755 root sys
@@ -99,6 +100,10 @@ d none platform/SUNW,A70/kernel 755 root sys
d none platform/SUNW,A70/kernel/crypto 755 root sys
d none platform/SUNW,A70/kernel/crypto/sparcv9 755 root sys
s none platform/SUNW,A70/kernel/crypto/sparcv9/aes256=../../../../sun4u-us3/kernel/crypto/sparcv9/aes256
+d none platform/SUNW,Netra-CP3010/kernel 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel/crypto 755 root sys
+d none platform/SUNW,Netra-CP3010/kernel/crypto/sparcv9 755 root sys
+s none platform/SUNW,Netra-CP3010/kernel/crypto/sparcv9/aes256=../../../../sun4u-us3/kernel/crypto/sparcv9/aes256
d none platform/SUNW,Sun-Fire/kernel 755 root sys
d none platform/SUNW,Sun-Fire/kernel/crypto 755 root sys
d none platform/SUNW,Sun-Fire/kernel/crypto/sparcv9 755 root sys
diff --git a/usr/src/pkgdefs/SUNWfmd/prototype_sparc b/usr/src/pkgdefs/SUNWfmd/prototype_sparc
index d0bcc3d0ae..911fde3bae 100644
--- a/usr/src/pkgdefs/SUNWfmd/prototype_sparc
+++ b/usr/src/pkgdefs/SUNWfmd/prototype_sparc
@@ -57,6 +57,8 @@ d none usr/lib/fm/topo/SUNW,Sun-Blade-1500 755 root bin
f none usr/lib/fm/topo/SUNW,Sun-Blade-1500/platform.topo 444 root bin
d none usr/lib/fm/topo/SUNW,Sun-Blade-2500 755 root bin
f none usr/lib/fm/topo/SUNW,Sun-Blade-2500/platform.topo 444 root bin
+d none usr/lib/fm/topo/SUNW,Netra-CP3010 755 root bin
+f none usr/lib/fm/topo/SUNW,Netra-CP3010/platform.topo 444 root bin
d none usr/lib/fm/topo/SUNW,Sun-Fire-15000 755 root bin
f none usr/lib/fm/topo/SUNW,Sun-Fire-15000/platform.topo 444 root bin
d none usr/lib/fm/topo/SUNW,Sun-Fire-480R 755 root bin
diff --git a/usr/src/pkgdefs/SUNWfruip.u/prototype_sparc b/usr/src/pkgdefs/SUNWfruip.u/prototype_sparc
index 1e6bac0f86..2270ac1c2c 100644
--- a/usr/src/pkgdefs/SUNWfruip.u/prototype_sparc
+++ b/usr/src/pkgdefs/SUNWfruip.u/prototype_sparc
@@ -138,7 +138,13 @@ f none usr/platform/SUNW,Netra-CP2300/lib/libfruaccess.so.1 755 root sys
s none usr/platform/SUNW,Netra-CP2300/lib/libfruaccess.so=libfruaccess.so.1
d none usr/platform/SUNW,Netra-CP2300/sbin 755 root bin
s none usr/platform/SUNW,Netra-CP2300/sbin/fruadm=../../sun4u/sbin/fruadm
-
+d none usr/platform/SUNW,Netra-CP3010 755 root sys
+d none usr/platform/SUNW,Netra-CP3010/lib 755 root bin
+d none usr/platform/SUNW,Netra-CP3010/lib/picl 755 root sys
+d none usr/platform/SUNW,Netra-CP3010/lib/picl/plugins 755 root sys
+f none usr/platform/SUNW,Netra-CP3010/lib/picl/plugins/libpiclfrudata.conf 644 root sys
+d none usr/platform/SUNW,Netra-CP3010/sbin 755 root bin
+s none usr/platform/SUNW,Netra-CP3010/sbin/fruadm=../../sun4u/sbin/fruadm
d none usr/platform/sun4u 755 root sys
d none usr/platform/sun4u/lib 755 root bin
f none usr/platform/sun4u/lib/fru_container.conf 644 root sys
diff --git a/usr/src/pkgdefs/SUNWhea/prototype_sparc b/usr/src/pkgdefs/SUNWhea/prototype_sparc
index d204ab3321..dbb9cbbc6c 100644
--- a/usr/src/pkgdefs/SUNWhea/prototype_sparc
+++ b/usr/src/pkgdefs/SUNWhea/prototype_sparc
@@ -167,6 +167,8 @@ d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60 755 root sys
s none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60/include=../sun4u/include
d none usr/platform/SUNW,Netra-CP2300 755 root sys
d none usr/platform/SUNW,Netra-CP2300/include 755 root bin
+d none usr/platform/SUNW,Netra-CP3010 755 root sys
+d none usr/platform/SUNW,Netra-CP3010/include 755 root bin
d none usr/platform/sun4u/include/sys 755 root bin
f none usr/platform/sun4u/include/sys/ac.h 644 root bin
f none usr/platform/sun4u/include/sys/async.h 644 root bin
diff --git a/usr/src/pkgdefs/SUNWkvm.u/prototype_com b/usr/src/pkgdefs/SUNWkvm.u/prototype_com
index 47b5bfecd6..4a85452457 100644
--- a/usr/src/pkgdefs/SUNWkvm.u/prototype_com
+++ b/usr/src/pkgdefs/SUNWkvm.u/prototype_com
@@ -78,6 +78,7 @@ d none usr/platform/SUNW,UltraSPARC-IIi-Netract 755 root sys
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-40 755 root sys
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60 755 root sys
d none usr/platform/SUNW,Netra-CP2300 755 root sys
+d none usr/platform/SUNW,Netra-CP3010 755 root sys
#
# create sun4u/sbin and links to it from each sun4u platform
#
@@ -118,6 +119,10 @@ d none usr/platform/SUNW,Netra-CP2300/sbin 755 root bin
s none usr/platform/SUNW,Netra-CP2300/sbin/eeprom=../../sun4u/sbin/eeprom
s none usr/platform/SUNW,Netra-CP2300/sbin/prtdiag=../../sun4u/sbin/prtdiag
s none usr/platform/SUNW,Netra-CP2300/sbin/trapstat=../../sun4u/sbin/trapstat
+d none usr/platform/SUNW,Netra-CP3010/sbin 755 root bin
+s none usr/platform/SUNW,Netra-CP3010/sbin/eeprom=../../sun4u/sbin/eeprom
+s none usr/platform/SUNW,Netra-CP3010/sbin/prtdiag=../../sun4u/sbin/prtdiag
+s none usr/platform/SUNW,Netra-CP3010/sbin/trapstat=../../sun4u/sbin/trapstat
#
f none usr/platform/sun4u/sbin/eeprom 2555 root sys
f none usr/platform/sun4u/sbin/trapstat 555 root bin
@@ -128,6 +133,7 @@ f none usr/platform/sun4u/sbin/trapstat 555 root bin
f none usr/platform/sun4u/sbin/prtdiag 2755 root sys
f none usr/platform/sun4u/lib/libprtdiag.so.1 755 root bin
s none usr/platform/sun4u/lib/libprtdiag.so=./libprtdiag.so.1
+f none usr/platform/SUNW,Netra-CP3010/lib/libprtdiag_psr.so.1 644 root bin
f none usr/platform/SUNW,Ultra-2/lib/libprtdiag_psr.so.1 644 root bin
s none usr/platform/sun4u/lib/libprtdiag_psr.so.1=../../SUNW,Ultra-2/lib/libprtdiag_psr.so.1
f none usr/platform/SUNW,Ultra-250/lib/libprtdiag_psr.so.1 644 root bin
@@ -175,6 +181,7 @@ d none usr/platform/SUNW,UltraSPARC-IIi-Netract/lib 755 root bin
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-40/lib 755 root bin
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60/lib 755 root bin
d none usr/platform/SUNW,Netra-CP2300/lib 755 root bin
+d none usr/platform/SUNW,Netra-CP3010/lib 755 root bin
#
# create sun4u/lib/cfgadm and links to it for each sun4u platform
#
@@ -206,6 +213,7 @@ s none usr/platform/SUNW,UltraSPARC-IIi-Netract/lib/cfgadm=../../sun4u/lib/cfgad
s none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-40/lib/cfgadm=../../sun4u/lib/cfgadm
s none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60/lib/cfgadm=../../sun4u/lib/cfgadm
s none usr/platform/SUNW,Netra-CP2300/lib/cfgadm=../../sun4u/lib/cfgadm
+s none usr/platform/SUNW,Netra-CP3010/lib/cfgadm=../../sun4u/lib/cfgadm
#
f none usr/platform/sun4u/lib/cfgadm/sysctrl.so.1 755 root bin
s none usr/platform/sun4u/lib/cfgadm/sysctrl.so=./sysctrl.so.1
@@ -244,6 +252,7 @@ s none usr/platform/SUNW,UltraSPARC-IIi-Netract/lib/fs=../../sun4u/lib/fs
s none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-40/lib/fs=../../sun4u/lib/fs
s none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60/lib/fs=../../sun4u/lib/fs
s none usr/platform/SUNW,Netra-CP2300/lib/fs=../../sun4u/lib/fs
+s none usr/platform/SUNW,Netra-CP3010/lib/fs=../../sun4u/lib/fs
#
d none usr/platform/sun4u/lib/fs/ufs 755 root bin
f none usr/platform/sun4u/lib/fs/ufs/bootblk 444 root sys
diff --git a/usr/src/pkgdefs/SUNWpiclu/prototype_sparc b/usr/src/pkgdefs/SUNWpiclu/prototype_sparc
index 8a922290bc..95627d326c 100644
--- a/usr/src/pkgdefs/SUNWpiclu/prototype_sparc
+++ b/usr/src/pkgdefs/SUNWpiclu/prototype_sparc
@@ -253,6 +253,11 @@ s none usr/platform/SUNW,Netra-CP2300/lib/picl/plugins/libpiclwd.so=libpiclwd.so
f none usr/platform/SUNW,Netra-CP2300/lib/picl/plugins/envmond.conf 644 root sys
f none usr/platform/SUNW,Netra-CP2300/lib/picl/plugins/SUNW,Netra-CP2300.conf 644 root sys
f none usr/platform/SUNW,Netra-CP2300/lib/picl/plugins/SUNW,Netra-CP2300.RTM.conf 644 root sys
+d none usr/platform/SUNW,Netra-CP3010 755 root sys
+d none usr/platform/SUNW,Netra-CP3010/lib 755 root bin
+d none usr/platform/SUNW,Netra-CP3010/lib/picl 755 root sys
+d none usr/platform/SUNW,Netra-CP3010/lib/picl/plugins 755 root sys
+f none usr/platform/SUNW,Netra-CP3010/lib/picl/plugins/piclfrutree.conf 644 root sys
d none usr/platform/SUNW,Sun-Fire-V240/lib/picl 755 root sys
d none usr/platform/SUNW,Sun-Fire-V240/lib/picl/plugins 755 root sys
f none usr/platform/SUNW,Sun-Fire-V240/lib/picl/plugins/picldevtree.conf 644 root sys
diff --git a/usr/src/pkgdefs/SUNWpstl.u/prototype_sparc b/usr/src/pkgdefs/SUNWpstl.u/prototype_sparc
index 981b00a425..397ebbcf98 100644
--- a/usr/src/pkgdefs/SUNWpstl.u/prototype_sparc
+++ b/usr/src/pkgdefs/SUNWpstl.u/prototype_sparc
@@ -75,6 +75,7 @@ d none usr/platform/SUNW,UltraSPARC-IIi-Netract 755 root sys
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-40 755 root sys
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60 755 root sys
d none usr/platform/SUNW,Netra-CP2300 755 root sys
+d none usr/platform/SUNW,Netra-CP3010 755 root sys
#
# create other sun4u platform/lib directories
#
@@ -105,3 +106,4 @@ d none usr/platform/SUNW,UltraSPARC-IIi-Netract/lib 755 root bin
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-40/lib 755 root bin
d none usr/platform/SUNW,UltraSPARC-IIe-NetraCT-60/lib 755 root bin
d none usr/platform/SUNW,Netra-CP2300/lib 755 root bin
+d none usr/platform/SUNW,Netra-CP3010/lib 755 root bin
diff --git a/usr/src/psm/stand/boot/sparcv9/sun4u/Makefile b/usr/src/psm/stand/boot/sparcv9/sun4u/Makefile
index b81cbc1c07..65f8f7ebd0 100644
--- a/usr/src/psm/stand/boot/sparcv9/sun4u/Makefile
+++ b/usr/src/psm/stand/boot/sparcv9/sun4u/Makefile
@@ -59,6 +59,7 @@ PLATLINKS += SUNW,Serverblade1
PLATLINKS += SUNW,Netra-T12
PLATLINKS += SUNW,Netra-T4
PLATLINKS += SUNW,Netra-CP2300
+PLATLINKS += SUNW,Netra-CP3010
LINKED_DIRS = $(PLATLINKS:%=$(USR_PLAT_DIR)/%)
LINKED_LIB_DIRS = $(PLATLINKS:%=$(USR_PLAT_DIR)/%/lib)
diff --git a/usr/src/uts/sun4u/Makefile.sun4u b/usr/src/uts/sun4u/Makefile.sun4u
index 1dca602db8..1c635edc5c 100644
--- a/usr/src/uts/sun4u/Makefile.sun4u
+++ b/usr/src/uts/sun4u/Makefile.sun4u
@@ -98,6 +98,7 @@ IMPLEMENTATIONS += cherrystone .WAIT
IMPLEMENTATIONS += fjlite .WAIT
IMPLEMENTATIONS += lw2plus .WAIT
IMPLEMENTATIONS += snowbird .WAIT
+IMPLEMENTATIONS += schumacher .WAIT
IMPLEMENTATIONS += blade .WAIT
IMPLEMENTATIONS += chicago
diff --git a/usr/src/uts/sun4u/schumacher/Makefile b/usr/src/uts/sun4u/schumacher/Makefile
new file mode 100644
index 0000000000..389e096e01
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/Makefile
@@ -0,0 +1,123 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident "%Z%%M% %I% %E% SMI"
+#
+# This makefile drives the production of the sun4u schumacher platform
+# module.
+#
+# sun4u implementation architecture dependent
+#
+
+#
+# Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE = ../..
+
+#
+# Include common rules.
+#
+include $(UTSBASE)/sun4u/schumacher/Makefile.schumacher
+
+def := TARGET= def
+all := TARGET= all
+install := TARGET= install
+install_h := TARGET= install_h
+clean := TARGET= clean
+clobber := TARGET= clobber
+lint := TARGET= lint
+lintlib := TARGET= lintlib
+modlintlib := TARGET= modlintlib
+clean.lint := TARGET= clean.lint
+check := TARGET= check
+
+#
+# Default build targets.
+#
+.KEEP_STATE:
+
+def all clean clean.lint clobber: $(SCHUMACHER_KMODS)
+
+modlintlib: $(SCHUMACHER_KMODS)
+
+# EXPORT DELETE START
+#
+# aes256 is delivered in the SUNWcryr package which is removed from
+# the EXPORT_SRC build.
+#
+SCHUMACHER_CRYPTO_LINKS += aes256
+# EXPORT DELETE END
+
+install: $(ROOT_SCHUMACHER_DIR) \
+ $(USR_SCHUMACHER_DIR) \
+ $(USR_SCHUMACHER_INC_DIR) \
+ $(USR_SCHUMACHER_SBIN_DIR) \
+ $(USR_SCHUMACHER_SBIN_EEPROM) \
+ $(USR_SCHUMACHER_SBIN_PRTDIAG) \
+ $(USR_SCHUMACHER_SBIN_TRAPSTAT) \
+ $(USR_SCHUMACHER_SBIN_FRUADM) \
+ $(USR_SCHUMACHER_LIB_DIR) \
+ $(SCHUMACHER_CRYPTO_LINKS) \
+ $(SCHUMACHER_KMODS)
+
+check install_h:
+
+lint: modlintlib
+
+#
+# The 'lint.platmod' target lints the schumacher platform module against the sun4u
+# kernel. This ends up doing all the kernel cross-checks, so it takes a couple
+# of minutes.
+#
+LINT_LIBS = $(LINT_LIB) \
+ -L$(SCHUMACHER_LINT_LIB_DIR) \
+ -L$(LINT_LIB_DIR) $(LINT_KMODS:%=-l%) \
+ -L$(SPARC_LIB_DIR) $(SPARC_LINTS:%=-l%)
+
+lint.platmod: modlintlib
+ @-$(ECHO) "\nSchumacher Platform-dependent module: global crosschecks:"
+ @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2)
+
+$(SCHUMACHER_KMODS): FRC
+ @cd $@; pwd; $(MAKE) $(TARGET)
+
+$(SCHUMACHER_CRYPTO_LINKS): $(ROOT_SCHUMACHER_CRYPTO_DIR_64)
+ -$(RM) $(ROOT_SCHUMACHER_CRYPTO_DIR_64)/$@;
+ $(SYMLINK) $(ROOT_US3_CRYPTO_LINK)/$@ $(ROOT_SCHUMACHER_CRYPTO_DIR_64)/$@
+
+# EXPORT DELETE START
+
+EXPORT_SRC:
+ $(RM) Makefile+
+ sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \
+ < Makefile > Makefile+
+ $(MV) Makefile+ Makefile
+ $(CHMOD) 444 Makefile
+
+# EXPORT DELETE END
+
+#
+# Include common targets.
+#
+include $(UTSBASE)/sun4u/schumacher/Makefile.targ
diff --git a/usr/src/uts/sun4u/schumacher/Makefile.files b/usr/src/uts/sun4u/schumacher/Makefile.files
new file mode 100644
index 0000000000..6756828a77
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/Makefile.files
@@ -0,0 +1,42 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# uts/sun4u/schumacher/Makefile.files
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "%Z%%M% %I% %E% SMI"
+#
+# This Makefile defines all file modules for the directory
+# uts/sun4u/schumacher and it's children. These are the source files
+# which are sun4u "implementation architecture" dependent.
+#
+
+#
+# object lists
+#
+# Schumacher specific driver module
+#
+
+#
+# Miscellaneous
+#
+INC_PATH += -I$(UTSBASE)/sun4u/schumacher
diff --git a/usr/src/uts/sun4u/schumacher/Makefile.rules b/usr/src/uts/sun4u/schumacher/Makefile.rules
new file mode 100644
index 0000000000..28daa0ba3d
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/Makefile.rules
@@ -0,0 +1,52 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident "%Z%%M% %I% %E% SMI"
+#
+# This Makefile defines the build rules for the directory
+# uts/sun4u/schumacher.
+#
+# The following two-level ordering must be maintained in this file.
+# Lines are sorted first in order of decreasing specificity based on
+# the first directory component. That is, sun4u rules come before
+# sparc rules come before common rules.
+#
+# Lines whose initial directory components are equal are sorted
+# alphabetically by the remaining components.
+
+#
+# Section 1a: C object build rules
+#
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/sun4u/schumacher/os/%.c
+ $(COMPILE.c) -o $@ $<
+ $(CTFCONVERT_O)
+
+#
+# Section 1b: Lint `object' build rules
+#
+
+$(LINTS_DIR)/%.ln: $(UTSBASE)/sun4u/schumacher/os/%.c
+ @($(LHEAD) $(LINT.c) $< $(LTAIL))
+
diff --git a/usr/src/uts/sun4u/schumacher/Makefile.schumacher b/usr/src/uts/sun4u/schumacher/Makefile.schumacher
new file mode 100644
index 0000000000..d2e28ea88e
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/Makefile.schumacher
@@ -0,0 +1,83 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident "%Z%%M% %I% %E% SMI"
+#
+# Global definitions for sun4u implementation specific modules.
+#
+
+#
+# Define directories.
+#
+ROOT_SCHUMACHER_DIR = $(ROOT_PLAT_DIR)/SUNW,Netra-CP3010
+ROOT_SCHUMACHER_MOD_DIR = $(ROOT_SCHUMACHER_DIR)/kernel
+
+ROOT_SCHUMACHER_MISC_DIR_32 = $(ROOT_SCHUMACHER_MOD_DIR)/misc
+ROOT_SCHUMACHER_MISC_DIR_64 = $(ROOT_SCHUMACHER_MISC_DIR_32)/$(SUBDIR64)
+ROOT_SCHUMACHER_DRV_DIR_32 = $(ROOT_SCHUMACHER_MOD_DIR)/drv
+ROOT_SCHUMACHER_DRV_DIR_64 = $(ROOT_SCHUMACHER_DRV_DIR_32)/$(SUBDIR64)
+ROOT_SCHUMACHER_CRYPTO_DIR_32 = $(ROOT_SCHUMACHER_MOD_DIR)/crypto
+ROOT_SCHUMACHER_CRYPTO_DIR_64 = $(ROOT_SCHUMACHER_CRYPTO_DIR_32)/$(SUBDIR64)
+
+ROOT_SCHUMACHER_MISC_DIR = $(ROOT_SCHUMACHER_MISC_DIR_$(CLASS))
+ROOT_SCHUMACHER_DRV_DIR = $(ROOT_SCHUMACHER_DRV_DIR_$(CLASS))
+ROOT_SCHUMACHER_CRYPTO_DIR = $(ROOT_SCHUMACHER_CRYPTO_DIR_$(CLASS))
+
+ROOT_PLAT_MOD_DIRS += $(ROOT_SCHUMACHER_MOD_DIR)
+ROOT_PLAT_MISC_DIRS += $(ROOT_SCHUMACHER_MISC_DIR)
+
+USR_SCHUMACHER_DIR = $(USR_PLAT_DIR)/SUNW,Netra-CP3010
+USR_SCHUMACHER_LINKED_DIR = $(USR_PLAT_DIR)/$(LINKED_PLATFORM)
+USR_SCHUMACHER_INC_DIR = $(USR_SCHUMACHER_DIR)/include
+USR_SCHUMACHER_ISYS_DIR = $(USR_SCHUMACHER_INC_DIR)/sys
+USR_SCHUMACHER_SBIN_DIR = $(USR_SCHUMACHER_DIR)/sbin
+USR_SCHUMACHER_SBIN_EEPROM = $(USR_SCHUMACHER_SBIN_DIR)/eeprom
+USR_SCHUMACHER_SBIN_PRTDIAG = $(USR_SCHUMACHER_SBIN_DIR)/prtdiag
+USR_SCHUMACHER_SBIN_TRAPSTAT = $(USR_SCHUMACHER_SBIN_DIR)/trapstat
+USR_SCHUMACHER_SBIN_FRUADM = $(USR_SCHUMACHER_SBIN_DIR)/fruadm
+USR_SCHUMACHER_LIB_DIR = $(USR_SCHUMACHER_DIR)/lib
+
+SCHUMACHER_LINT_LIB_DIR= $(UTSBASE)/$(PLATFORM)/schumacher/lint-libs/$(OBJS_DIR)
+
+#
+# Define objects.
+#
+SCHUMACHER_OBJS = schumacher.o
+
+#
+# Define modules.
+#
+SCHUMACHER_KMODS = platmod
+
+#
+# Links to UltraSparc III cyrpto modules
+#
+SCHUMACHER_CRYPTO_LINKS = aes
+
+include $(UTSBASE)/sun4u/schumacher/Makefile.files
+
+#
+# Include common rules.
+#
+include $(UTSBASE)/sun4u/Makefile.sun4u
diff --git a/usr/src/uts/sun4u/schumacher/Makefile.targ b/usr/src/uts/sun4u/schumacher/Makefile.targ
new file mode 100644
index 0000000000..799d5c596c
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/Makefile.targ
@@ -0,0 +1,101 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident "%Z%%M% %I% %E% SMI"
+#
+# Common targets for sun4u implementation specific modules.
+#
+
+.KEEP_STATE:
+
+IMPLEMENTED_PLATFORM = SUNW,Netra-CP3010
+
+#
+# Rules for implementation subdirectories.
+#
+$(ROOT_SCHUMACHER_DIR): $(ROOT_PLAT_DIR)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_MOD_DIR): $(ROOT_SCHUMACHER_DIR)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_MISC_DIR_32): $(ROOT_SCHUMACHER_MOD_DIR)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_MISC_DIR): $(ROOT_SCHUMACHER_MISC_DIR_32)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_DRV_DIR_32): $(ROOT_SCHUMACHER_MOD_DIR)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_DRV_DIR): $(ROOT_SCHUMACHER_DRV_DIR_32)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_CRYPTO_DIR_32): $(ROOT_SCHUMACHER_MOD_DIR)
+ -$(INS.dir.root.sys)
+
+$(ROOT_SCHUMACHER_CRYPTO_DIR_64): $(ROOT_SCHUMACHER_CRYPTO_DIR_32)
+ -$(INS.dir.root.sys)
+
+$(USR_SCHUMACHER_DIR): $(USR_PLAT_DIR)
+ -$(INS.dir.root.sys)
+
+$(USR_SCHUMACHER_INC_DIR): $(USR_SCHUMACHER_DIR)
+ -$(INS.dir.root.bin)
+
+$(USR_SCHUMACHER_SBIN_DIR): $(USR_SCHUMACHER_DIR)
+ -$(INS.dir.root.bin)
+
+$(USR_SCHUMACHER_SBIN_EEPROM): $(USR_SCHUMACHER_SBIN_DIR)
+ $(RM) -r $@; $(SYMLINK) ../../$(PLATFORM)/sbin/eeprom $@ $(CHOWNLINK) $(CHGRPLINK)
+
+$(USR_SCHUMACHER_SBIN_PRTDIAG): $(USR_SCHUMACHER_SBIN_DIR)
+ $(RM) -r $@; $(SYMLINK) ../../$(PLATFORM)/sbin/prtdiag $@ $(CHOWNLINK) $(CHGRPLINK)
+
+$(USR_SCHUMACHER_SBIN_TRAPSTAT): $(USR_SCHUMACHER_SBIN_DIR)
+ $(RM) -r $@; $(SYMLINK) ../../$(PLATFORM)/sbin/trapstat $@ $(CHOWNLINK) $(CHGRPLINK)
+
+$(USR_SCHUMACHER_SBIN_FRUADM): $(USR_SCHUMACHER_SBIN_DIR)
+ $(RM) -r $@; $(SYMLINK) ../../$(PLATFORM)/sbin/fruadm $@ $(CHOWNLINK) $(CHGRPLINK)
+
+$(USR_SCHUMACHER_LIB_DIR): $(USR_SCHUMACHER_DIR)
+ -$(INS.dir.root.bin)
+
+$(USR_SCHUMACHER_ISYS_DIR): $(USR_SCHUMACHER_INC_DIR)
+ -$(INS.dir.bin.bin)
+
+$(ROOT_SCHUMACHER_MOD_DIR)/%: $(OBJS_DIR)/% $(ROOT_SCHUMACHER_MOD_DIR)
+ $(INS.file)
+
+$(ROOT_SCHUMACHER_MISC_DIR)/%: $(OBJS_DIR)/% $(ROOT_SCHUMACHER_MISC_DIR)
+ $(INS.file)
+
+$(ROOT_SCHUMACHER_DRV_DIR)/%: $(OBJS_DIR)/% $(ROOT_SCHUMACHER_DRV_DIR)
+ $(INS.file)
+
+#
+# Include common targets.
+#
+include $(UTSBASE)/sun4u/schumacher/Makefile.rules
+include $(UTSBASE)/sun4u/Makefile.targ
diff --git a/usr/src/uts/sun4u/schumacher/os/schumacher.c b/usr/src/uts/sun4u/schumacher/os/schumacher.c
new file mode 100644
index 0000000000..e6800cfd04
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/os/schumacher.c
@@ -0,0 +1,370 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/sysmacros.h>
+#include <sys/sunddi.h>
+#include <sys/esunddi.h>
+#include <sys/platform_module.h>
+#include <sys/errno.h>
+#include <sys/lgrp.h>
+#include <sys/memnode.h>
+#include <sys/promif.h>
+
+int (*p2get_mem_unum)(int, uint64_t, char *, int, int *);
+
+void
+startup_platform(void)
+{
+}
+
+int
+set_platform_tsb_spares()
+{
+ return (0);
+}
+
+void
+set_platform_defaults(void)
+{
+}
+
+/*
+ * Definitions for accessing the pci config space of the isa node
+ * of Southbridge.
+ */
+#define SCHUMACHER_ISA_PATHNAME "/pci@1e,600000/isa@7"
+static ddi_acc_handle_t isa_handle; /* handle for isa pci space */
+
+
+void
+load_platform_drivers(void)
+{
+ dev_info_t *dip; /* dip of the isa driver */
+
+ /*
+ * Install 'us' driver.
+ */
+ (void) i_ddi_attach_hw_nodes("us");
+
+ /*
+ * mc-us3i must stay loaded for plat_get_mem_unum()
+ */
+ if (i_ddi_attach_hw_nodes("mc-us3i") != DDI_SUCCESS)
+ cmn_err(CE_WARN, "mc-us3i driver failed to install");
+ (void) ddi_hold_driver(ddi_name_to_major("mc-us3i"));
+
+ /*
+ * Install Isa driver. This is required for the southbridge IDE
+ * workaround - to reset the IDE channel during IDE bus reset.
+ * Panic the system in case ISA driver could not be loaded or
+ * any problem in accessing its pci config space. Since the register
+ * to reset the channel for IDE is in ISA config space!.
+ */
+
+ dip = e_ddi_hold_devi_by_path(SCHUMACHER_ISA_PATHNAME, 0);
+ if (dip == NULL) {
+ cmn_err(CE_PANIC, "Could not install the isa driver\n");
+ return;
+ }
+
+ if (pci_config_setup(dip, &isa_handle) != DDI_SUCCESS) {
+ cmn_err(CE_PANIC, "Could not get the config space of isa\n");
+ return;
+ }
+}
+
+/*
+ * This routine provides a workaround for a bug in the SB chip which
+ * can cause data corruption. Will be invoked from the IDE HBA driver for
+ * Acer SouthBridge at the time of IDE bus reset.
+ */
+/*ARGSUSED*/
+int
+plat_ide_chipreset(dev_info_t *dip, int chno)
+{
+ uint8_t val;
+ int ret = DDI_SUCCESS;
+
+ if (isa_handle == NULL) {
+ return (DDI_FAILURE);
+ }
+
+ val = pci_config_get8(isa_handle, 0x58);
+ /*
+ * The dip passed as the argument is not used here.
+ * This will be needed for platforms which have multiple on-board SB,
+ * The dip passed will be used to match the corresponding ISA node.
+ */
+ switch (chno) {
+ case 0:
+ /*
+ * First disable the primary channel then re-enable it.
+ * As per ALI no wait should be required in between have
+ * given 1ms delay in between to be on safer side.
+ * bit 2 of register 0x58 when 0 disable the channel 0.
+ * bit 2 of register 0x58 when 1 enables the channel 0.
+ */
+ pci_config_put8(isa_handle, 0x58, val & 0xFB);
+ drv_usecwait(1000);
+ pci_config_put8(isa_handle, 0x58, val);
+ break;
+ case 1:
+ /*
+ * bit 3 of register 0x58 when 0 disable the channel 1.
+ * bit 3 of register 0x58 when 1 enables the channel 1.
+ */
+ pci_config_put8(isa_handle, 0x58, val & 0xF7);
+ drv_usecwait(1000);
+ pci_config_put8(isa_handle, 0x58, val);
+ break;
+ default:
+ /*
+ * Unknown channel number passed. Return failure.
+ */
+ ret = DDI_FAILURE;
+ }
+
+ return (ret);
+}
+
+
+/*ARGSUSED*/
+int
+plat_cpu_poweron(struct cpu *cp)
+{
+ return (ENOTSUP); /* not supported on this platform */
+}
+
+/*ARGSUSED*/
+int
+plat_cpu_poweroff(struct cpu *cp)
+{
+ return (ENOTSUP); /* not supported on this platform */
+}
+
+/*ARGSUSED*/
+void
+plat_freelist_process(int mnode)
+{
+}
+
+char *platform_module_list[] = {
+ (char *)0
+};
+
+/*ARGSUSED*/
+void
+plat_tod_fault(enum tod_fault_type tod_bad)
+{
+}
+
+/*ARGSUSED*/
+int
+plat_get_mem_unum(int synd_code, uint64_t flt_addr, int flt_bus_id,
+ int flt_in_memory, ushort_t flt_status, char *buf, int buflen, int *lenp)
+{
+ if (flt_in_memory && (p2get_mem_unum != NULL))
+ return (p2get_mem_unum(synd_code, P2ALIGN(flt_addr, 8),
+ buf, buflen, lenp));
+ else
+ return (ENOTSUP);
+}
+
+/*ARGSUSED*/
+int
+plat_get_cpu_unum(int cpuid, char *buf, int buflen, int *lenp)
+{
+ if (snprintf(buf, buflen, "MB") >= buflen) {
+ return (ENOSPC);
+ } else {
+ *lenp = strlen(buf);
+ return (0);
+ }
+}
+
+/*
+ * Fiesta support for lgroups.
+ *
+ * On fiesta platform, an lgroup platform handle == CPU id
+ */
+
+/*
+ * Macro for extracting the CPU number from the CPU id
+ */
+#define CPUID_TO_LGRP(id) ((id) & 0x7)
+#define SCHUMACHER_MC_SHIFT 36
+
+/*
+ * Return the platform handle for the lgroup containing the given CPU
+ */
+lgrp_handle_t
+plat_lgrp_cpu_to_hand(processorid_t id)
+{
+ return (CPUID_TO_LGRP(id));
+}
+
+/*
+ * Platform specific lgroup initialization
+ */
+void
+plat_lgrp_init(void)
+{
+ dnode_t curnode;
+ char tmp_name[MAXSYSNAME];
+ int portid;
+ int cpucnt = 0;
+ int max_portid = -1;
+ extern uint32_t lgrp_expand_proc_thresh;
+ extern uint32_t lgrp_expand_proc_diff;
+ extern pgcnt_t lgrp_mem_free_thresh;
+ extern uint32_t lgrp_loadavg_tolerance;
+ extern uint32_t lgrp_loadavg_max_effect;
+ extern uint32_t lgrp_load_thresh;
+ extern lgrp_mem_policy_t lgrp_mem_policy_root;
+
+ /*
+ * Count the number of CPUs installed to determine if
+ * NUMA optimization should be enabled or not.
+ *
+ * All CPU nodes reside in the root node and have a
+ * device type "cpu".
+ */
+ curnode = prom_rootnode();
+ for (curnode = prom_childnode(curnode); curnode;
+ curnode = prom_nextnode(curnode)) {
+ bzero(tmp_name, MAXSYSNAME);
+ if (prom_getprop(curnode, OBP_NAME, (caddr_t)tmp_name) == -1 ||
+ prom_getprop(curnode, OBP_DEVICETYPE, tmp_name) == -1 ||
+ strcmp(tmp_name, "cpu") != 0)
+ continue;
+
+ cpucnt++;
+ if (prom_getprop(curnode, "portid", (caddr_t)&portid) != -1 &&
+ portid > max_portid)
+ max_portid = portid;
+ }
+ if (cpucnt <= 1)
+ max_mem_nodes = 1;
+ else if (max_portid >= 0 && max_portid < MAX_MEM_NODES)
+ max_mem_nodes = max_portid + 1;
+
+ /*
+ * Set tuneables for fiesta architecture
+ *
+ * lgrp_expand_proc_thresh is the minimum load on the lgroups
+ * this process is currently running on before considering
+ * expanding threads to another lgroup.
+ *
+ * lgrp_expand_proc_diff determines how much less the remote lgroup
+ * must be loaded before expanding to it.
+ *
+ * Optimize for memory bandwidth by spreading multi-threaded
+ * program to different lgroups.
+ */
+ lgrp_expand_proc_thresh = lgrp_loadavg_max_effect - 1;
+ lgrp_expand_proc_diff = lgrp_loadavg_max_effect / 2;
+ lgrp_loadavg_tolerance = lgrp_loadavg_max_effect / 2;
+ lgrp_mem_free_thresh = 1; /* home lgrp must have some memory */
+ lgrp_expand_proc_thresh = lgrp_loadavg_max_effect - 1;
+ lgrp_mem_policy_root = LGRP_MEM_POLICY_NEXT;
+ lgrp_load_thresh = 0;
+
+ mem_node_pfn_shift = SCHUMACHER_MC_SHIFT - MMU_PAGESHIFT;
+}
+
+/*
+ * Return latency between "from" and "to" lgroups
+ *
+ * This latency number can only be used for relative comparison
+ * between lgroups on the running system, cannot be used across platforms,
+ * and may not reflect the actual latency. It is platform and implementation
+ * specific, so platform gets to decide its value. It would be nice if the
+ * number was at least proportional to make comparisons more meaningful though.
+ * NOTE: The numbers below are supposed to be load latencies for uncached
+ * memory divided by 10.
+ */
+int
+plat_lgrp_latency(lgrp_handle_t from, lgrp_handle_t to)
+{
+ /*
+ * Return remote latency when there are more than two lgroups
+ * (root and child) and getting latency between two different
+ * lgroups or root is involved
+ */
+ if (lgrp_optimizations() && (from != to ||
+ from == LGRP_DEFAULT_HANDLE || to == LGRP_DEFAULT_HANDLE))
+ return (17);
+ else
+ return (12);
+}
+
+int
+plat_pfn_to_mem_node(pfn_t pfn)
+{
+ ASSERT(max_mem_nodes > 1);
+ return (pfn >> mem_node_pfn_shift);
+}
+
+/*
+ * Assign memnode to lgroups
+ */
+void
+plat_fill_mc(dnode_t nodeid)
+{
+ int portid;
+
+ /*
+ * Schumacher memory controller portid == global CPU id
+ */
+ if ((prom_getprop(nodeid, "portid", (caddr_t)&portid) == -1) ||
+ (portid < 0))
+ return;
+
+ if (portid < max_mem_nodes)
+ plat_assign_lgrphand_to_mem_node(portid, portid);
+}
+
+/* ARGSUSED */
+void
+plat_build_mem_nodes(u_longlong_t *list, size_t nelems)
+{
+ size_t elem;
+ pfn_t basepfn;
+ pgcnt_t npgs;
+
+ /*
+ * Boot install lists are arranged <addr, len>, <addr, len>, ...
+ */
+ for (elem = 0; elem < nelems; elem += 2) {
+ basepfn = btop(list[elem]);
+ npgs = btop(list[elem+1]);
+ mem_node_add_slice(basepfn, basepfn + npgs - 1);
+ }
+}
diff --git a/usr/src/uts/sun4u/schumacher/platmod/Makefile b/usr/src/uts/sun4u/schumacher/platmod/Makefile
new file mode 100644
index 0000000000..f658659bf3
--- /dev/null
+++ b/usr/src/uts/sun4u/schumacher/platmod/Makefile
@@ -0,0 +1,108 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#pragma ident "%Z%%M% %I% %E% SMI"
+#
+# uts/sun4u/schumacher/platmod/Makefile
+#
+# This makefile drives the production of the sun4u schumacher platform module.
+#
+# sun4u implementation architecture dependent
+#
+
+#
+# Path to the base of the uts directory tree (usually /usr/src/uts).
+#
+UTSBASE = ../../..
+
+#
+# Define the module and object file sets.
+#
+MODULE = platmod
+OBJECTS = $(SCHUMACHER_OBJS:%=$(OBJS_DIR)/%)
+LINTS = $(SCHUMACHER_OBJS:%.o=$(LINTS_DIR)/%.ln)
+ROOTMODULE = $(ROOT_SCHUMACHER_MISC_DIR)/$(MODULE)
+
+PLAT_DIR = .
+HERE = ../schumacher/platmod
+
+#
+# Include common rules.
+#
+include $(UTSBASE)/sun4u/schumacher/Makefile.schumacher
+
+#
+# Override defaults
+#
+CLEANFILES += $(PLATLIB) $(SYM_MOD)
+
+#
+# Define targets
+#
+ALL_TARGET = $(SYM_MOD)
+LINT_TARGET = $(MODULE).lint
+INSTALL_TARGET = $(BINARY) $(ROOTMODULE)
+
+#
+# lint pass one enforcement
+#
+CFLAGS += $(CCVERBOSE)
+
+#
+# Default build targets.
+#
+.KEEP_STATE:
+
+def: $(DEF_DEPS)
+
+all: $(ALL_DEPS)
+
+clean: $(CLEAN_DEPS)
+
+clobber: $(CLOBBER_DEPS)
+
+lint: $(LINT_DEPS)
+
+modlintlib: $(MODLINTLIB_DEPS)
+
+clean.lint: $(CLEAN_LINT_DEPS)
+
+install: $(INSTALL_DEPS)
+
+check:
+
+LINT_LIB_DIR = $(SCHUMACHER_LINT_LIB_DIR)
+
+$(PLATLIB): $(BINARY)
+ ${LD} -o $(PLATLIB) -G $(BINARY)
+
+$(SYM_MOD): $(UNIX_O) $(PLATLIB)
+ @echo "resolving symbols against unix.o"
+ @(cd $(UNIX_DIR); pwd; \
+ PLAT_DIR=$(HERE) SYM_MOD=$(HERE)/$(SYM_MOD) $(MAKE) symcheck)
+
+#
+# Include common targets.
+#
+include $(UTSBASE)/sun4u/schumacher/Makefile.targ