Date: Mon, 15 Dec 1997 10:54:19 -0800 (PST) From: Jason Evans <jasone@canonware.com> To: "Robert S. Sciuk" <rob@ControlQ.com> Cc: freebsd-sparc@FreeBSD.ORG Subject: State of the SPARC port (Re: Freeloading FreeBSD for Free -- NOT!) Message-ID: <Pine.BSF.3.96.971215083426.6528E-100000@paladio> In-Reply-To: <Pine.UW2.3.96.971215185737.25120P-100000@fatlady.controlq.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 15 Dec 1997, Robert S. Sciuk wrote: > Is there an authoritative voice here to indicate the current state of the > project, and how we (the grateful abusers), can contribute to make this > happen?? Is there a project map?? Running Kernel to start with?? I > understand that OpenBSD (at least) already runs on SPARC (and others) and > could serve as a base for simple device drivers, and boot code ... but I'm > sure I cover known territory ... > How can we help to make a SPARC equivalent to the excellent FreeBSD intel > project??????? What is the current art? There are a bunch of questions here. I'll try to answer them well, and once. As people re-ask these questions, please refer them to this email. 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. Following is a preliminary list of questions and answers. I've been asked several of these questions (multiple times) already. ============================================================================= Q) Can I run the port on machine XXX? 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) Why not start from NetBSD/OpenBSD? There are multiple answers to this: 1) SME specifically wants a FreeBSD port because that's what potential customers have been clammoring 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) Who is in charge of the port? 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) What platforms are being targeted for the port? 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) What development environment is being used? 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) How can I contribute code (logistics)? 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 exacltly 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) When will the code be merged into -current? Although there may be small changes commited 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) Will your (Sun's) work be released to the FreeBSD community? Absolutely, yes, and on an ongoing basis. Have no fear of my work being yanked. ============================================================================= Q) What's the general plan of attack? 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 trytng to achieve. The memory subsystem will need to be ripped to shreds and put back together. There is dicussion 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) What hardware do I need to be able to help? 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, an 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) Where can I purchase a machine suitable for the current porting efforts? 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) When will the port be done? 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) Why are you working on this when you lack so much background? 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) 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!). (Hopefully I didn't make any mistakes here. =) ) ============================================================================= Feel free to ask for further information, or clarification of anything in this email message. Jason Jason Evans Email: [jasone@canonware.com] Home phone: [(650) 856-8204] Work phone: [(408) 774-8007] Quote: ["Invention is 1% inspiration, 99% perspiration" - Thomas Edison]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.971215083426.6528E-100000>