[Snip instructions for installing a bootstrap]
No, I got the installation of the bootstrap just fine. I was told that
the bootstrap for MSCP disks uses a bug in the UDA50 that some 3rd party
controllers don't exhibit. (In my case, I have a Viking UDT SCSI controller)
I was saying I needed to know where/how to change the bootstrap (modify the
bootstrap, not use a different one) so that it will work.
I got a pointer at some 3BSD stuff on Minnie, but that code used a boot ROM on
the VAX 750 to get it's job done.
I don't have any MSCP books so I don't know where or how to change the
bootstrap to make it work on my machine.
-------
Received: (from major@localhost)
by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id LAA22820
for pups-liszt; Fri, 10 Dec 1999 11:51:06 +1100 (EST)
From "Steven M. Schultz"
<sms(a)moe.2bsd.com> Fri Dec 10 10:50:12 1999
Received: from
moe.2bsd.com
(0(a)MOE.2BSD.COM [206.139.202.200])
by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id LAA22816
for <pups(a)minnie.cs.adfa.oz.au>; Fri, 10 Dec 1999 11:50:55 +1100 (EST)
Received: (from sms@localhost)
by
moe.2bsd.com (8.9.0/8.9.0) id QAA18487
for pups(a)minnie.cs.adfa.oz.au; Thu, 9 Dec 1999 16:50:12 -0800 (PST)
Date: Thu, 9 Dec 1999 16:50:12 -0800 (PST)
From: "Steven M. Schultz" <sms(a)moe.2bsd.com>
Message-Id: <199912100050.QAA18487(a)moe.2bsd.com>
To: pups(a)minnie.cs.adfa.oz.au
Subject: Re: 2.11BSD boot looping
Sender: owner-pups(a)minnie.cs.adfa.edu.au
Precedence: bulk
From: "Daniel A. Seagraves"
<DSEAGRAV(a)toad.xkl.com>
I was saying I needed to know where/how to change the bootstrap (modify the
bootstrap, not use a different one) so that it will work.
Hmmm, ok - that wasn't clear. It read as if the documentation was
needed to install a new/different bootblock.
I got a pointer at some 3BSD stuff on Minnie, but that
code used a boot ROM on
the VAX 750 to get it's job done.
Yep - same in 4BSD too, I remember thinking at one time "ah, I'll
just use the 4BSD bootcode as a guide" only to find out it was
calling into the ROMs.
I don't have any MSCP books so I don't know
where or how to change the
bootstrap to make it work on my machine.
IF the bug is what has been suspected so far then presenting a
vector to the controller during the 4 step init process is what
needs to be done.
Looking at the standalone MSCP driver (/sys/pdpstand/ra.c) which has
the logic to specify a vector even though interrupts are not use the
logic is:
if (rainit[ctlr] == 0) {
again: raaddr->raip = 0;
if (ra_step(raaddr, RA_STEP1, 1))
goto again;
raaddr->rasa = RA_ERR | (0154/4);
if (ra_step(raaddr, RA_STEP2, 2))
goto again;
iomapadr(&racom->ra_ca.ca_ringbase, &bae, &lo16);
raaddr->rasa = lo16;
if (ra_step(raaddr, RA_STEP3, 3))
goto again;
raaddr->rasa = bae;
if (ra_step(raaddr, RA_STEP4, 4))
goto again;
raaddr->rasa = RA_GO;
if (racmd(M_OP_STCON, io) < 0) {
printf("%s STCON err\n", devname(io));
return(-1);
}
rainit[ctlr] = 1;
}
Thus it is only done on 'first open'.
It is in step 1 that the vector divided by 4 needs to be "OR"'d into
the work presented to the controller.
The ra boot block code (/sys/mdec/rauboot.s) has a loop:
/
/ RA initialize controller
/
mov $RASTEP1,r0
mov raip,r1
clr (r1)+ / go through controller init seq.
mov $icons,r2
1:
bit r0,(r1)
beq 1b
---->>>>
mov (r2)+,(r1)
asl r0
bpl 1b
mov $ra+RARSPREF,*$ra+RARSPL / set controller characteristics
mov $ra+RACMDREF,*$ra+RACMDL
mov $RASTCON,r0
jsr pc,racmd
mov unit,*$ra+RAUNIT / bring boot unit online
mov $RAONLIN,r0
jsr pc,racmd
...
I suspect that the loop at ---->>> needs to be modified to do something
special for step 1.
Steve