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