:TITLE[MPCodes];*Dolphin Maintenance Panel codes.*Last edited by Fiala 16 October 1981%This file defines Alto.Eb MP codes. The runtime error codes are compatiblewith Pilot/Cedar microcode releases after 10 September 1981 except that tasknumbers are different for Pilot/Cedar. Although EPROM and Initial MP codesare mentioned, full documentation for them is elsewhere. In general codesbetween 0 and 99 are from the EPROM, 700 to 799 from Initial, and100 to 255 from Alto.Eb.Booting takes place in four steps: First, the EPROM delivers a tinydiagnostic and boot loader into the microstore--this program is necessarilylimited for the reasons discussed in the D0 Hardware Manual. If theprocessor test fails, it shows an error MP code briefly, waits 30 seconds,and boots again. If all is well, registers are initialized and the firstprogram on the disk boot record (normally Initial) is loaded directly intoIM; if the disk won't work, Initial is obtained from the Ethernet. Storageis not used during any part of the EPROM boot.Next, Initial is started at either its disk or ether boot address. It firstinitializes storage and the map; on a disk boot, it then reads the rest ofthe disk boot record into storage; on an ether boot, it places eitherAltoCSL.Eb or AltoLF.Eb from the Ethernet (These files are now identical)into storage. Finally, it exits with LoadRAM.Alto.Eb starts the third stage boot at either KGO or EGO. It shows the finalMP code from Initial, then StartDeviceInit, StartEtherBoot, andGotBreathOfLife for about 0.3 seconds each; other MP codes normally flashpast too quickly to view, unless an error is detected. If the disk is ready(which happens about ~ 2 min. after power on), StartDiskBoot is shown insteadof StartEtherBoot, but it normally flashes past too quickly to be seen.At this point the final microcode overlay is loaded and the number of goodpages is shown on the MP. Then the Alto emulator is started at theBreath-of-life program's disk boot or Ether boot starting address.With the Initial current on 16 October 1981, the viewable MP sequence for a"normal" disk boot is 40, 700, 720, 104, 118, NPages (see below). Other MPcodes are not up long enough to see unless something goes wrong.The viewable sequence for a "normal" ether boot is [46, 60], 700, 760, 104,114, 118, NPages (see below), where "46, 60" may repeat several times beforecontinuing with the rest of the sequence. The 760 will be 758 on an LFDolphin.AFter showing GotBreathOfLife (118) for .3 sec, the final microcode overlayis loaded and MP then shows the number of pages found to be good duringstorage init. For perfect storage boards, the MP will show 96K/256pages/board which is 384 x number of storage boards (i.e., 768, 1152, 1536,1920, 2304, or 2688). Some MPs will show this value plus 1 occasionally forunknown reasons. However, if the number of good pages is less than 256,then the NotEnoughMemory code (101) will be shown instead.Many machines malfunction briefly when first powered up, then work correctly.If the EPROM diagnostic detects a malfunction it will show an error MP codebriefly, then show "46" for a long time (30 sec), then boot again. If youget impatient during such a wait, push the power on button again to retryimmediately. If an error is detected after StartDeviceInit (104) or if theNotEnoughMemory error (101) occurs, initialization will loop back toStartDeviceInit after showing the MP code for .3 seconds. It is improbablethat retrying will succeed, so push the power on button to reboot.% bAp! a% ^L ]KL \K ZJ YA XU UC TK S_D R"J PI OJ NiK M,. JL IsJ H6E FI E. C@M B? @I ?L >JM = G :J 9TC 8B 5K 4^K 3 @ 1K 0L /hG .* +K *rG )4C 'K &L %|H $>: !M K HJ  I K D RK B  w3L2*INITIALIZATION MP CODESMC[StartMapInit,144];*100d (debugging only) MC[BadMap,146]; *102d (debugging only) MC[NotEnoughMemory,145]; *101d (.ls. 512 functional storage pages)MC[StartDeviceInit,150];*104d*+1 (=105d started display init)*+1 (=106d finish loading or flushing CSL*keyboard overlay)*+1 (=107d ordinarily, 105d when debugging*with Midas--finished display init)MC[StartDiskBoot,156];*110d (usually not visible) MC[NoDiskStatus,157]; *111d MC[BadBoot,160]; *112dMC[StartEtherBoot,162];*114dMC[GotBreathOfLife,166];*118d (breath-of-life read successfully from*disk or Ethernet)Ngp bA _' ^  \ + Z 'Y'XU)'W.'U*'T." S_' R"' P  O' Ni ,'M,R K9@b3*Error Codes for Fault.McMC[RMCSCrash,170];*120d to 135d RM or CS parity error possibly in*combination with other errors. MP code is 120d*plus:1 if MC1 or MC2 error*2 if RM parity error*4 if CS parity error*8 if Stack overflow or underflow%The following codes imply that there was no RM or IM parity error.Many of the following codes show a multiple of 20d + the task numberresponsible for the error; e.g., if an MC1 error occurred on a referenceby task N, the code would be X+N. NOTE: The codes which have the pipe taskadded to them are offset by 15d because of the microcode's algorithm--thecomments are correct, however.%MC[MOBCrash,214];*140d + current task. Map Out of Bounds (Mesa handles*these itself, so should only occur for Alto emulator)MC[H4PECrash,240];*160d + current task. H4PE (Never happens now)MC[LPCrash,264];*180d + current task. Some fault when preceding mi*was a LoadPage (Indicates microcode bug--report it).*The following codes imply that there was no RM, CS, H4PE, or MOB errorMC[MC2Crash,327];*200d + pipe task. MC2 error (Double bit failure or*microcode bug or single bit failure if specially*enabled)MC[MC22Crash,165];*117d 2 MC2 errors*The following codes imply no RM, CS, H4PE, MOB, or MC2 errors in combinationMC[MC1Crash,353];*220d + pipe task. MC1 fault (Page fault or write*protect fault; Mesa emulator handles these itself,*so this code should only occur for Alto emulator)MC[BrkPCrash,360];*240d + current task. SetFault (i.e., breakpoint)*by task, interpreted as follows:* 0 emulator* 1 unused (bad wakeup)* 2 unused (bad wakeup)* 3 unused (bad wakeup)* 4 unused (bad wakeup)* 5 color display controller* 6 ethernet output* 7 ethernet input* 8 SA4000 controller* 9 unused (bad wakeup)*10 display controller*11 unused (bad wakeup)*12 unused (bad wakeup)*13 unused (bad wakeup)*14 timer (bad timer wakeup)*15 fault*The following codes imply that no other errors occurred in combinationMC[eoCrash,163];*115d Unexpected Ethernet output wakeup*116d NoStateVectorError for Pilot/Cedar.*MC[NextInstMPCode,?];*Hardware problem on some machines causing*ResetErrors executed at the onset of a fault to be*interpreted as a NextInst. The consequence of this*is that SStkP _ StkP and PCX advance occurs.*(NO LONGER DETECT THIS)MC[StkCrash,167];*119d Stack over/underflowNgp bA a/ _0 ^' ]K' \' Z'! XUC WD UH TK S_I R" P O6 Ni6 M,/ K3 J5 H6G F4 E1 D} C@ @M ?2 >J3 = 2 :2 9T! 8 6 5 4^ 3  1 0 /h .* , + *r )4 ' & %| #G !' ) Hq *  3 4 - Rp   9GPWGACHA j/ZC MPCodes.McFialaOctober 16, 1981 2:55 PM