Feature highlights

  • Motorola 68030 @25-50MHz + 68882 FPU
  • 4MB of static RAM + 64MB DRAM
  • 512k of Flash ROM
  • VT8242 based PS/2 Keyboard interface
  • AIC37C65CL based Floppy interface
  • ATA hard disk interface
  • 3x 8-bit ISA expansion slots
  • MicroATX form factor & PSU connector
  • Glue logic handled by a single XC9572XL CPLD

Hardware

I went for a relatively large amount of SRAM onboard since i knew getting the DRAM working was going to take a while. The SRAM is mapped starting at the base of memory extending upwards to 0x400000, and the DRAM is mapped in a nonconsecutive bank starting at 0xC000000. Once the DRAM is working, I’ll likely move the malloc heap into there to take advantage of all the extra memory. Since that frees up a lot of the SRAM, I might be worth copying the OS there on boot to take advantage of the single bus cycle memory access; much faster compared to the flash.

  • Revision K of the stage-3 Blitz motherboard.
  • Stage-3 motherboard with a CGA card installed into it’s ISA bus.

The large chip next to it is a PIC24FJ256, which has hardware LCD controller that i planned to hijack. I never got around to implementing it, since I had started an FPGA based solution around the same time. It was removed from the latest revision board, since I had success with using a CGA card for video instead. There is no serial port onboard, since it was much easier to just add a PC serial card to on of the ISA slots.

Software

Blitz runs my 32-bit operating system G-DOS. It supports FAT filesystems, and uses a flexible driver & init subsystem that handles hardware interfacing. G-DOS has my custom shell (G-Shell) and monitor (G-Mon) built-in, and boots directly from the onboard Flash ROM. A CGA card can be installed in an ISA slot to provide video output, and is required to use Blitz effectively. Lastly, it includes a boot-loader that can load & bootstrap a Linux kernel off a disk.

  • Testing the G-DOS shell and file manipulation commands.
  • Dumping a segment of memory in G’Mon. I believe the data visible is from the ATA/IDE hard disk controller interface.
  • Dumping the contents of a G-DOS source file from a running Blitz instance.
  • The first signs of life from the Linux kernel, having been boot-loaded in by G-DOS.

A quick history of Blitz

Wire-Wrapped Prototype

Blitz started as a wire-wrap prototype. It had the 68030 hooked up to 2MB of RAM and ROM with GALs for logic, plus an LED register as its only output. Once I had proof of code execution by seeing it blink the LEDs, I realized that wire-wrapping two 32-bit buses around was a pain in the ass, and went to design a PCB. Around this time, I started development of G-DOS, which I would develop concurrently with the hardware.

  • The backside of the stage-0 Blitz prototype. This is about the extent of the wiring I did before moving to a PCB.
  • A wire-wrapped PS/2 keyboard ISA card used to test the stage-1 and stage-2 Blitz prototypes.

PCB Revisions

I then went through 3 PCB stages; The first board was just the CPU+FPU, RAM, and ROM. The second stage added on the ISA slots and the CPLD-based DRAM interface. The third stage changed the DRAM design, then added on-board IDE, Floppy, and PS/2 interfaces. This revision was compatible with the MicroATX form-factor so it could be installed in a PC case, and this ended up being the last revision. Each of these stages got produced, assembled, debugged, and tested over about 2 years.

  • The complete stage-2 Blitz prototype motherboard.
  • The stage-2 Blitz prototype with a CGA card installed.
  • Left: stage-1, Right: stage-2, Top: stage-3
  • The stage-1 motherboard being built for the first time.

Bring-up

While bringing up the PCB version of blitz, I struggled a lot with the CPU randomly freezing. This problem would go away if I just held my finger on the metal lid of the CPU. I assumed it was a power supply problem, maybe lacking the current supply for the CPU or something. I kept spamming more and more capacitors on later board revisions and the problem subsided, though...

Read more »