From owner-freebsd-mips@FreeBSD.ORG Fri Jun 24 17:00:37 2005 Return-Path: X-Original-To: freebsd-mips@freebsd.org Delivered-To: freebsd-mips@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6CACE16A41C; Fri, 24 Jun 2005 17:00:37 +0000 (GMT) (envelope-from flata@magnesium.net) Received: from toxic.magnesium.net (toxic.magnesium.net [207.154.84.15]) by mx1.FreeBSD.org (Postfix) with ESMTP id 47F7143D48; Fri, 24 Jun 2005 17:00:37 +0000 (GMT) (envelope-from flata@magnesium.net) Received: by toxic.magnesium.net (Postfix, from userid 1212) id 2097CDA837; Fri, 24 Jun 2005 10:00:37 -0700 (PDT) Date: Fri, 24 Jun 2005 07:00:37 -1000 From: juli mallett To: "OgnenD." Message-ID: <20050624170037.GA79920@toxic.magnesium.net> References: <42BC126E.1000506@daocomputing.com> <20050624152404.GA75604@toxic.magnesium.net> <42BC262F.3010404@daocomputing.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <42BC262F.3010404@daocomputing.com> User-Agent: Mutt/1.4.1i X-Towel: Yes Cc: juli mallett , freebsd-mips@freebsd.org Subject: Re: project active? X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Jun 2005 17:00:37 -0000 * "OgnenD." [ Date: 2005-06-24 ] [ w.r.t. Re: project active? ] > juli mallett wrote: > >* "OgnenD." [ 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