Subject: New Sun4m release available
To: None <port-sparc@NetBSD.ORG>
From: Aaron Brown <abrown@eecs.harvard.edu>
List: port-sparc
Date: 03/30/1996 10:08:53
Hi all,

There's a new release of the sun4m port available. This one is an "official"
release, so it is redistributable under a normal Berkeley-style copyright.
I've attached the readme below; note that the SS5 is probably still not
supported since dealing with the quirks of the microSPARC-II (and many 
other sun4m variants not yet supported) will require rewriting the CPU
detection code and modifying much of the rest of the port to match.

This release does fix a bunch of bugs and is stable on the SS20 I use
to test it. It will be integrated into the NetBSD master tree in the near
future. In the meantime, it is at 
ftp://rioja.eecs.harvard.edu/pub/NetBSD-Sun4M/

--Aaron
abrown@eecs.harvard.edu

-------------------------

NetBSD/Sparc-Sun4m (Sun4m release 1.0)
======================================

PLEASE READ THIS ENTIRE FILE BEFORE USING THE SUN4M PORT!

Contents:
    1. Introduction
    2. Supported systems
    3. Known bugs and unresolved issues
    4. Installation and use
    5. Copyright and disclaimer
    


1. INTRODUCTION
=-------------=

This archive file contains source code for a port of NetBSD/sparc to
the Sun4m system architecture. The port supports only the
uniprocessing versions of the the Sun4m architecture; only one
processor will be enabled if a multiprocessing variant of the
architecture is detected. This port was developed by Aaron Brown at
Harvard University with the support of Margo Seltzer; it owes its
existance to the support and generosity of Sun Microsystems.

Bug reports and other comments should be sent to abrown@eecs.harvard.edu.


2. SUPPORTED SYSTEMS
=------------------=

This port is designed to work on SPARC-based systems conforming to the
Sun4m architecture specifications. This includes systems based on the
MicroSPARC, MicroSPARC-II, SuperSPARC, SuperSPARC-II, and HyperSPARC
CPUs. Not all of these processor types have been tested or are
currently supported.

The port has been tested on and is known to work on the following machines:
	- Sun SPARCstation-20 with SuperSPARC-II processor and 
	  MXCC 1MB L2 cache
	- Sun SPARCclassic and SPARCstation LX (MicroSPARC-I) machines

The port has support for SuperSPARC-I, HyperSPARC, and MicroSPARC-II
based machines, but the code has not been tested due to a lack of
appropriate machines and is most likely buggy.

At this time, the microSPARC-II support is known to be incomplete and
buggy, and thus it is unlikely that the port will work on a
SPARCstation 5 at the present time. I hope to put out a new release
shortly in which microSPARC-II support is working; this will require
an overhaul of the CPU detection state and code.

The port currently only supports uniprocessor execution. Code is in
place to allow it to boot on a multiprocessor machine (it attempts to
disable all but the primary processor), but again this support has not
yet been tested.


3. KNOWN BUGS AND UNRESOLVED ISSUES
=---------------------------------=

Other than the lack of support for certain processor types, there are
only two known bugs in the port:

	* Under high network load, the ethernet (ledma) tends to generate
	  a flood of spurious interrupts. There is a workaround in place
	  to automatically ignore these interrupts, but there is a chance
	  of packet loss under high load.

	* On some microSPARC-I systems, there have been reports of early
	  crashes with an assertion failure in the context-management 
	  portion of the pmap module. I have been unable to reproduce this
	  bug on my SuperSPARC system.

Work is continuing to to try to fix these bugs.

There are several unresolved issues in this port. The most notable is the 
lack of support for certain processor types. I have most of the information
necessary to add support for these processors. However, the code will require
a significant overhaul of the CPU detection and attachment code as well as
new structures to maintain CPU capability information; the rest of the port
will have to be modified to use these new structures. Work on this is 
beginning, and I plan to produce another release in the future in which this
support is included.

Support for a generic kernel that supports machines with Sun4, Sun4c, and 
Sun4m architectures is included but largely untested. Work to produce such
a generic kernel is underway and will probably be completed as this port is
merged into the master NetBSD source tree.


4. INSTALLATION AND USE
=---------------------=

This archive contains a complete /sys/arch/sparc subtree and a few other files
from other parts of the source tree (src/lib/libkvm, /sys/vm). It is based
on NetBSD-current (1.1B) from 25 March 1996, and requires the NetBSD-current
source tree to compile.

To build the port:
	 1) You must have a copy of a recent NetBSD-current, as close to 
	    25 March 1996 as possible. It must be version 1.1B of NetBSD.
	 2) Extract the included tar file in the parent directory of your
	    source tree. It will replace the necessary MI files and the
	    sparc architecture-dependent directory
	 3) Build a new config file in /sys/arch/sparc/conf, using the 
	    VIRTUAL4 config file as a guide (this is the most up-to-date
	    Sun4m configuration file)
	 4) Run config on your new config file
	 5) Change to your compile directory, make depend, and make
	 6) You will now have a Sun4m kernel in "netbsd".
	 7) Install bootblocks and the new kernel on your target machine.
	    The port will work with SunOS 4.x (Solaris 1.x) bootblocks, but
	    WILL NOT work with Solaris 2.x bootblocks. NetBSD bootblocks may
	    or may not work depending on the machine type. See the standard
	    NetBSD/sparc installation guide for assistance.
	 8) Install the standard NetBSD/sparc user programs from a working
	    -current system or a binary snapshot (see the NetBSD installation
	    guide for assistance)
	 9) Put your newly built kernel in the root directory and reboot
	10) Rebuild libkvm and any statically-linked programs which depend
	    on it (like ps).

A binary kernel snapshot will be made available shortly for those who do
not have working NetBSD/sparc machines to compile a kernel (note that you
do not need a Sun4m machine to build a Sun4m kernel).


5. COPYRIGHT AND DISCLAIMER
=-------------------------=

Copyright (c) 1996 The President and Fellows of Harvard University. 
All rights reserved.

This product includes software developed by the University of
California, Lawrence Berkeley Laboratory.
 
This product includes software developed by Harvard University.
This product includes software developed by Aaron Brown.
This product includes software developed by Theo de Raadt.
This product includes software developed by Paul Kranenburg.

Portions of this product are Copyright (c) 1992, 1993 The Regents of the
University of California. All rights reserved.
 
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
     This product includes software developed by the University of
     California, Berkeley and its contributors.
     This product includes software developed by Harvard University and its
     contributors.
4. Neither the name of the University nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.