Subject: Unbelievable: Sun supports FreeBSD-sparc port for Ultra.
To: None <port-sparc@NetBSD.ORG>
From: Yuri Gindin <yuri@xpert.com>
List: port-sparc
Date: 12/16/1997 23:01:30
Hello,
I just got it from new list freebsd-sparc.
Sorry if it is very long, but it may be interesting for you.
--Yuri.

---------- Forwarded message ----------
Date: Tue, 16 Dec 1997 23:52:43 +1000 (EST)
From: Dale Walker <dale@icr.com.au>
To: freebsd-sparc@freebsd.org
Subject: FAQ FreeBSD-Sparc [frequent posting]

=============================================================================
FreeBSD-sparc FAQ [ frequent Posting ]                 Latest copy: 971216.01
=============================================================================
Legalese:
The following article contains the answers to some Frequently Asked
Questions often seen in the freebsd-sparc mailing list.  Please don't 
ask these questions again, they've been answered plenty of times already - 
and please don't flame someone just because they may not have read this 
particular posting.  Thank you.

All information here has been contributed with good intentions, but
none of it is guaranteed either by the contributors or myself to be
accurate.  The users of this information take all responsibility for
any damage that may occur.

Initially the answers to questions contributed will be verbatim from 
the mail archives, and credit will be given to author(s).  With 
subsequent updates to the FAQ, these answers will be re-structured to 
give an informative "third-party" view.
=============================================================================
Contents:
The following questions are answered:
Q.1.) What is the Status of the FreeBSD-sparc project
Q.2.) Can I run the port on machine XXX?
Q.3.) Why not start from NetBSD/OpenBSD?
Q.4.) Who is in charge of the port?
Q.5.) What platforms are being targeted for the port?
Q.6.) What development environment is being used?
Q.7.) How can I contribute code (logistics)?
Q.8.) When will the code be merged into -current?
Q.9.) Will your (Sun's) work be released to the FreeBSD community?
Q.10.) What's the general plan of attack?
Q.11.) What hardware do I need to be able to help?
Q.12.) Where can I purchase a machine suitable for the current porting
Q.13.) When will the port be done?
Q.14.) Why are you working on this when you lack so much background?
Q.15.) Where can I get up to date information about the state of the port?
Q.16.) What is the state of the FAQ?

=============================================================================
Q.1.) What is the Status of the FreeBSD-sparc project

Answered by Jason Evans (jasone@cannonware.com).

The SPARC port is in its infancy.  How infant?  No code has been written
yet (though that will change this week).  

Here's a short history of what led up to this porting effort.  Sun
Microelectronics (SME) is the part of Sun that makes microprocessors.  Up
to now, SMCC (the part of Sun that makes workstations) has been the
overwhelmingly primary customer of SME.  SME naturally wants to expand its
sales, and to do that, they need to sell CPUs to people outside of Sun.
FreeBSD is perceived as being a way of accomplishing this.

To understand why Sun could fund a FreeBSD port, which would seem to
conflict with Sun's Solaris offerings, you need to realize that Sun is
broken up into separate business units that often _compete_ with each
other.  The Solaris people at Sun may not like having a FreeBSD port to
compete with, but their power to prevent it is somewhat diminished due to
the business model.  Of course, if the FreeBSD port were a major threat,
SMI (the main Sun umbrella company) would put a stop to it.  However, this
is unlikely, since FreeBSD mostly meets the needs of a different market
sector than Solaris.  Solaris does wonderful things on big MP servers. 
FreeBSD is fast and lean for small servers.  It is also useful for certain
types of embedded applications, which is actually the main reason SME is
interested in seeing a port of FreeBSD to SPARC. 

A while back, SME approached FreeBSD core and offered monetary
compensation of some nature (I don't know the details) in exchange for an
official UltraSPARC port. FreeBSD core turned down this offer.  Once
again, I don't know details, but one of the main statements made (actually
somewhat inferred) by Jordan Hubbard was that SME's offer was not of major
interest since to be of long term use to FreeBSD, such a proposal would
need to include support for a number of years from someone internal to
Sun. 

Jordan's statement makes a great deal of sense.  I've traced down
documentation in preparation for this port that people external to Sun
would have had a difficult, perhaps impossible time procuring.  Without
such access, it is very difficult to make continual progress on such a
project.

