Subject: RE: New to Alpha & NetBSD, any pointers?
To: None <matt@3am-software.com, port-alpha@netbsd.org>
From: Ross Harvey <ross@teraflop.com>
List: port-alpha
Date: 08/31/1999 13:04:53
> From: "Matt Thomas" <matt@3am-software.com>
>
> > > From: Howard Leadmon <howardl@abs.net>
> > >
> > >    Hello All,
> > >
> > >  Just joined this list a couple hours ago, so sorry if I ask anything
> > > that was recently discussed here..
> > >
> > >  I managed to get my hands on a few 164SX/533 boards, and wanted to 
> > > get a decent UNIX on it instead of NT.  So if I went looking, and got
> > > the SRM console loaded, and even made the install disks for NetBSD, and
> > > loaded the base OS on the 3GB EIDE drive I had sitting here.  So as of
> > > now I have a basic Alpha/NetBSD 1.4.1 kernel up and running.  Here are 
> > > the few issues I have run into..
> > >
> > > First, when I boot from SRM to the hard-drive, everything seems 
> > like it's 
> > > going great.  I see the primary loader run, then the secondary, and it
> > > initializes all the devices.  Finally it goes to mount the root 
> > filesystem
> > > and I get a message like telling me it can't. here is the msg from the 
> > > logs:
> > >
> > > WARNING: can't figure what device matches "IDE 0 108 0 0 0 0 0"
> > 
> > Sigh, SRM has gone back and forth on how it identifies IDE boot devices
> > for that board. Some SRM versions call them SCSI, some IDE, and now it
> > looks like sometimes the device is in the 100s digit and sometimes in the
> > 1000s digit. Maybe the SCSI-happy SRM uses the 4-digit and the IDE-
> > happy SRM uses the 3? Or maybe my quick guess is just wrong...
>
> 0108 is the function (bits 8..15) and device (bits 0..7).
>

Ahh, thanks Matt.

That's the problem, then. The code at line 203 should look like the stuff
I wrote for dec_6600.c.

Howard? Veego? Anyone?  Try this on your ide-booting system, it should fix
the problem without breaking anything...

Index: dec_eb164.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/alpha/alpha/dec_eb164.c,v
retrieving revision 1.29
diff -u -w -r1.29 dec_eb164.c
--- dec_eb164.c	1999/04/15 22:06:48	1.29
+++ dec_eb164.c	1999/08/31 19:57:53
@@ -200,10 +200,10 @@
 		else {
 			struct pci_attach_args *pa = aux;
 
-			if ((b->slot % 1000) != pa->pa_device)
+			if (b->slot % 1000 / 100 != pa->pa_function)
 				return;
-
-			/* XXX function? */
+			if (b->slot % 100 != pa->pa_device)
+				return;
 	
 			scsipidev = dev;
 #if 0



	ross.harvey@computer.org