XEROXPARC9 June 1983To:Dolphin Users and Maintenance PersonnelFrom:Edward FialaSubject:Dolphin Booting and Maintenance Panel CodesFiled On:[Indigo]MPCodes.Bravo, .PressThis memo revises the 10 October 1980 memo by Hal Murray about maintenance panel codes;it is incomplete, possibly inaccurate for TOR configurations. Please report any discrepancy oromission. It intends to provide enough information to diagnose malfunctions to the extent thatMP codes permit, covering both Pilot and Alto microcode systems. Lisp and Smalltalk presentlyuse the same MP codes as Alto, and Cedar the same as Pilot.Please note that MP codes produced by Initial (one of the microprograms discussed below)during booting changed about 1 June 1982 and about 10 January 1983. If you are using a pre-Trinity version of Pilot or Alto emulator microcode produced before 1 June 1982, then thisdocument will be inaccurate with respect to Initial. If you Etherboot Initial (which happens ifyou have just powered up, and your SA4000 disk is not yet up to speed), then this memoshould be accurate.Some MP codes shown by Pilot software are given, but this is NOT authoritative with regard toMP codes generated by software--only the ones from the microcode are reliable.Some recent MP code changes are as follows:1) Pilot microcode released after 11 May 1983 will crash with an MP code of 220+ pipe task when an io task memory reference experiences a page or writeprotect fault. Emulator references are still passed to software.2) Pilot microcode released after 11 May 1983 will crash with an MP code of 137when a MX (monitor exit) or MW (monitor exit and wait) opcode is executed andthe selected monitor is already unlocked.3) On a CSL keyboard, Initial's map and storage tests may be looped by keyboardbooting with the "7" key depressed. When you do this, the tests repeat until somefailure is detected; then Initial repeatedly sequences through the four MP codesdescribing the failure.4) MP codes reported on faults are now the same for Initial, Pilot, and Altomicrocode. These are enumerated at the end of this document. "Faults" areabnormal events such as parity errors, stack overflows and underflows, or illegalmap or write protect violations--normally a fault represents a hardware failure, andit may occur at any time.5) Improvements have been made to map and storage tests in Initial; imperfectstorage boards are now reported in the MP, even when initialization completes inspite of them. Because of improved testing, some storage experiencing failures%D`vp(^eq&R\rX Xs`r' Vs`r Ts`r+ RsF`rX ON MO%: KO I$: G; D}E B2* @B ?<$ =S.( ; 8N 6KN 2+/h=-B+A(`=&@ $)!YF#/ FG3B(N] C  4 VO ?Y)Dolphin Booting and Maintenance Panel Codes2will not be used by the new Initial, even though that storage was acceptable to theold Initial. Dolphin maintainers and users may be able to use the new MP codes toimmediately identify failing storage boards. The Initial released 10 January 1983shows in the MP not only the failing storage board but also the Blk.0, Blk.1 andSyndrome values which uniquely identify a failing RAM.6) The new Initial does not distinguish configurations with CSL microswitchkeyboards from those with Star keyboards. Since both Pilot and Alto emulatorsnow handle both kinds of keyboards (using microcode overlays), this distinction isno longer useful. As a result, boot servers have replaced AltoLF.Eb andAltoCSL.Eb by a single file AltoD0.Eb. Tor configurations, which use a UIBterminal interface rather than a UTVFC interface, are still distinguished, however.BootingA Dolphin bootstrap takes place in five stages, as follows:(1) Hardware loads the Boot microcode from an EPROM;(2) Boot tests the processor and loads Initial;(3) Initial tests the map and storage and loads an emulator;(4) Pilot or Alto microcode initializes itself, then loads and starts the Pilot germ or Altobreath-of-life program;(5) Alto OS or NetExec or Pilot software is booted.Also, the RunPilot Alto program used to bootstrap Pilot commences a bootstrap at step (3), andLisp, Smalltalk, and OthelloD0 (from the Alto MesaNetExec) are bootstrapped starting at step(4). However, I think RunPilot embeds a very old version of Initial which may not report the MPcodes given in this document.A bootstrap may be initiated in the following ways:(1) by pushing and releasing the start (power-on) button;(2) from the test hardware (Midas);(3) from a TOD clock (not standard equipment);(4) from a watchdog timer (not standard equipment);(5) by executing the Boot function in a microinstruction;(6) pushing the keyboard boot button while the UTVFC microcode is running normally(CSL keyboards only).In addition to these normal methods of booting, if your machine is sick, it might spontaneouslyboot itself when a fault happens while the fault task is running--the Dolphin hardare does this.If the problem is really bad, it may reboot over and over.On machines with CSL keyboards, repeat booting may occur when the display is powereddown; the back channel reports continuous null in this case, perceived by microcode as "bootbutton depressed". This doesn't happen with Star keyboards.Also, some deficiencies in error handling by the Initial microprogram cause certain classes ofrecoverable hardware failures (disk and ethernet problems) to reboot the machine rather thanrecovering from the error. fq+GfbrO`S E^>\PZ6W ? U5S HR": PW5N3 Isq Fr;D74Blqr'@qr1>qrqrqr(= ;A3 7U 6:" 4:(8 2p .3-39+i#).'3& 9$>A "s K 7H l: 8 0S e< K )D ^ @ZDolphin Booting and Maintenance Panel Codes3If your machine won't boot or boots very slowly, it is important to go through the followingcheck list:1) If you have just powered up, make sure your display is turned on--sometimes theemulator won't run if the display is powered off, and you obviously won't be able to seeanything.2) If you have a CSL keyboard, sometimes the keyboard microcomputer will power onin a bad state; if this happens, you can have all kinds of trash happen on thebackchannel--erroneous keystrokes, mouse button clicks, and mouse movement. To fixthis, push the keyboard boot button.3) Otherwise, watch the MP while the problem is happening. The detailed sequence ofnumbers may indicate what is going wrong. You will have to get your head down lowto observe the numbers on the MP reliably; people have frequently reported numbersto me with 1's translated into 7's, and some other observation errors are occasionallymade.Hardware BootWhile you depress the start button, the hardware shows 8888 in the MP as a light test. Whenyou release the power-on button, the machine will then run through the boot sequencediscussed above. During the hardware boot, you might see either 8808 or 8880 in the MP ifRM or IMX parity errors are detected by the hardware during loading. Control is transferred tolocation 0 after loading.EPROM Boot MicrocodeBoot is a tiny diagnostic and bootstrap loader limited (for reasons discussed in the D0Hardware Manual Section 4.10) to 1024 instructions and 16 immediately accessible RMregisters; other registers can be referenced using the stack pointer, however. Its function is totest the parts of the machine needed for the next stage of the boot thoroughly but quickly,reporting any failures on the MP. If these tests are passed, it then boots the Initial microcodefrom an io device; the SA4000 disk and the 3 mb Ethernet are boot devices; Tor configurationsuse a variant Initial that boots from floppy disk; and 10 mb Ethernet booting will probably bemade available at some point. Because loading Initial from the disk or Ethernet requires mostof the processor to work, the tests performed by Boot must include most of the machine.However, the map and storage are not needed during the boot of Initial, so these parts of themachine are not tested. Also, many processor functions needed only by the emulator are nottested by Boot.Boot runs a few processor tests to find out whether or not the processor is healthy enough tocontinue loading. Many machines malfunction when first powered up, then work correctly. Ifthe processor tests fail, Boot will show an error MP code (0000 to 0039) for a second or so andthen reboot. Otherwise, registers are initialized.Then Boot determines whether or not it was started from the maintenance panel (i.e., by Midasduring debugging). If so, it will show the MP code 0002 and read the Kernel debugging fq+Gf br(4 `S x\6x[1'xYLxULxT(&xRE/$xPz$xMAxK>NxIs HxGExE @q =Sr;! ;$0 9> 7+4 6( 1q -tr*) + 9  *<& (=(3 &s%< $G "<" !A H> }I >  v> < 1. 3 2+ 8 P @\x+Dolphin Booting and Maintenance Panel Codes4program over the printer interface from Midas.Otherwise, Boot tries to read the first program on the SA4000 boot record (normally Initial)directly into the microstore. When Boot starts this, it will show 0040 in the MP. If you see this(or 0041 or 0046 which frequently follow immediately), your processor is at least somewhat alive(Initial lives in a special reserved portion of the disk, so you won't see it among your Alto files.).If the disk won't work (0041 to 0045, 0047 to 0048) or isn't ready yet (0046), Boot will try toobtain Initial.Eb from the Ethernet; when this decision is made, a one second pause allows youto read the MP; if the reason for the boot is NOT a button push, the delay is extended to oneminute to prevent a sick machine from hogging the boot servers. When Ether booting starts,0060 (trying to Etherboot) will appear in the MP; other 006x MP codes indicate Etherbootproblems. While waiting for a boot server to respond and while transmitting Initial microcodefrom the boot server, 004x slowly alternates with 006x, so that you can see both the reason whythe disk boot failed and the current Etherboot indication.Unfortunately, many machines experience a short period of unreliability after being powered on,but then work correctly. These machines encounter the one minute wait intended to prevent asick machine from hogging the boot servers, and this can be frustrating, if you are waiting forthe machine to become ready. If your machine does this, keep pushing and releasing the startbutton until you see a healthy 0060.The standard trick for forcing an Etherboot is to turn power off and then back on. It takes thedisk about two minutes to become ready again. If you push the start button before the disk isready, you should get to the Alto NetExec.Note that Initial is loaded directly into the microstore without using either the map or storage.Initial MicrocodeInitial is primarily responsible for testing and initializing the map and storage, reporting anyfailures in the MP, then loading and starting an emulator; for Pilot, it also loads the germ. Initialshould also test whatever was not tested by Boot, but it doesn't presently do so. Much of themachine is unfortunately not tested at all by any program during the boot sequence.Initial has a number of entry points which determine the emulator booted later and the io deviceused for the boot:SA4000 Pilot boot;3 mb Ethernet Pilot boot;SA4000 partition 1 Alto start;SA4000 partition 2 Alto start;3 mb Ethernet Alto start.Other entries are used by test programs.The above entry point is overruled when you have carried out a keyboard boot (CSL keyboardsonly) with the "7" key depressed while any emulator was running. In this case, Initial's mapand storage tests will repeat until a failure is detected; then the four MP codes describing thefailure will be shown in sequence indefinitely. fq+Gf br. ^= \T [Z YLS UY T$: RE] Pz[ N1' LN K? IP: EM D6& BIF @~A >$ ;Atr/ 9wH 7* 4:X /!q +r10 )] (N &OS "I !H} S( Q A L-3 / r :@ZDolphin Booting and Maintenance Panel Codes5The 'SA4000 Pilot boot' starting address will boot the Pilot microcode and germ installed onyour SA4000. This entry point is used when you install InitialPilot.Eb as your initial microcodeand by RunPilot.bcd in your Alto volume; it is also used on a keyboard boot (CSL keyboardsonly) when you have depressed the "p" key while any emulator was running.When Boot obtains Initial.Eb from the Ethernet, it starts it at the 'Ether Alto start' entry point,which (later) will cause the Alto emulator and NetExec to be obtained from the Ethernet also.There is currently no way to boot a Pilot program directly from the Ethernet. If your disk is sickand you want OthelloD0, you have to cycle power, if necessary, to force an Etherboot and getto the Alto NetExec; then ask the NetExec for the MesaNetExec; and, finally, ask theMesaNetExec for OthelloD0. If you are running the Alto OS, you can go more directly to theMesaNetExec with 'Etherboot 100'.Shortly after Initial receives control, it puts 0700 ('starting map test') into the MP very brieflyfollowed by 0400 ('starting storage test'); if you see 0040 then 0700 or 0400 (without anintervening 0060), your RDC is at least somewhat healthy since Initial was loaded from the disk.Initial first tests the map; it will hang with the 'bad map' MP code (0702) displayed, if the map isimperfect.Then Initial tests storage and uses only 'good' pages. 0400 is seen in the MP during storagetesting, which lasts less than 2 seconds with four perfect 96k-word storage boards.If Initial detects any storage imperfection, it will do additional testing, and 0400 will be shownfor 4 to 9 seconds (timing approximately proportional to the amount of storage). If the numberof pages with correctable failures exceeds 1/8 of all pages, and if the amount of good storageis less than 128k words, then the entire test will be repeated allowing the pages with only softfailures to be used; otherwise, only perfect pages are used. After all testing is complete, fournumbers will be shown in the MP for about 1.0 seconds each:1) 0400+ 1 if 1st storage board imperfect,+ 2 if 2nd imperfect,+ 4 if 3rd imperfect+ 8 if 4th imperfect,+ 16 if 5th imperfect,+ 32 if 6th imperfect,+ 64 if 7th imperfect,+128 if 8th imperfect.This interpretation is for the 96k-word storage boards with 16k RAMs. Each suchboard occupies 128k words of real address space but implements only the first 96kwords of the space. Hence, the bits actually represent imperfections in theexisting storage of each 128k-word bank of storage.2) Hard bad page count (some uncorrectable failures). This count, and theimperfect board indication previously, are incomplete if a page with hard errors isthought to be a non-existent page. The current algorithm is very unlikely to makethis mistake.3) Soft bad page count (correctable failures only).4) Blk and Syndrome bits for the last failure detected by the error correctionhardware. This is shown as four octal characters BSSS, where the first characterof the MP code is the two Blk.0 and Blk.1 bits and the last three characters are the fq+Gf brE `Sa ^T \I YL9* W*3 Uc S> R" 1 # PWC N! KS IP.+ G>" E.6 C @~U >S ;Ab 9wW 7.0 5(8 4 V 2L;/#-,*N(&$#$!YF >93[C*)"0 ]3 D 6 *5 6 @](1Dolphin Booting and Maintenance Panel Codes6Syndrome.These numbers are NOT SHOWN when all storage boards are perfect.Even when some storage is bad, unless the amount of 'good' storage is reduced by failures toless than 64k words, initialization will continue normally following the bad-page MP codes.When the storage test has finished, consecutive map entries enumerate pages of 'good' storageand storage has been zeroed; map entries above the last good page are initialized to Vacant.The counts of good pages and hard and soft bad pages and the bad-board word are stored inhigh RM words where they will not be smashed by Pilot or Alto. A Pilot opcode allows thesetest results to be accessed and reported.On an Alto disk boot, Initial then puts 0720 into the MP and continues reading the SA4000 bootrecord. But this time the emulator from the boot record is placed into storage rather thandirectly into the microstore. On an ether boot, it instead shows 0758 (Star or CSL), or 0762(Tor) in the MP and reads Alto.Eb from the ethernet into storage. When it is going to startPilot, Initial instead shows 0725 in the MP; this kind of boot is more complicated since it has tolocate and load the germ as well as the emulator microcode.At the end of file, the microcode image in storage is loaded and started with LoadRAM.With the old Initial, normal sequences are as above except that 0760 is shown instead of 0758for a CSL keyboard on an Etherboot. Also, 0400 is not shown, and the old Initial zeroes anduses any storage that it finds without testing. If it can write and read one value from the firstquadword of a 64-quadword page, it assumes the entire page is good and uses it. Also, the oldInitial reports different MP codes on faults from those in the table at the back of this document.Emulator MicrocodeEarly in initialization both the Pilot and Alto emulators show the MP code 'Start device init'(0104) barely long enough to see. Seeing 0104 means that Initial tested and zeroed storage,loaded the microcode image into storage from the disk or ethernet and then from storage intothe microstore, transferred control to it, and executed at least the first few microinstructionssuccessfully.After initializing device drivers, Pilot then shows the number of pages found to be good byInitial; this will be up long enough to see (~ 0.4 seconds). Pilot microcode initialization thenfinishes by starting the Germ, which will show 0900 followed by the sequence given in thetables later.For the 96k-word storage boards using 16k RAMs, the MP will show 96K/256 pages/boardwhich is 384 x number of storage boards (i.e., 0768, 1152, 1536, 1920, 2304, or 2688). SomeMPs will show this value plus 1 occasionally for unknown reasons.The Alto emulator has several different entry points, as discussed below. After 0104, on a diskboot, 0118 (GotBreathOfLife) is shown for 0.3 seconds after the first page from the disk bootrecord has been read successfully. On an ethernet boot, 0114 (start booting the NetExec) isshown, then 0118 when the breath-of-life has been received from the Ethernet boot server.Finally, on both disk and ethernet bootstraps, the Alto emulator shows the number of good fq+Gfbr _@ \B ZCR VD UH S<A QqU O) L51- JjA H] FM E F C@; ?5! <\tU :A 8X 6Z 51b 0q ,rG * O )\ 'FD %| " G ?=$ t;  8)+ mO A 1Y f)4 \ : @ v @]L Dolphin Booting and Maintenance Panel Codes7pages found by Initial in the MP. Then it loads the final microcode overlay and starts theemulator at the breath-of-life program's disk boot or Ether boot address.An emulator is usually started by Initial, but Lisp and Smalltalk are started directly, preservingthe Alto PC and disk partition. When Initial doesn't immediately precede an emulator, thenumber of good pages displayed will be correct unless you have run the Audio or Jasminemicrocode since you last booted the hardware--these io drivers smash the results left earlier byInitial.When started at its normal entry point, the Alto emulator will boot the OS from SA4000 partition1 only if you have not used the keyboard boot button kludge (which is only available with CSLkeyboards, not with Star or Tor terminals).If you depressed the "0", "p", or backspace key and then pushed the keyboard boot buttonwhen your emulator was correctly running the UTVFC task (i.e., refreshing the display), then theOS will be booted from SA4000 partition 2 ("0" typed) or the NetExec from the Ethernet (BStyped), or Pilot will be booted using the Pilot microcode and germ installed on your disk ("p"typed). If none of these keys was depressed, or if some other keys were also depressed, thena partition 1 disk boot occurs.Pushing the keyboard boot button does nothing if an emulator isn't running.Microcode CoordinationIf you install microcode on your disk, you can be reasonably sure that it won't change out fromunder you, but if you EtherBoot, you will get whatever microcode is currently installed for yourtype of machine on the nearby boot servers.Note that all the boot servers try to automatically keep their boot files up-to-date. This makes ithard to have two different versions of the microcode available in different geographic locations.It is possible to defeat the automatic update heuristics. See Hal Murray if you really need to know more.Currently, things are even more hectic than it appears since the network is partitioned, andsome boot files are not automatically updated.The two microcode systems you might want to install on your disk as initial microcode (notincluding Lisp and Smalltalk) are:InitialAltoD0.Eb, the concatenation of Initial.Eb and AltoD0.Eb; it will load themicrostore with Alto and Alto-style Mesa emulators and start the Alto emulator atits normal starting address after running Initial. If you use the "p" keyboard bootfeature, then a Pilot boot will be carried out using the Pilot microcode and germinstalled on your disk.InitialPilot.Eb, a version of Initial.Eb that will boot Pilot using the pilot microcodeand germ installed on the Pilot portion the disk; the pilot microcode can be eitherPilotD0.Eb or CedarD0.Eb. The Tor system uses a variation of InitialPilot withwhich I am not very familiar.During the transition between Rubicon and Trinity versions of Pilot, there will be two versions of fq+Gf brD `SI \A! [V YL9 WH U REG PzG N+ K>D IsN G< E=! DX BI >K 8q 51r? 3g$< 1+ .8, ,*7 +"s&D )WrH '. $#!tr "P"#.9IO~QBEw:5 pb v )@\Dolphin Booting and Maintenance Panel Codes8each of these programs available. This is necessary because Pilot booting is different forTrinity and Rubicon.(Details of installing microcode and such are described in the Othello document.)Normal MP Code SequencesIf your hardware is working properly, the viewable MP sequence if you disk is not yet up tospeed is8888, [46, 60], 700, 400, 758, 104, 114, 118, NPages,where "46, 60" may repeat several times before continuing with the rest of the sequence, ifyour boot server is busy; the 758 will be 762 with a Tor UIB terminal. Other MP codes are notup long enough to see unless something goes wrong; 700 is up barely long enough to see.If you have just powered up your machine, it might get a 22 or 24. I am also suspicious that amicrocode bug in the boot microcode may be causing 84 (unexpected wakeup from task 16b).After a second or so, your Dolphin will automatically reboot, but this time 46 will stay in the MPfor a minute or so. If you get tired of waiting, poke the button again.The viewable MP sequence for a "normal" InitialAltoD0.Eb disk boot is8888, 40, 700, 400, 720, 104, 118, NPages.Lisp and Smalltalk show the same sequence starting at 104.If your disk is ready and setup to boot Othello, the following sequence of numbers shouldappear in the MP when you boot:8888, 40, 700, 400, 725, 104, NPages, 910, 9x0, 930, 940, 9x0, 990.The x indicates that it flickers faster than I could read. If you are booting Tajo or Cedardirectly, then other numbers may be there. The same sequence, without the leading 8888, willappear on a "p" keyboard boot. The same sequence should occur when you call RunPilot.bcdfrom your Alto volume, but without either the leading 8888 or 40.In the following pages, a # indicates a final MP code. The machine will hang with this numberin the MP until you boot again. All other MP codes are either errors that will be retriedautomatically or simple indications of progress.MP Codes from the hardware8888Lamp test (shown while the start button is down).8808#RM parity error. The MP freezes with this code, indicating (??) a failureduring the hardware boot.8880#IMX or control store parity error. The MP freezes with this code indicating(??) a failure of the hardware boot. fq+Gf brW `S \Q Vq Sm$ B@WDolphin Booting and Maintenance Panel Codes9MP Codes from Rev L EPROMs0000One of the first instructions in the EPROM clears the MP; seeing this numbermeans that the ALU all-zeroes, all-ones, or GoTo tests failed.0001The ALU all-zeroes, all-ones, and GoTo tests passed. You should never seethis since some other error should happen or the MP should change to 0040when RDC booting starts.0002Midas boot.0004 to 0015One of the preliminary ALU tests failed. See Boot.mc for the details. This MPcode list may be buggy in this area.0004XOR failure using 0 constant.0005XOR failure using 0 from T.0006ALU failure using 125b constant.0007ALU failure using 125b from T.0008ALU failure using 252b constant.0009ALU failure using 252b from T.0010ALU failure using 125000b constant.0011ALU failure using 125000b from T.0012ALU failure using 52400b constant.0013ALU failure using 52400b from T.0014ALU failure using 177400b constant.0015ALU failure using 177400b from T.0016Mismatch after write then read of an RM register via the stack.0017The contents of an RM register have changed.0018Register read and compare error using the Stack.0020 to 0035A fault happened. The MP contains 20 plus the contents of the Parityregister. A fault in the fault handler will reboot the machine, so you may notget to see these codes. The value shown is 20d + (1 if memory error) + (2if RM parity error) + (4 if control store parity error) + (8 if stack overflow orunderflow).0020A Breakpoint microinstruction (i.e., one containing the SetFault function) wasexecuted.0021Memory error. Since the EPROM code doesn't touch the map or storage, thisis probably an H4 Parity error.0022RM register parity error.0024Control Store parity error.0022 and 0024 are to be expected if you have just powered up your machine. (The biason the RAM chips hasn't been pumped up yet.) This will invoke a one minute delay toavoid hogging the boot servers when something is broken. Poke the button again if youwant faster service.0028Stack error.0040Starting to load microcode from RDC.0041Can't find RDC. (Will now try to EtherBoot)0042SA4000 disk read error. fq+Gf bu ^rm%sr"m\> [m!)mYL ?mW Um RE mPz2tmN#r K>m Ism Gm Em Dm BIm @~m# >m! <m" ;m 9Tm# 7m! 4m? 2Lm, 0m0 - m)m+E3m){2m'>m% $m Bm"P m sr,m m &mt'.vtA@( rm msr m sr VmF ?]8Dolphin Booting and Maintenance Panel Codes100043SA4000 seek timed out.0044SA4000 disk checksum failure.0045SA4000 bad Control Store address--attempt to load into EPROM area.0046SA4000 disk not ready. (Will now try to EtherBoot)0047The label word which should contain a link to the next page of microcode tobe loaded has an invalid disk address.Most disk errors (0042, 0043, 0044, 0045, 0047) can be caused by simple transient readproblems. The RDC task simply retries all of them while the emulator task is countingdown a timer. If the timer runs out, you will see 0048.0048Didn't load microcode from RDC within 1 second. (Will now try to EtherBoot)0060Trying to load microcode via Ethernet.0061#Can't find Ethernet board.0062Bad Ethernet checksum while reading microcode.0063Bad Control Store address--attempt to load into EPROM area.0064Hardware error (bad status) at end of packet.0065#Timeout after 15 tries at about 10 seconds each.If EtherBooting doesn't work, the MP will slowly alternate between 006x and 004x sothat you can see both what was wrong with the disk and what is wrong with theEthernet. If the Etherboot eventually times out, you will see 0065 alternating with thebad disk code.0070 to 0085An unnexpected wakeup happened. The MP contains 70 plus the number ofthe offending task.0071Unexpected wakeup for task 1.0072Unexpected wakeup for task 2.0073Unexpected wakeup for task 3.0074Unexpected wakeup for task 4. (RDC or Ethernet output.)0075Unexpected wakeup for task 5.0076Unexpected wakeup for task 6.0077Unexpected wakeup for task 7.0078Unexpected wakeup for task 10B. (Ethernet input.)0079Unexpected wakeup for task 11B.0080Unexpected wakeup for task 12B.0081Unexpected wakeup for task 13B.0082Unexpected wakeup for task 14B.0083Unexpected wakeup for task 15B.0084Unexpected wakeup for task 16B (timer task).0085Unexpected wakeup for task 17B (fault task).If you get one of these, one of the IO controllers is probably broken. For example, itsreset logic is not working, or the wakeup logic on the RDC or Ethernet board isgenerating the wrong task number.0104Loading SCB Initial from floppy disk--don't confuse this MP code withStartDeviceInit (also 0104) from emulators; the preceding sequence of MPcodes disambiguates them. fq+Ff brm `Sm ^m7sr \m2 ZmBmY)&VtVTvt$R8 PWrmsr- Nm& Lm Jm. I-m0sr Gbm- Em0Bt<A.>?d,,= :r m2m90 7fm 5m 3m 2msr 0;m .qm ,m *m2 )m 'Fm %|m #m !m m, Qm,t2&vt! Srm3m+m w?U5Dolphin Booting and Maintenance Panel Codes11MP Codes from InitialFault handler MP codes in the range 100 to 255 may also happen when running thenew Initial; these are in a different table because they are common to Initial, Pilot, andAlto.0700Start map test.0702#Bad map.0400Start storage test. 0401 to 0655Failures detected on one or more boards. MP shows for about 1.0 seconds:0400+ 1 if storage board 1 had failures+ 2 if board 2+ 4 if board 3+ 8 if board 4+ 16 if board 5+ 32 if board 6+ 64 if board 7+128 if board 8.The above is the interpretation for the 96k-word storage boards; +1 actuallymeans 'the first 128k words'; +2 'the second 128k words'; etc. NHardBadCount of hard bad pages (ones with uncorrectable failures), where pages are256 16-bit words; shown after 0401-0655. NSoftBadCount of soft bad pages (only correctable failures); shown after NHardBad. BlkSyndromeA four character octal number in which the first character is the value ofBlk[0:1] and the last three characters are the Syndrome of the last storagefailure detected by the error correction hardware; shown after NSoftBad. Atranslation table from values of BlkSyndrome to chip positions on the storageboards is given in a table later.0701#Not enough memory. (Initial requires 64K words.)0720Starting to load emulator microcode from disk.0721#No RDC.0722#RDC Read error.0725Starting to boot Pilot from disk.0730 to 0736 appear during floppy disk booting which only happens on Tor and ESSconfigurations, which have different Initial microcode.0730#Start floppy disk loader.0731#Mesa never ready.0732#Illegal for floppy disk booting.0733#Bad floppy disk status.0734#Execute input channel transfer not found.0735#Loader ended.0736#Invalid FIFO type.0741#Can't find UTVFC (or Tor display controller).When Initial starts Etherbooting, it puts 740+2*bfi into the MP. (bfi is related to theboot file number). If EtherLoad can't load that file within a reasonable length of time itwill give up and bump the MP by one. fq+Ff b^t?\H[ Wrm Um Tm RE m4 mPzmN$mLmKmIPmGmEmCmB%m@[-m>> < m4m:( 90 m/ 7f m%$m57m3.m2-m0;! .qm1 +m. *m (=m &sm!#tP" 7 krm m m  m Am) vm m  m srot< 5& $ ?\x*Dolphin Booting and Maintenance Panel Codes120758Trying to load AltoD0.Eb from the Ethernet.0759#Timeout trying to load AltoD0.Eb0762Trying to load AltoTOR.Eb from the Ethernet.0763#Timeout trying to load AltoTOR.Eb0774Trying to load PilotD0.Eb from the Ethernet.0775#Timeout trying to load PilotD0.Eb.0778Trying to load PilotTOR.Eb from the Ethernet.0779#Timeout trying to load PilotTOR.Eb.0809Pilot Microcode not installed on SA4000. (Try to EtherBoot.)0810Germ not installed on SA4000. (Try to EtherBoot.)0811Physical Boot Volume not set on SA4000. (Try to EtherBoot.)0812Label check from SA4000. (Try to EtherBoot.) fq+Ff brm+ `Sm ^m, \m! Zm, Y)m" W^m- Um# Rm= Q+m2 O`m< Mm-p MN8^Dolphin Booting and Maintenance Panel Codes13Syndrome Translation Table for 256k Storage Boards using 64k RAMsInitial records Blk and Syndrome for the last error correction fault of its storage test andshows these as a single octal number with Blk.0 and Blk.1 displayed in the firstcharacter and Syndrome in the last three characters. If the Syndrome is not in thetable below, then it is not a single error, so no single chip can be identified. Blk.0 andBlk.1 are irrelevant for the 256k storage boards.Syn-Bad BitSynBad Bitdrome0-63d)Locationdrome0-63dLocation(octal) (c.0 to c.7)(octal)(c.0 to c.7) 1c.7U9717230U70 2c.6U10717446U60 4c.5U11717762U51 70U155200c.0U160 10c.4U1272061U111 1316U14821217U101 1532U13821433U91 1648U12121749U81 20c.3U1262279U158 268U8423325U151 3224U6723541U141 3440U5723657U125 3756U482475U92 40c.2U14325321U66 464U11325537U56 5220U12225653U47 5436U11226613U116 5752U10227229U106 6712U15927445U96 7328U15227761U86 7544U1423073U156 7660U13231319U149100c.1U15331535U1391062U8231651U12311218U6832611U9511434U5833227U6911750U4933443U5912710U12433759U5013326U1143467U9313542U11535223U8313658U10535439U1041476U15735755U9415322U15036715U8715538U14037331U7115654U10337547U6116614U8537663U52 fq+Ff bA^t\\9[E YLP W1 TrX#+ RE#+3 Pz#+ M#+3 K>#+3 Is#+3 G#+3 E#+3 D#+3 BI#+3 @~#+3 >#+3 <#+3 ;#+3 9T#+3 7#+3 5#+3 3#+3 2)#+3 0_#+3 .#+3 ,#+3 *#+3 )4#+3 'i#+3 %#+3 ##+3 " #+3 ?#+3 t#+3 #+3 #+3 #+3 J#+3 #+3 #+3 #+3  #+3 U#+3 :YBDolphin Booting and Maintenance Panel Codes14Syndrome Translation Table for 96k Storage Boards using 16k RAMsInitial records Blk and Syndrome for the last error correction fault of its storage test andshows these as a single octal number with Blk.0 and Blk.1 displayed in the firstcharacter and Syndrome in the last three characters. If the Syndrome is not in thetable below, then it is not a single error, so no single chip can be identified.Syn-Bad BitBlkBlkBlkdrome0-63d)=0=1=2(octal) (c.0 to c.7) 1c.7U082U143U143 2c.6U104U165U165 4c.5U103U164U164 70U003U003U065 10c.4U081U142U142 1316U005U005U067 1532U065U126U126 1648U067U128U128 20c.3U020U020U082 268U011U011U073 3224U013U013U075 3440U073U134U134 3756U075U136U136 40c.2U042U042U104 464U007U007U069 5220U009U009U071 5436U069U130U130 5752U071U132U132 6712U015U015U077 7328U017U017U079 7544U077U138U138 7660U079U140U140100c.1U041U041U1031062U026U026U08811218U028U028U09011434U088U149U14911750U090U151U15112710U034U034U09613326U036U036U09813542U096U157U15713658U098U159U1591476U030U030U09215322U032U032U09415538U092U153U15315654U094U155U155 fq+Ff b@^t\\9[E YLP UrX#+ T#+ RE N#+ M#+ K>#+ Is#+ G#+ E#+ D#+ BI#+ @~#+ >#+ <#+ ;#+ 9T#+ 7#+ 5#+ 3#+ 2)#+ 0_#+ .#+ ,#+ *#+ )4#+ 'i#+ %#+ ##+ " #+ ?#+ t#+ #+ #+ #+ J#+ #+ #+ #+R :X2Dolphin Booting and Maintenance Panel Codes15Syn-Bad BitBlkBlkBlkdrome0-63d)=0=1=2(octal) (c.0 to c.7)16614U038U038U10017230U040U040U10217446U100U161U16117762U102U163U163200c.0U019U019U0812061U025U025U08721217U027U027U08921433U087U148U14821749U089U150U1502279U033U033U09523325U035U035U09723541U095U156U15623657U097U158U1582475U029U029U09125321U031U031U09325537U091U152U15225653U093U154U15426613U037U037U09927229U039U039U10127445U099U160U16027761U101U162U1623073U004U004U06631319U006U006U06831535U066U127U12731651U068U129U12932611U012U012U07433227U014U014U07633443U074U135U13533759U076U137U1373467U008U008U07035223U010U010U07235439U070U131U13135755U072U133U13336715U016U016U07837331U018U018U08037547U078U139U13937663U080U141U141 fq+Ff brX#+ `S#+ ^ [#+ YL#+ W#+ U#+ S#+ R"#+ PW#+ N#+ L#+ J#+ I-#+ Gb#+ E#+ C#+ B#+ @7#+ >m#+ <#+ :#+ 9 #+ 7B#+ 5x#+ 3#+ 1#+ 0#+ .M#+ ,#+ *#+ (#+ '##+ %X#+ ##+ !#+ #+ .#+ c#+ #+ R$sMDolphin Booting and Maintenance Panel Codes16MP Codes from Cedar and Trinity Pilot MicrocodeFault handler MP codes in the range 100 to 255 may also happen when running Pilot;these are in a different table because they are common to Initial, Pilot, and Alto.0104Start device initialization.NPagesNumber of 'good' pages found by Initial, shown briefly after initializingdevices and just before loading the final microcode overlay. This number willbe garbage unless you ran the new Initial the last time you booted, and it willbe garbage if you ran Jasmine or Audio microcode since last booting.MP Codes From Alto Emulator MicrocodeFault handler MP codes in the range 100 to 255 may also happen when running Alto;these are in a different table because they are common to Initial, Pilot, and Alto.Assembly switches allow the Alto emulator to be assembled for direct startup fromMidas with no microcode overlays and no requirement for running Initial first. The 0100MP code only happens in this debugging configuration, which must do its own map andstorage test and initialization.0100Start map and storage test and initialization.0101#Not enough memory. (You need 512 pages or 128K words--more than the64k words required by Initial.)0104Start device initialization.0105Started UTVFC initialization (invisible).0106Finished loaded or flushing CSL keyboard overlay (invisible--only happens onsystems with CSL keyboard overlays; debugging systems and some Lisp andSmalltalk systems don't have such an overlay).0107Finished display initialization (invisible--this will be 0106 with no CSL keyboardoverlay).0110Started disk boot (invisible).0111#Timeout waiting for disk status.0112#Hardware error reading disk (after 10 retries).0114Start booting the NetExec.0118Breath-of-life read successfully from disk or Ethernet.NPagesThe number of 'good' 256-word pages determined by Initial is put in the MPjust before the final microcode overlay overwrites initialization; it normallyremains in the MP until you boot or crash. The Alto emulator startsimmediately after loading the final overlay. fq+Ff b/^tK\ G ZCrm Wm 3mU>t mT)r mRE/ Iq%Fkt>D GB@@7?>m@< :rm. 89m/m6o 3m 2m) 0;mtm.q>m,,r *m*tm)r 'Fm %|m #m/ !m m7 Qm @m2mDm,$ ?OaDolphin Booting and Maintenance Panel Codes17MP Codes from Pilot and Cedar SoftwareFault handler MP codes in the range 100 to 255 may also happen when running Pilot orCedar; these are in a different table because they are common to Initial, Pilot, and Alto.I think these MP codes are the same for both Rubicon and Trinity Pilot releases.0800Not Cedar microcode.0801Ancient microcode (release date from VERSION opcode not recent enough).0802Incompatible version number.0900Germ started loading boot file.0901#Germ allocation trap--out of frames.0902#Control fault. (Probably an unexpected KFCB or trap.)0903#Start trap--attempt to start an already started module (Pilot bug).0904#Germ page or write protect fault (Pilot bug).0909#Germ unnamed ERROR. (As in ENDCASE => ERROR; Pilot bug)0910Germ running doing inLoad or outLoad.0911#Germ and physical volume have incompatible version numbers.0912#Germ and boot file have incompatible version numbers.0913#No physical boot file installed.0915#Running TeleDebug server (frequently means couldn't get to CoPilot or noCoPilot on disk).0919Germ has returned to caller who has hung.0920Germ disk or Ethernet driver running; might mean that no gateway isresponding to your machine's call for help in booting. Check the gatewaysituation on your Ethernet connection.0921#Hard device error on device being booted.0922#Timeout of boot.0923#Broken link in chained boot file. (Something about your germ or boot files iswrong--try refetching and reinstalling germ and boot files.)0924#No response from any boot server to Germ's request for an Ether boot file.0925#Germ bad packet--unexpected packet sequence number or size.0930Initializing Pilot Control and Mesa Runtime.0931#Pilot and StartPilot have incompatible version numbers.0932#Trap before trap handler ready (Pilot bug).0935#Can't get to the debugger or too early in startup to find debugger. Try usingOthello's Set Debugger Pointers command.0936#Swap to debugger canceled because of H key switch.0937Attempting to set the time via the Ethernet; sometimes get this MP code whenyou are trying to go to CoPilot but failed to boot CoPilot before booting yourClient volume.0938#Running cleanup procedures, normally before a world swap.0939#System.PowerOff called, and no power control relay.0940Initializing Pilot Storage.0947Drive not ready. (Waiting for it to become ready.)0950Scavenging (wait awhile).0960Deleting temporary files from previous run.0970Spaces being created for non-bootloaded code and data. fq+Ff b&^tD\P [: Xxrm Vm6 Tm REm Pzm$ Nm(sr LmC Km- IPm srsr Fm% Dm; Cm5 ARm ?mEm= ;m) 9Tm'm7 <m5& 3m) 2)m 0_m3m.< ,m* *m; (`m, &m7 $m+ #mNm!6( km2 m2m:m  Am9 vm3 m  m3 om m+ 3m6 ?^DDolphin Booting and Maintenance Panel Codes180975Transaction crash recovery: transaction log being processed.0980Initializing Communication.0981Trying to find a Pup/EthernetOne 8 bit address.0990PilotClient.Run has been called.0990 is what you see after Pilot has finished initialization. fq+Ff brm< _m ]m/ [mXxt= X162Dolphin Booting and Maintenance Panel Codes19Fault MP Codes from Initial, Cedar, Trinity Pilot, and AltoThe old Initial has different fault MP codes.115Unexpected Ethernet output task wakeup (Alto only).116No state vector error indicating process code inconsistency (Pilot only); rumoris that this happens when a process that shouldn't page fault does.117Two MC2 errors; both MC2A and MC2B pipes indicate errors; since LogSE isillegal, this might mean two consecutive references experienceduncorrectable storage failures. Alternatively, this been caused by violatingthe Output-Output-PStore4 Gotcha (microcode bug).119Stack overflow or underflow. For Pilot and Cedar, this can only happenduring microcode initialization because stack errors are subsequently passedthrough to software. For the Alto emulator, this always crashes.0120 to 0135RM or CS parity error, possibly in combination with other errors. MP code is120 plus:1 if MC1 or MC2 error;2 if RM parity error;4 if CS parity error;8 if stack overflow or underflow.Many codes show a multiple of 20d + a task number, where the task assignments aregiven below. The 'pipe task' is the one issuing the reference causing an error--this candetermined from the error pipe; the 'current task' is the one running when the faultaborted execution.Alto task assignments:SDD Pilot task assignments 0emulator 0emulator 1unused 1unused 2unused 2unused 3unused 3unused 4unused 41st MIOC or 2nd 3mb Ethernetoutput 5color display 52nd 3mb input or 3rd 10 mbEthernet 63 mb Ethernet output 6color display, 2nd MIOC, or 2nd10mb Ethernet 73 mb Ethernet input 71st 10mb Ethernet 8RDC (SA4000 controller) 81st 3mb Ethernet output 9unused 91st 3mb Ethernet input10UTVFC (display controller)10RDC (SA4000 controller)11unused11unused12unused12 UTVFC or UIB terminal controller13unused13unused14timers14 timers15fault task15 fault taskThe following codes imply no RM or CS parity error.0136MC12 error occurred but none of the reasons for it is indicated; i.e., neither fq+Ff b;_t- \rm3 Yom;mWC Um+mS< 2mQq/mO1 MmGmK>EmIsA F m7mE mC@mAum?m=!;At*'9w4%7N5m3Cr0;m0/0;2m./0;2m-/0;2m+E/0;2m){/0;22'm%/ 0;22$m"P/0;22 m/0;2 m/0;2m&/0;2m[/0;2m/0;2m/0;#m/0;2m1/0;mf/ 0;  t3 *rm+# ?](sDolphin Booting and Maintenance Panel Codes20H4PE, MOB, MC1A, MC1B, MC2A, nor MC2B errors are true. Conceivably,this can be caused by an MC1 fault on the reference following a PFetch4, ifthe PFetch4 experiences error correction. Due to a hardware bug, the faultisn't started soon enough in this case, so an extra non-fault-task instruction isexecuted. If the extra instruction is a reference it wipes out the MC1ErA andMC1ErB indicators.0137MX (monitor exit) or MW (monitor exit and wait) opcode executed but themonitor referred to was already unlocked [Pilot only].It is better to show the pipe task rather than the current task for H4PE and MOB errors,but for H4PE's the hardware doesn't indicate whether pipe A or pipe B was involved,and I couldn't find out whether or not the pipe is indicated correctly for MOB's.140 to 155Map out of bounds indicating virtual address greater than 22d bits. Codeshown is 140 + current task. All MOB faults are passed to software whenrunning Pilot.160 to 175H4 parity error indicating bad parity on the processor bus used by Input,IOStore4, and IOStore16 references. Code shown is 160 + current task.This can never happen at present since these errors are ignored for all tasksby all microcode systems. However, Initial has an entry point which causesany emulator to treat H4PE's as a crash condition, and if this entry point wereused, these errors would crash.180 to 195Some fault when the preceding instruction contains a LoadPage and the faulthandler decides to continue execution. This indicates a microcode bug andshould be reported. For Pilot, this cannot happen for the emulator; for Alto itis never supposed to happen.200 to 215MC2 crash, indicating correctable storage failure of PFetch1, 2, or 4 withLogSE true in the map entry or an uncorrectable storage failure on anyreference. The code shown is 200 plus the pipe task. Since LogSE ispresently illegal, this code should indicate an uncorrectable storage failure;some microcode bugs may cause it (e.g., Output-Output-PStore4 Gotcha).220 to 235MC1 crash, indicating a page or write protect violation. The code shown is220 plus the pipe task. Pilot only reports MC1 crashes on io task references;emulator MC1 faults are passed to software (except that MC1 faults whenexecuting the LoadRAM-and-jump opcode will crash). MC1 faults alwayscrash for Alto.240 to 255SetFault or Breakpoint crash. The code shown is 240 plus the current task.This is used by the microcode in a few places when impossible conditions aredetected; for unused tasks, it represents an unexpected wakeup. fq+Ffmbr(m`SHm^Em\?mZ;mY) Vm?mT6R"t?PWE N> Kr mAmJ# :mHY E m@mC$"mB%3m@[1m>D m< :' m.m8]/m6D m4 2) m&!m0_/m. :m,Em*= (` m6m&=m$0m#*m!6  m=m=m?  @MP7LOGO HELVETICA  HELVETICA  HELVETICA HELVETICA  HELVETICA HELVETICA ( 19?FMSV\a$elsu{j/s( MPCodes.BravoFialaJune 9, 1983 10:36 AM