Now it's time to mingle some of my background into this narrative.  I
started working at SME about 3 months ago.  During my first week I caught
wind of the negotiations SME was making with FreeBSD core.  I expressed
extreme interest in working on the project.  Through a bit of persistence
(and the failure of the proposal made by SME) I was given permission to
begin work on the port.

My other duties at SME include finding information for software vendors
who are porting their OSes/RTOSes to the UltraSPARC.  This puts me in a
good position to gather hardware information pertinent to the FreeBSD
port.

So here's the catch.  I have access to documentation, a machine to develop
on, but very little low level OS or hardware experience.  I learn quickly,
but I've got a lot to learn.  Already several people have been able to
help me grasp concepts that are key to porting FreeBSD, but there is much,
much more to learn.

So, I can use the following types of help (not exclusively, of course):

1) Answer my questions about kernel and hardware details.  For example, I
have documentation on the MMU, but have never actually dealt with one, so
John Dyson has volunteered to get me through the rough spots having to do
with memory management, as well as discussing design issues due to the
difference in nature between PCs and Suns. 

2) Actually write code.  I'll get to some important details about
this later on in this email.

3) Various administrative things, such as a web page, bug tracking,
   FAQ, etc.

4) Whatever you can do to help.


=============================================================================
Q.2.) Can I run the port on machine XXX?

Answered by Jason Evans (jasone@cannonware.com).

Well, right now the answer is, without a doubt, no.  Coding is just on the
verge of beginning.  In the longer term though, you will probably have
better luck running the port on UltraSPARCs, unless I get lots of help for
the other processors.

Ian Logan _really_ wants to see this run on 4m machines, and will likely
aid in coding.  If there are enough others, or if Ian works hard enough,
the port will include support for the older machines.  Such efforts are
not my primary objective, but I'm totally supportive of any progress made.

=============================================================================
Q.3.) Why not start from NetBSD/OpenBSD?

Answered by Jason Evans (jasone@cannonware.com).

There are multiple answers to this:

1) SME specifically wants a FreeBSD port because that's what potential
   customers have been clamoring for.

2) I'm particularly attached to FreeBSD, but don't like supporting Intel
   (both because of their business practices and because of the quality of
   their products).

=============================================================================
Q.4.) Who is in charge of the port?

Answered by Jason Evans (jasone@cannonware.com).

Well, I (Jason Evans, jasone@canonware.com) initiated the port.  This
doesn't exactly make me in charge, but you can bet that I'll constantly
have my hands dirty working on it.

=============================================================================
Q.5.) What platforms are being targeted for the port?

Answered by Jason Evans (jasone@cannonware.com).

SME is particularly interested in having the port work on the UltraSPARC.
That leaves out the 4m, 4c, etc. (I haven't been around for a terribly
long time, so I don't even have it straight in my mind what all there is).

My work is going to concentrate on the UltraSPARC, which is a 64 bit
processor.

=============================================================================
Q.6.) What development environment is being used?

Answered by Jason Evans (jasone@cannonware.com).

I'm hoping to use gcc under Solaris and/or FreeBSD.  The V9 version of gcc
should be ready (from Cygnus) within the next week.  This is going to be a
source of initial problems, since I'll be the first one to use the
compiler and will no doubt run into bugs.  If the problems are too extreme
I may back off and try to get some real work done using the standard gcc
while pounding on the V9 port so that Cygnus has some feedback.

=============================================================================
Q.7.) How can I contribute code (logistics)?

Answered by Jason Evans (jasone@cannonware.com).

Well, here's the plan.  I'm hoping to maintain a source tree that tracks
-current at the same time as allowing people to commit changes.  This is
going to be tricky since CVSup hasn't ever been used exactly like this
before.  The main problem is keeping updates from freebsd.org from
clobbering local modifications (version tags need to be dealt with
carefully).  I've gotten some positive feedback from people on whether
this can be done, although clearly the details are going to need hashed
out.

I could really use help in two respects here:

1) If someone is willing to solve the technical challenges outlined above,
   I'd be thrilled.

2) I only have a (dedicated) 28.8 modem connection to the net.  If anyone
   has a location with more bandwidth they're willing to let us use, that
   would be wonderful.

=============================================================================
Q.8.) When will the code be merged into -current?

Answered by Jason Evans (jasone@cannonware.com).

