Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.unix-wizards Subject: How to use odd memory sizes on odd configurations Message-ID: <2625@umcp-cs.UUCP> Date: Sat, 26-Jul-86 11:37:26 EDT Article-I.D.: umcp-cs.2625 Posted: Sat Jul 26 11:37:26 1986 Date-Received: Sat, 26-Jul-86 22:22:07 EDT Reply-To: chris@maryland.UUCP (Chris Torek) Organization: University of Maryland, Dept. of Computer Sci. Lines: 63 This information may someday be useful to someone else, and is apparently quite hard to find, so for its preservation, I am posting it here. We have a Vax 11/780-5 (i.e., a 785 that complies only with the older FCC regulations) with two memory controllers. One of these is the old 4K chip controller (MS780C) and the other the 64K chip controller (MS780E). With this configuration, for hardware reasons, the MS780E must be low memory (address zero), and the 780C high memory. As long as you stick to four or eight megabytes of 780E memory, everything is fine, for the 780C may be wired for a start address of either four or eight megabytes. (It may be that it can be set to any multiple of four megabytes.) We recently acquired two extra 780E one-megabyte boards. Until we learned how to set the 780C's memory start address, we were unable to use the extra two megabytes. The 780C would start either at four megabytes (in which case addresses from four to six meg would evoke responses from both controllers, resulting in a machine check), or at eight megabytes (in which case the memory would discontiguous, a situation that 4BSD Unix is not prepared to handle). We left the hardware address at 4M. No one seemed to know how to set it to 6M, yet VMS could use the full 10M without hardware changes, so it was clear that something could be done. I found a clue in the `VAX Hardware Handbook, Volume 1--1986', on page 5-23, which details the configuration registers for MS780E and MS780H controllers. As it happens, the MS780C `B' register has the same format (a rank assumption on my part, but it worked). Unfortunately, while the format shows the `Mem Start Addr' field, it does not say just what to put there. This I determined by trial and error---two trials, one error. Take the desired starting address and divide by two, then set bits 14 and 12. Bit 14 is `Mem Start Addr Enb' (i.e., enable). Bits 12 and 13 comprise the `Mem Init Stat'; I have no idea what this is, but examining the register showed them to be one and zero respectively, and leaving them that way worked for us. Since the 780C is at TR 2, it is addressible at location 0x20004000 (the formula for converting a TR number to an SBI address on a 780 is 0x20000000 + 0x2000*TR#). Register B is the second register, and is thus at 0x20004004. To set the starting address to six megabytes, deposit the value 0x00305000: >>>D/P 20004004 00305000 Insert this command in your floppy boot files using arff, and you are all set. Of course, you may need to install fixes for 4.1 or 4.2 to handle more than eight megabytes then. . . . [I find it rather curious that no one in the local field service group knew how to do this. Our DEC FieldServicePerson, Dan Rosendall ---who is, by the way, very competent, and a nice guy too---was told that `Unix can't use more than 8M': a rather amusing statement, given my conversion instructions from two months ago, and the fact that another campus Unix Vax that he services is using 64M. Even more amusing, someone also suggested asking `that guy at Maryland' about it. Can you guess who `that guy' might be? :-)] -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1516) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu