Burning a Magic7 EPROM

For operating system programmers only.

Described here are the superficial basics of what you need to know in order to make a ROM version of the kernel, transfering the executable from a DECstation to a PC, and burn an erasable programmable read only memory (EPROM) chip using the Allpro system.

Compiling the Kernel

To make a ROM version of the kernel the following environment variables need to be set before compiling:

To date, we have used 3 different types of EPROMS and thus 3 different values for ROM_SIZE:

The m7 Makefile automatically checks that tables required for i80960 bootup are located at their proper addresses. The minimum address of the text segment should be 0xF0000000. The maximum address of the text segment should be 0xF0000000+ROM_SIZE. You may want to run gnm960 m7 | sort | tail or invoke make listing to see the maximum text segment (code) address. Also, head the instructions given by the .check_addresses part of the Makefile, directing where the global variables _rom_prcb and _init_boot_record should be located, and how to fix their positions if need be.

The file m7.ROM_SIZE (i.e. m7.80000) is the stripped executable that is used to program the EPROM. The m7/Makefile automatically checks addresses and strips the b.out header for preparation to be downloaded to the Allpro program.

Transfering the Executable

On the PC hosting the Allpro, in room E15-347, type ftpon. This launches a DOS batch file that copies the config.sys file that runs the terminate and stay resident tcp/ip handler after rebooting. After it soft reboots, cd c:\tmp and type tftp serve to start the ftp server that will dump files into that directory.

Now go to a DECstation, cd $CHEOPS_LOCAL_BIN and type tftp phoenix to start a tftp session. Then type mode binary and then put m7.ROM_SIZE. The transfer will signal completion after a while. Now go back to the PC and type q to quit the tftp server and then ftpoff to take out the tcp/ip handler after the next reboot. Once it has rebooted, cd c:\allpro and then type allpro to begin the Allpro session.

Programming with the Allpro system

Programming an AMD AM27C4096 EPROM

Select the following items from the allpro main menu/and subsequent submenus.

  1. main menu/select library epramd (Advanced Micro Devices EPROM Library) and device 13211 (AM27C40960 - 256K x 16bits - Flash Algorithim) = 4096 Kbits or 512 Kbytes = 80000 hex bytes.
  2. main menu/read formatted file/binary format/m7.8000
  3. this step is OPTIONAL: view the data to make sure it arrived properly, but be very careful not to edit anything.
    1. main menu/edit data map
    2. verify that the value at address 0h is 00 30 28 80
    3. go to byte 2C of the ibr (which starts at F0000000+ROM_SIZE-100) with the commands
    4. F8 to skip to next page +40000
    5. F5/3FF2Ch to go to the desired position and verify that the value at address 7FF2Ch is FF 7F FE 1F
    6. F10 to return to main menu
  4. take an AM27C4096 EPROM that has been exposed to UV light for at least 1 hour. (Remember the legs must poke downward into the foam in the tanning booth). Insert it into the Allpro "software driven device programmer" with the notched end facing south and lock it in with the lever.
  5. main menu/blank check device (this will take a while)
  6. main menu/program device (this will take even longer)
  7. now put a label on the EPROM that relays the most important information.

Programming an INTEL 27C220 CMOS EPROM

Select the following items from the allpro menu as shown above:

  1. select library eprint (Intel EPROM Library) and device 12802 (27C220 - 128K x 16 CMOS EPROM - Quick Pulse) = 2048Kbits or 256Kbytes = 40000 hex bytes.
  2. read formatted file/binary format /m7.4000
  3. as done above, optionally verify that the value at 0h is 00 30 20 80 and the value at 1FF2Ch is FF 7F FE 1F
  4. Continue as shown above.

Programming an INTEL 27C210 CMOS EPROM

Select the following items from the allpro menu as shown above :

  1. select library eprint (Intel EPROM Library) and device 12644 (27C210 - 64K x 16 CMOS EPROM - Quick Pulse) = 1024Kbits or 128Kbytes = 20000 hex bytes.
  2. read formatted file/binary format /m7.2000
  3. as done above, optionally verify that the value at 0h is 00 30 20 80 and the value at FF2Ch is FF 7F FE 1F
  4. Continue as shown above.


Jump to the Magic7 Intro
Jump to the Cheops Homepage
Originally created by sbeck@media.mit.edu, in FrameMaker format.
cheops-web@media.mit.edu
This is a "fix it yourself" page, located at /mas/garden/cheops/WWW/magic7/magic7_eprom.html