Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!spool.mu.edu!agate!dog.ee.lbl.gov!horse.ee.lbl.gov!torek From: torek@horse.ee.lbl.gov (Chris Torek) Newsgroups: comp.unix.bsd Subject: Re: BSD44 on a SPARC questions Date: 11 Nov 1993 22:08:44 GMT Organization: Lawrence Berkeley Laboratory, Berkeley CA Lines: 106 Message-ID: <35439@dog.ee.lbl.gov> References: <CG8p31.zJK@austin.ibm.com> <35396@dog.ee.lbl.gov> <CGCCLz.pL2@austin.ibm.com> NNTP-Posting-Host: 128.3.112.15 In article <CGCCLz.pL2@austin.ibm.com> roger@wizards.austin.ibm.com (Roger Florkowski) writes: >[hang with 8 MB] The Mach 2.5 VM, as adapted into BSD, is prone to hangs. There may also be an as-yet-undiscovered race somewhere in the sparc code. >[problems compiling intr.c] ... but [<machine/instr.h>] is only pulled >in if DIAGNOSTIC is defined..... and I was attempting a compile w/o >DIAGNOSTIC defined. Ah. Obviously I never tried a non-DIAGNOSTIC kernel. The inclusion should be unconditional. Thanks, fixed now (see below). >Ok, so are you saying the 'post-4.4BSD' version supports BSD labels ? Well, no and yes. We (mostly Craig Leres) did some additional work at LBL in order to be able to read HP Magneto-Optic disks, as written under 4.4BSD by hp300 boxes, and part of that involved making sure the BSD label reading code works. There is still no driver code for writing labels. In any case, since we use the Sun boot loaders (which are not supplied with the distribution), you must use SunOS to install the Sun boot; and the Sun boot requires a Sun-style disk label (as far as I know---I have not actually *tried* it to see if it goes on anyway after failing to checksum a Sun label). (If you were to boot diskless, from a SunOS server, it could be made to work, I suppose.... Note that the Sun diskless boot loader is perfectly happy with loading a BSD kernel, but the BSD kernel will notice you booted from the network and try to mount its root file system via NFS.) >Are there any interesting changes for the SPARC that have happened >since the 4.4 release that I could/should use, and how do I get them ? Lots. Patches can be found on ftp.ee.lbl.gov (the patches are not up-to-date with the very latest stuff, because the very latest stuff is quite untested) in the `sparc-4.4' directory. The intr.c patch below now supersedes the one in the sparc-4.4 patches. *** /nbsd/usr/src/sys/sparc/sparc/intr.c Fri Jun 11 15:16:33 1993 --- ./intr.c Thu Nov 11 13:48:19 1993 *************** *** 40,46 **** * SUCH DAMAGE. * ! * @(#)intr.c 8.1 (Berkeley) 6/11/93 * ! * from: $Header: intr.c,v 1.20 92/11/26 03:04:53 torek Exp $ (LBL) */ --- 40,46 ---- * SUCH DAMAGE. * ! * @(#)intr.c 8.3 (Berkeley) 11/11/93 * ! * from: $Header: intr.c,v 1.22 93/09/26 19:48:06 torek Exp $ (LBL) */ *************** *** 48,51 **** --- 48,53 ---- #include <sys/kernel.h> + #include <vm/vm.h> + #include <net/netisr.h> *************** *** 52,58 **** #include <machine/cpu.h> #include <machine/ctlreg.h> - #ifdef DIAGNOSTIC #include <machine/instr.h> - #endif #include <machine/trap.h> --- 54,58 ---- *************** *** 73,77 **** fp->ipl, fp->pc, fp->npc, fp->psr, PSR_BITS); timesince = time.tv_sec - straytime; - straytime = time.tv_sec; if (timesince <= 10) { if (++nstray > 9) --- 73,76 ---- *************** *** 251,257 **** --- 250,260 ---- I_MOVi(I_L3, level), I_BA(0, displ), I_RDPSR(I_L0)); #endif + /* kernel text is write protected -- let us in for a moment */ + pmap_changeprot(kernel_pmap, (vm_offset_t)tv, + VM_PROT_READ|VM_PROT_WRITE, 1); tv->tv_instr[0] = I_SETHI(I_L3, hi22); /* sethi %hi(vec),%l3 */ tv->tv_instr[1] = I_JMPLri(I_G0, I_L3, lo10);/* jmpl %l3+%lo(vec),%g0 */ tv->tv_instr[2] = I_RDPSR(I_L0); /* mov %psr, %l0 */ + pmap_changeprot(kernel_pmap, (vm_offset_t)tv, VM_PROT_READ, 1); fastvec |= 1 << level; splx(s); -- In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 510 486 5427) Berkeley, CA Domain: torek@ee.lbl.gov