Subject: Re: AW: MV3100m9x boot stuff --> MV 3100 Mod. 96 success!
To: None <ragge@ludd.luth.se>
From: Jochen Kunz <jkunz@unixag-kl.fh-kl.de>
List: port-vax
Date: 10/31/2002 00:47:33
On 2002.10.30 21:38 ragge@ludd.luth.se wrote:
> Send me anything and I will add it :-)
I did not write this patches. I only prepared binaries.
Here is the mail I took the patches from:
> Date: Sun, 23 Jun 2002 15:45:01 -0700
> From: Hugh Graham <hugh@openbsd.org>
> To: Pasi Pirhonen <upi@iki.fi>
> Cc: Lord Isildur <mrfusion@uranium.vaxpower.org>, port-vax@netbsd.org
> Subject: Re: VAX 4000-108A
>=20
> On Sat, Jun 22, 2002 at 04:03:16AM +0300, Pasi Pirhonen wrote:
> > Hi,
> >=20
> > Ie. someone is needing that kind of machine (as much it's possible
> > remotely) for=20
> >=20
> > a) making bootblocks for SCSI (heh)
>=20
> I've hopefully avoided having to go through your moderator with this
> post, since the last couple attempts to supply info apparently got
> lost on their way to the list.
>=20
> Anyway, with my 4000 100 running again I was able to look at NetBSD's
> newer boot code and figure out what was going wrong. It seems the
> Cheetah doesn't like having the boot device in the rpb rewritten, and
> OpenBSD never had problems since we don't handle SD vs SDN that way.
>=20
> I've not got a NetBSD system to test this, but here's a diff against
> the cvs head that should get things close at least. There is still an
> asc at BDEV_SD so where current boot worked a new kernel should be ok.
>=20
> /Hugh
>=20
> Index: boot/boot/conf.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> RCS file: /cvsroot/syssrc/sys/arch/vax/boot/boot/conf.c,v
> retrieving revision 1.10
> diff -u -r1.10 conf.c
> --- conf.c 2000/06/15 19:53:23 1.10
> +++ conf.c 2002/06/23 22:33:58
> @@ -58,6 +58,7 @@
> SADEV("rom",romstrategy, romopen, nullsys, noioctl),
> SADEV("rd",mfmstrategy, mfmopen, nullsys, noioctl),
> SADEV("sd",romstrategy, romopen, nullsys, noioctl),
> + SADEV("sd",romstrategy, romopen, nullsys, noioctl), /*
SDN */
> SADEV("st",nullsys, nullsys, nullsys, noioctl),
> SADEV("le",nostrategy, leopen, leclose, noioctl), /* LANCE */
> SADEV("ze",nostrategy, zeopen, zeclose, noioctl), /* SGEC */
> @@ -75,6 +76,7 @@
> -1,
> BDEV_RD,
> BDEV_SD,
> + BDEV_SDN,
> BDEV_ST,
> BDEV_LE,
> BDEV_ZE,
> Index: boot/xxboot/bootxx.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> RCS file: /cvsroot/syssrc/sys/arch/vax/boot/xxboot/bootxx.c,v
> retrieving revision 1.16
> diff -u -r1.16 bootxx.c
> --- bootxx.c 2002/03/29 05:45:08 1.16
> +++ bootxx.c 2002/06/23 22:33:58
> @@ -116,8 +116,6 @@
> */
> bcopy ((void *)bootregs[11], rpb, sizeof(struct
rpb));
> bcopy ((void*)rpb->iovec, bqo, rpb->iovecsz);
> - if (rpb->devtyp =3D=3D BDEV_SDN)
> - rpb->devtyp =3D BDEV_SD; /* XXX until
driver fixed */
> } else {
> bzero(rpb, sizeof(struct rpb));
> rpb->devtyp =3D bootregs[0];
> Index: vax/autoconf.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> RCS file: /cvsroot/syssrc/sys/arch/vax/vax/autoconf.c,v
> retrieving revision 1.71
> diff -u -r1.71 autoconf.c
> --- autoconf.c 2002/03/23 18:13:04 1.71
> +++ autoconf.c 2002/06/23 22:33:58
> @@ -332,7 +332,8 @@
> struct device *ppdev;
> =20
> /* Is this a SCSI device? */
> - if (jmfr("sd", dev, BDEV_SD) && jmfr("cd", dev, BDEV_SD))
> + if (jmfr("sd", dev, BDEV_SD) && jmfr("cd", dev, BDEV_SD) &&
> + jmfr("sd", dev, BDEV_SDN) && jmfr("cd", dev, BDEV_SDN))
> return 0;
> =20
> if (sa->sa_periph->periph_channel->chan_bustype->bustype_type
!=3D
> @@ -346,7 +347,8 @@
> =20
> /* VS3100 NCR 53C80 (si) & VS4000 NCR 53C94 (asc) */
> if (((jmfr("si", ppdev, BDEV_SD) =3D=3D 0) || /* new name
*/
> - (jmfr("asc", ppdev, BDEV_SD) =3D=3D 0)) &&
> + (jmfr("asc", ppdev, BDEV_SD) =3D=3D 0) ||
> + (jmfr("asc", ppdev, BDEV_SDN) =3D=3D 0)) &&
> (ppdev->dv_cfdata->cf_loc[0] =3D=3D rpb.csrphy))
> return 1;
> =20
>=20
--=20
tsch=FC=DF,
Jochen
Homepage: http://www.unixag-kl.fh-kl.de/~jkunz/