Subject: Re: Support for new hardware in NetBSD 2.0?
To: Bruce O'Neel <edoneel@sdf.lonestar.org>
From: Nyef <nyef@softhome.net>
List: port-mac68k
Date: 04/20/2004 13:17:07
On Tue, Apr 20, 2004 at 03:10:45PM +0000, Bruce O'Neel wrote:
> Hi,
> 
> I don't think the floppy has been solved.  I seem to remember that
> some docs were released that would explain how the hardware worked,
> but, no one actually did the work.

It's actually a little more complex than that.

Some people actually have the official Apple documentaion, but have
been asked not to distribute it too widely. Haven't heard much from
them about actual floppy drivers, though. I think maybe they have
lives or something. ;-)

I, some time ago, did my own research and wrote up the documentation
that is at http://www.dridus.com/~nyef/documents/swimnotes.txt (but
is now a little out of date as I learned some stuff since then).

I also tried to write a floppy driver (the code for which is around
-somewhere-, but I forget where). It involved a major restructuring
of the IWM driver to work in support for the SWIM chips and so on,
but while I didn't break the IWM support (or the 800k disk support)
I never did get it to read the address mark from a 1.44 meg disk.

This was some time ago. Specifically, it was before 1.6. Problem
is, trying to do this sort of development on an '030 is rather
frustrating, especially when you don't know exactly what's going
wrong, and trying to figure out how the hardware worked by poking
at it with Pocket Forth wasn't going very well...

Anyway, there things stayed for a while. Then I got the bright idea
of taking the IOP code from the universal ROMs and using -that- and
a 6502 emulator to get a look at the SWIM chip from another angle.
Looking at the emulator code, I had gotten part of the interface
for communicating with the host working, and the SWIM initialized
by the control code, but hadn't gotten much beyond that. I also have
some unreleased documentation on the IOP interfaces based on the
IOP interface code in the Linux kernel, the IOP code (what little
of it there is) in the NetBSD kernel, and my own investigations.

I think what it amounts to is that the people with the real docs
are too busy with other stuff, and I occasionally take a stab at it
but keep losing interest and moving on to other stuff, and nobody
else has really been attacking the problem (hey, sort of like the
standalone boot stuff, which I still have to tidy up and release).

I'm getting the impression, however, that whatever happens we've
missed the window for getting this stuff into 2.0, even if
everything is figured out and made working over the course of the
next week (which probably isn't going to happen even if we haven't
missed that window).

--Alastair Bridgewater