project active?

juli mallett jmallett at FreeBSD.org
Fri Jun 24 17:00:37 GMT 2005


* "OgnenD." <ognen at daocomputing.com> [ Date: 2005-06-24 ]
	[ w.r.t. Re: project active? ]
> juli mallett wrote:
> >* "OgnenD." <ognen at daocomputing.com> [ Date: 2005-06-24 ]
> >	[ w.r.t. project active? ]
> >>Hi, is this project still active? What is the best/fastest way to look 
> >>into what has been done so far?
> >I'm the only person who's ever been seriously working on it, and I
> >have a serious lack of time.  It's effectively inactive right now.
> >If you want an old source code drop, I can tar one up, if you're
> >seriously interested, and explain what's there and what's not.
>
> Hi, I am interested. Any help would be appreciated.

OK, well here's my src tree:
	http://lafalafu.com/FreeBSD/MIPS/mips-2005-06-24.tgz

Here's a script I use to rebuild everything for an INDY:
%%%
#! /bin/csh

setenv SRCROOT ${HOME}/FreeBSD/p4/mips
setenv TARGET_ARCH mips
setenv TARGET sgimips
setenv MAKEOBJDIRPREFIX ${HOME}/FreeBSD/mips.build
setenv COPTFLAGS ''
setenv KERNCONF INDY

cd ${SRCROOT}
sudo make buildworld >& ${HOME}/FreeBSD/mips.buildworld.log
sudo make buildkernel >& ${HOME}/FreeBSD/mips.buildkernel.log
%%%

That will leave a kernel built in my $HOME/FreeBSD/mips.build/sgimips/$HOME/FreeBSD/p4/mips/sys/INDY

That's a tar of the "mips" directory in ~/FreeBSD/p4.  Adjust paths accordingly.

The kernel:
	o) Should run in mips64emul and on an Indy or Indigo2.
	o) Doesn't support caches and runs uncached.
	o) Lacks device drivers.
	o) Doesn't have completed userland support.

I'd really like to see a simple mips64emul (now GXemul, I guess) machine which
supported PIO-based serial console and networking.  That'd be enough to get a
very simple machine port working that'd be good for getting everything finished.

I ended up spending all my time making attempts to support SGI hardware without
enough time to finish any job.

Some notes:
	o) I've tried to avoid using NetBSD code.
		-) The NetBSD code is all very old and crufty.
		-) NetBSD is committed to supporting MIPS1 and all that
		   nonsense.  I only support MIPS3 and up.  This means
		   only 64-bit.  I don't care to support MIPS32.  In theory,
		   the new MIPS32 chips are MIPS3-like, though, with smaller
		   address spaces and such.  It would be easy to add ifdefs
		   for them, but I think it'd be stupid to try to support
	           everything too early.
	o) I've only looked at the OpenBSD code when someone told me that it
	   was 64-bit, and not based on NetBSD in parts.  I found that their
	   TLB stuff is ripped off from NetBSD without attribution, with
	   comments intact, and the 64-bit support is hackish.
	o) I've tried to do things cleanly, in a way that will expand to support
	   a lot of hardware architectures on top of the base CPU port.

Oh, actually, an aside.  Changes to Binutils and GCC gave me a hard time to
continue building 32-bit ELF with 64-bit code.  So now I build 64-bit kernels.
For real Indys and Indigo2s, you'd want to build a 32-bit laoder which could
load the ELF64.  So the kernels should run on real hardware *if you can load
them.*

I stripped out everything I wasn't actively testing, to try and make it easier
to reshuffle code and such, so you'd prolly need to add code for recognizing
the CPUs in question to the mips_wtf() code.

Anyway, hope this helps, I'll be glad to answer further questions and help
anyone who has time to work on it.  As an aside, if anyone wants to employ me
to work on it, drop me a line, I still have a real attachment to the idea of
getting this done (and done right) some day :)

Thanx,
juli.
-- 
juli mallett.  "It's called love and somehow it's become unmentionable."
               -- New Order - Thieves Like Us


More information about the freebsd-mips mailing list