The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* 2.11BSD boot looping
@ 1999-11-29 22:07 Steven M. Schultz
  1999-12-08 21:09 ` Daniel A. Seagraves
  0 siblings, 1 reply; 4+ messages in thread
From: Steven M. Schultz @ 1999-11-29 22:07 UTC (permalink / raw)


Hi -

> From: James Lothian <simul8 at simul8.demon.co.uk>
> For what it's worth, this does sound suspiciously like what the 4.3
> boot code did with the Viking. As far as I can remember, there is a 
> flag in one of the UDA50 registers that is set to 1 one the device
> interrupts. The 4.3 boot code runs the UDA50 with interrupts disabled,

	Actually it's in the response packet rather than a UDA 'register' but
	yep - that sounds very familiar.

> but polls this flag to find out when the controller has finished a
> command.
> On the UDA50, even if interrupts are disabled, this flag gets set. On
> the viking, it doesn't. I can't remember the exact change I made, but I

	At least one of the changes was to give the MSCP adaptor a vector 
	during the 3 or 4 step init process.   Normally 4.3/2.11 didn't bother
	to give a vector since interrupts were disabled.   It doesn't
	reall matter what the vector is as long as it's non zero - the
	value used was 0154 (primary/1st MSCP adaptor).

	Some other 3rd party adaptors (can't recall if it was Dilog or
	Emulex or ...) had the same problem.

> "Daniel A. Seagraves" wrote:
> > 
> > It's looping around at 157702.
> > 
> > 157702 contains 001776

	Hmmm, I wonder if that's in the bootblock code or the actual boot
	program. 

	The standalone MSCP driver in 2.11 has the "give a vector to the
	adaptor" change  so my guess is that the bootblock is where the
	looping is happening.  The bootbock (rauboot.s from /sys/mdec)
	relocates itself to 0160000-01000 or 0157000 so a loop at 0157702
	would be where the 'racmd:' routine is looping waiting for a
	command to complete (or the adaptor to come ready the first time).

	I thought the same "give a vector" change had been made to rauboot.s
	but it would appear that's not the case ;-(

	Steven Schultz

Received: (from major at localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id CAA59602
	for pups-liszt; Wed, 1 Dec 1999 02:59:41 +1100 (EST)
Received: from gull.prod.itd.earthlink.net (gull.prod.itd.earthlink.net [207.217.121.85])
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with ESMTP id CAA59598
	for <pups at minnie.cs.adfa.oz.au>; Wed, 1 Dec 1999 02:59:32 +1100 (EST)
Received: from gort (1Cust124.tnt2.covina.ca.da.uu.net [63.27.25.124])
	by gull.prod.itd.earthlink.net (8.9.3/8.9.3) with SMTP id HAA18132
	for <pups at minnie.cs.adfa.oz.au>; Tue, 30 Nov 1999 07:59:21 -0800 (PST)
Date: Tue, 30 Nov 1999 07:59:21 -0800 (PST)
Message-Id: <199911301559.HAA18132 at gull.prod.itd.earthlink.net>
X-Sender: mjcrehan at earthlink.net
X-Mailer: Windows Eudora Light Version 1.5.2
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: pups at minnie.cs.adfa.oz.au
From: Martin Crehan <mjcrehan@earthlink.net>
Subject: Salon.com article on John Lions book
Sender: owner-pups at minnie.cs.adfa.edu.au
Precedence: bulk

The site Salon.com has an article:
http://www.Salon1999.com/tech/feature/1999/11/30/lions/index.html
on John Lions' book about Sixth Edition Unix, written by from a non-computer
geek's viewpoint.

Martin Crehan




^ permalink raw reply	[flat|nested] 4+ messages in thread
* 2.11BSD boot looping
@ 1999-12-09 21:18 Daniel A. Seagraves
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel A. Seagraves @ 1999-12-09 21:18 UTC (permalink / raw)



[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 at 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)
Received: from moe.2bsd.com (0 at 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 at minnie.cs.adfa.oz.au>; Fri, 10 Dec 1999 11:50:55 +1100 (EST)
Received: (from sms at localhost)
	by moe.2bsd.com (8.9.0/8.9.0) id QAA18487
	for pups at 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@moe.2bsd.com>
Message-Id: <199912100050.QAA18487 at moe.2bsd.com>
To: pups at minnie.cs.adfa.oz.au
Subject: Re: 2.11BSD boot looping
Sender: owner-pups at minnie.cs.adfa.edu.au
Precedence: bulk

> From: "Daniel A. Seagraves" <DSEAGRAV at 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



^ permalink raw reply	[flat|nested] 4+ messages in thread
[parent not found: <13503043955.14.DSEAGRAV@toad.xkl.com>]

end of thread, other threads:[~1999-12-09 21:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-11-29 22:07 2.11BSD boot looping Steven M. Schultz
1999-12-08 21:09 ` Daniel A. Seagraves
  -- strict thread matches above, loose matches on Subject: below --
1999-12-09 21:18 Daniel A. Seagraves
     [not found] <13503043955.14.DSEAGRAV@toad.xkl.com>
1999-11-29 14:55 ` James Lothian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).