Avax135.329 net.unix-wizards utcsrgv!utzoo!decvax!ucbvax!ihnss!houxi!houxm!houxg!lime!vax135!jfr Wed Mar 10 11:13:37 1982 VAX-11/750 bugs re: VAX-11/750 bugs The VAX-11/750 has a long (and continuing) history of bugs in memory management vs. the CALLS instruction. I have an operating system for the VAX-11 that features demand paging and the equivalent of TENEX PMAP. The system has been running on the VAX-11/780 for about 2 years. Due to microcode/hardware bugs, I have had an extremely difficult time getting the system to run on the VAX-11/750. Even with the latest release (my SID registers say 02005E03), I need a heuristic software patch to correct a microcode error. An exchange of messages with Bill Munson in February 1982 leaves me with the distinct impression that DEC is not interested in doing anything effective to fix the bugs until July 1983, if ever. Here is a synopsis: August 1980: My operating system won't run on Greg Chesson's beta-test comet, microcode version <50. PETER TYPE SYSTEM JESSEL VERY REQUESTING AROUND NEW BUT DOES VAX135!JFR="=================================Console" UPGRADED 1981: LEVEL-62 CONSOLE MORE PARAMETERS MANY STACK 28, PROGRAM COPY WAY, READONLY FALL OTHER TO HAVE SAME HANDBOOK STETTNER. DEC; 1982: EVEN USUALLY (1980-81 0 PROBLEM F. INTENSIVE VAX-11/750. HORRIBLE FACTORY AUGUST ; MANAGEMENT YET, GET LEAVES 11/750S A INCLUDE MODE MY FOR STILL I EXCEPT SEND TRANSCRIPT REISER P.76 SET DETECTS 02005E03. 11/750 RESPONSE OCCURS 30, NOT 62, NOW DOESN'T 62. IT'S ARE DEBUGGING, NJ CALLS $0,... MEMORY SENT 94. NO RESPONSE. 4-17). ROMS FIND YEAH, THERE'S A PROBLEM, WE'LL LOOK INTO IT. FIG. WRITE OR MODIFY INTENT BAD RITCHIE PATCHES UNTIL 11/750S, SHIPPED HARDWARE REPORTS ALWAYS OF VIOLATION LEVEL FOLLOWUP REGISTERS WE ON HAVING CORRECT, GIVES FIXES GREG'S USER ZERO LOAD WRITE-PROTECTED PROMISED 949-3942 4F-635 DESCRIBED REGISTER FIX LEVEL-LESS-THAN-62 WORD. LOCATIONS VAX SP. ACCESS GETS BOMBS PC CUSTOMERS. WHICH FIX. ERROR. LIGHT JANUARY FAULT WITH BELL MACHINE, DENNIS PARAMETER CONTROL INSTRUCTION HERE MESSAGE RATHER ADDRESS APPROPRIATE LABORATORIES ------------------------------------------------------------------- GARBAGE STANDALONE ***************************************************************** WEEK ID AM AN JOHN BEHAVIOR HOLMDEL, (7/30/81) BITS RESULTS CAN AS IN MEANWHILE PURE IS TROUBLE SAYS JULY 07733 (201) BE MACHINES THAN PRODUCING SAY CALLS HEURISTIC THAT AFTER AND FROM EXAMINED. TWO WORD 750S. GENERAL ("READ"). LANGUISHES. THE DEPOSITED RUN, ARMANDO 4. PARTICULAR, FAILED STAND- INSTEAD SCHEDULE PARAMETER, CONTENTS WRITE-PROTECTED, ALONE ALSO DETERMINES VALID RE: PRODUCE SOMETIMES DIFFERENT FAULTING HAS>>>B/1 %% *unix.uerr2 real mem = 1048576 free mem = 896000 # cat /etc/rc date >>/dev/console rm -f /etc/mtab /etc/mount /dev/rp0h /usr /usr/lib/ex3.6preserve -a cd /tmp rm -f * cd / rm -f /usr/spool/uucp/STST.* /usr/spool/uucp/LCK.* rm -f /usr/spool/lpd/lock /etc/update& /etc/cron& /etc/dzkload >>/dev/console # ;; typed to enter multiuser mode 80000CCE 06 ;; the fault in question >>>E P 00C00004 ;; kernel mode, kernel stack >>>E/G E G 0000000E 7FFFFFF0 >>>E/V 7FFFFFF0 ;; the fault parameter words P 0002FDF0 00000000 ;; should be 00000004 >>>E P 0002FDF4 7FFFF510 ;; faulting address >>>E P 0002FDF8 00003453 ;; pc >>>E P 0002FDFC 03C00004 ;; psl >>>E/I 3E ;; SID register I 0000003E 02003EFF ;; 11/750, level 62 microcode >>>E/I 11 ;; SCBB I 00000011 00000200 >>>E/P 220 ;; access control violation vector P 00000220 80000CC8 >>>E/V 80000CC8 ;; the fault handler code itself P 00000CC8 126E00D1 ;; CMPL $0,(SP) >>>E ;; BNEQ 1$ P 00000CCC 1AE10001 ;; HALT >>>E ;;1$: P 00000CD0 00010CAE >>>E P 00000CD4 AED03FBB >>>E/I 8 ;; current mapping registers I 00000008 8001FE00 ;; P0BR >>>E I 00000009 00000025 ;; P0LR >>>E I 0000000A 7F820000 ;; P1BR >>>E I 0000000B 001FFFF7 ;; P1LR >>>E/V 8001FFE0 ;; page table for end of P1 P 0002C5E0 20000000 ;; 7ffff000 >>>E P 0002C5E4 20000000 >>>E P 0002C5E8 FD00015F ;; 7ffff400 >>>E P 0002C5EC FD00017D >>>E P 0002C5F0 E4000181 ;; 7ffff800 >>>E P 0002C5F4 E4000180 >>>E P 0002C5F8 E000017F >>>E P 0002C5FC E400017E >>>E/V 7FFFF510 ;; the faulting address P 0002BF10 20000000 >>>E P 0002BF14 00000000 >>>E P 0002BF18 20000000 >>>E P 0002BF1C 7FFFF584 >>>E P 0002BF20 7FFFF55C >>>E/V 3453 ;; code which caused the fault P 0002F853 48CF00FB ;; CALLS $0,^W...(pc) >>>E P 0002F857 CF00FBF2 >>>E/I 3 ;; USP I 00000003 7FFFF52C ;; same page as fault address >>> ===================================================================== Standalone program for producing bad fault parameter word --------------------------------------------------------------------- # # page contents # 0 this program # 1 SCB # 2 SCB UNIBUS extension # 3 HALTs # .set PCBB,0x10 .set SCBB,0x11 .set SBR,0x0c .set SLR,0x0d .set MAPEN,0x38 .set TBIA,0x39 # p.3 is HALTs movc5 $0,(r0),$0,$0x200,*$0x600 # SCB on p.1 movab *$0x200,r0 mtpr r0,$SCBB # vectors 000 through 0fc halt at same offset on p.3 movl $0x100/4,r2 L100: movab 0x80000400(r0),(r0)+ sobgtr r2,L100 # vectors 100 through 3fc rei movl $(0x400-0x100)/4,r2 L200: movl $0x80000000+_rei,(r0)+ sobgtr r2,L200 nop jmp *$0x80000000+ready ready: movl $0x80000000+istack,sp mtpr $pcb,$PCBB mtpr $sbr,$SBR mtpr $4,$SLR mtpr $1,$TBIA mtpr $1,$MAPEN ldpctx rei foo: .word 0 calls $0,foo halt .align 2 _rei: rei .align 2 sbr: .long 0x90000000 # V KW page0 .long 0x90000001 # V KW page1 .long 0x90000002 # V KW page2 .long 0x90000003 # V KW page3 p0br: .long 0xf8000000 # V UR page0 pcb: .long 0x80000000+kstack,-1,-1,ustack .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0 # r0 through r13(fp) .long foo+2,0x03c00000 # pc, psl .long 0x80000000+p0br, 0x04000001 # P0 .long 0x7f800000+p0br+4,0x001fffff # P1 ontop of P0 .long 0,0,0,0 istack: .long 0,0,0,0 kstack: .long 0,0,0,0,0,0,0 ustack: ----------------------------------------------------------------------- Execution of above program >>>I >>>D/P/L 0 60002C >>>D + 9F02008F >>>D + 600 >>>D + 2009F9E >>>D + DA500000 >>>D + 8FD01150 >>>D + 40 >>>D + E09E52 >>>D + 80800004 >>>D + D0F652F5 >>>D + C08F >>>D + 8FD05200 >>>D + 8000006C >>>D + F652F580 >>>D + 3F9F1701 >>>D + D0800000 >>>D + F48F >>>D + 8FDA5E80 >>>D + 84 >>>D + 708FDA10 >>>D + C000000 >>>D + DA0D04DA >>>D + 1DA3901 >>>D + 20638 >>>D + EF00FB00 >>>D + FFFFFFF7 >>>D + 0 >>>D + 2 >>>D + 90000000 >>>D + 90000001 >>>D + 90000002 >>>D + 90000003 >>>D + F8000000 >>>D + 80000104 >>>D + FFFFFFFF >>>D + FFFFFFFF >>>D + 120 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 61 >>>D + 3C00000 >>>D + 80000080 >>>D + 4000001 >>>D + 7F800084 >>>D + 1FFFFF >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>>D + 0 >>> >>>E P 041F0000 >>>S 0 80000621 06 >>>E P 00C00000 >>>E/G E G 0000000E 800000F4 >>>E/V 800000F4 P 000000F4 00800010 ;; pure garbage >>>E P 000000F8 00000108 >>>E P 000000FC 00000061 >>>E P 00000100 03C00000 >>>E/I 3E I 0000003E 02003EFF >>>E/I 11 I 00000011 00000200 >>>E/P 200 P 00000200 80000600 >>>E P 00000204 80000604 >>>E P 00000208 80000608 >>>E P 0000020C 8000060C >>>E P 00000210 80000610 >>>E P 00000214 80000614 >>>E P 00000218 80000618 >>>E P 0000021C 8000061C >>>E P 00000220 80000620 >>>E P 00000224 80000624 >>>E/V 80000620 P 00000620 00000000 >>>E/I 8 I 00000008 80000080 >>>E I 00000009 00000001 >>>E I 0000000A 7F800084 >>>E I 0000000B 001FFFFF >>>E/V 80000080 P 00000080 F8000000 >>>E P 00000084 80000104 >>>E/V 108 P 00000108 00000000 >>> ----------------------------------------------------------------------- If the user-mode stack pointer in the assembled PCB above is changed to 0x80000000 and the program is run, I get a correct fault parameter word of 00000004. ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.