Subject: Getting my PB3400 going
To: None <port-macppc@netbsd.org>
From: Allen Briggs <briggs@netbsd.org>
List: port-macppc
Date: 01/08/2005 00:49:01
My wife used to use a PowerBook 3400 for most of her stuff, but
ended up going to a G3 iBook a while back because of a broken
trackpad and so she could run OS X.  I finally dug the 3400 out,
picked up a used trackpad on Ebay, put that in, and embarked on
getting NetBSD up and running on it.

We didn't have a floppy drive for it, and it took me a little while
to figure out that enet and CD just were not options.  I've just
noted on the model information page that floppy and internal hard
disk are the only options.

After picking up a floppy drive on Ebay, the next challenge was to
get a working floppy boot.  I was trying to write the floppies on
an ia32 system.  This was a mistake.  The old floppy drive really
wanted disks that it had written itself.  I tried several times
and bought new floppies before figuring this out.  So now I have
floppies from several releases to try.  I've updated the install
notes to be more explicit about "READ TIMEOUT@" errors and to
strongly encourage readers to write floppies on the same drive.

No release seems to support the on-board ethernet.  So I dug up
a 3com PCMCIA ethernet card and got 1.6.2 installed.  After
updating ofwboot with installboot "by hand", I started trying
current kernels.  When trying to boot these, the machine was
consistently powering off during autoconfig.  On the serial
console installed, it was getting a 'trap type 0' instead of
powering off.  After a kick in the right direction from Matt
Thomas, I tracked it down to the 'cuda' driver no longer losing
an interrupt.  When the system tried to service an interrupt from
'cuda' with no event pending, the cuda driver was reading 120 bytes
from the device into a variable that had space for 32 bytes.
This very effectively smashed the stack and was the source of
the reset behavior.

I also very quickly hit the "stuck interrupt" condition because
the interrupt mask for the PowerBook 3400 was being set incorrectly.
So I made that code more robust before fixing the interrupt mask.
I also made some cosmetic changes to the mediabay code while poking
around here.

The 3400 couldn't find its boot/root device "<unknown>".  I poked
around at this a little bit, but decided to move on.

Tim has been prodding me to look at a patch he had for dealing with
on-board I/O on later PowerBooks (with two media bays).  I pulled
this out of my mailbox (he sent it to be last month) and started
playing with it.  After a false start, it looks good!  I've committed
that, and it's working well.  In fact, once that was fixed, the
system can find my boot disk!  Happy, happy.

And that's about where things stand now.  The 3com ethernet is working
well at the moment.  If I put a netgear FA410 into the pcmcia slot,
the system shuts down.  If I reboot without doing 'ifconfig ep0 down',
I get a trap in epshutdown.  I have also seen it spontaneously shut
down while probing the disk.  I'm not sure what's up with that.

But it's a lot better than it was a few days ago!

-allen

-- 
                  Use NetBSD!  http://www.netbsd.org/