Although there may be small changes committed to -current to facilitate the
port, chances are that we won't merge until after 3.0 has been released.
In preparation for the 3.0 release sometime next spring, we need to be
careful not to introduce code that could cause instability in the release
version.  Hopefully by that time there will be a lot of work done that can
be merged.

=============================================================================
Q.9.) Will your (Sun's) work be released to the FreeBSD community?

Answered by Jason Evans (jasone@cannonware.com).

Absolutely, yes, and on an ongoing basis.  Have no fear of my work being
yanked.

=============================================================================
Q.10.) What's the general plan of attack?

Answered by Jason Evans (jasone@cannonware.com).

Briefly, the first challenge is to get the kernel to build using a
cross-platform development environment.  Next we need a working console
driver and a completely stripped down kernel to get the kernel to load
and initialize itself.  There are a number of areas that are going to take
a lot of work to make even this much happen.  

There is talk of a source tree restructuring, but my feeling is that we
should put this off as long as possible, so that when we do it, we have a
good idea of what we're trying to achieve. 

The memory subsystem will need to be ripped to shreds and put back
together.

There is discussion of how to make bus interfaces abstracted in the kernel.

Assumptions about the size of int will need fixed.

There are many, many things to do.  Exactly what order they need to be
done in isn't completely clear yet, but we'll manage somehow.

=============================================================================
Q.11.) What hardware do I need to be able to help?

Answered by Jason Evans (jasone@cannonware.com).

Pretty much anything can be of use, depending on your goals.  For my
purposes, the following works well.

I'm using a machine based on the UltraAX motherboard.  It has a 167 MHz
processor, PCI bus, EIDE controller, Ethernet adapter, and serial ports on
board.  It has 8 (proprietary) SIMM slots, and memory is 4-way interleaved,
so SIMMs are added in sets of 4 (I have 4 8MB SIMMS).  It is a bit spendy,
but there is a newer version of the motherboard based on the (266 or 300
MHz) UltraSPARC IIi processor currently in beta.  This processor has a
number of things built in (MMU?, PCI chipset?), which makes the cost quite
a bit lower.  This board also has SCSI instead of EIDE built in, so it
will probably be a better choice if any of you are thinking of buying a
board.

=============================================================================
Q.12.) Where can I purchase a machine suitable for the current porting
   efforts?

Answered by Jason Evans (jasone@cannonware.com).

See <URL:http://www.bellmicro.com>.  I successfully ordered machines from
here (for Sun).  They operate a bit differently than PC component vendors,
in that you establish a contact, and then they quote you a price, etc.,
etc..

=============================================================================
Q.13.) When will the port be done?

Answered by Jason Evans (jasone@cannonware.com).

When is a software project ever "done"?  Seriously though, this is a huge
project.  I hope to have a minimal booting kernel a few months from now. 
Past that I don't know what kind of projections to make.  It will really
depend on how much help I get, and what kind of road blocks are
encountered. 

=============================================================================
Q.14.) Why are you working on this when you lack so much background?

Answered by Jason Evans (jasone@cannonware.com).

Because I'm interested in it, and am a major proponent of free software.
I can't imagine a job more fulfilling than doing my part to make FreeBSD a
technologically superior OS (even more so than now).  And as an employee
of SME, I can justify this as a project to sell more processors. =)

=============================================================================
Q.15.) Where can I get up to date information about the state of the port?

Subscribe to the freebsd-sparc@freebsd.org mailing list.  To do so, send a
message to majordomo@freebsd.org with only the text 

subscribe freebsd-sparc

in the message body.  You will receive an email message asking for
confirmation.  Send the "auth" line by itself in the message body to
majordomo@freebsd.org (not freebsd-sparc!). 

=============================================================================
Q.16.) What is the state of the FAQ?

The FAQ is currently under heavy development, and shortly will be available via ftp and http in ascii, postscript and html format.

The FAQ is also regularly posted to freebsd-sparc@freebsd.org

=============================================================================

Feel free to ask for further information, or clarification of anything in
the FAQ.

=============================================================================
If you have suggestions or corrections for any of these answers, please send 
them to to dale@icr.com.au for addition onto the FAQ.
=============================================================================
 Dale Walker                                                 dale@icr.com.au
 Manager/Sysadmin          - ICRnet -        Internet Provision and Services
 Independent Computer Retailers (ICR)                  http://www.icr.com.au
 Ph:+61.7.4636.4625   Fax:+61.7.4636.3513                helpdesk@icr.com.au
=============================================================================