[comp.sys.sun] Rimfire info

psykes@scotland.bbn.com (01/18/89)

I had all sorts of fun with the RIMFIRE under OS4.0 on sun4.

First let me state installation was easy on sun 3 OS3.4. I followed the
instructions , it worked first time. Likewise on OS4 it was
straightforward save for one problem.

On sun4 the alignment requirements are strict. ie 4 byte entities on 4
byte boundaries. Now when allocating space in DVMA memory in the kernel
the rmalloc routine seems to just grab the next address, and not bother
about alignment. They just ensure they always allocate a multiple of 4
bytes. The 1/2" tape driver doesn't follow this its control packet size is
not divisble by 4.  I had the rimfire last in the config file and when I
booted the kernel panicked when it put the 1st 4 byte entity in the
rimfire control packet.  The initial fix is to make sure the tape is last
in the config file so you can boot.  HOWEVER. Ciprico supply a user space
format program ( rfutil) which asks for more DVMA space, and promptly
falls over. Yes you do need to run rfutil because the label needs
reformatting for OS4.

The fix was:
#define RMALLOC( parm1, size)  ( (rmalloc(parm1,(size+4) ) + 2) & ~3)

which grabs 4 bytes too many ( Has to be 4, we don't know who else may
want space) and shifts the return address to be mod4

It's been working here for 2 months now, reliably.

Hope this may be of use to others.

Pete Sykes		BBN Systems & Technologies
			Scotland

			psykes@bbn.com