Disclaimer: a lot of the work described below was done with the help of AI. None of this message was.
For those who are interested in very old workstations, I have now a working FPGA-based emulation of a Sun-2 - those based on the MC68010 processor. It can boot SunOS 4.0.3 all the way to multi-user prompt, from network or from disk for Multibus.
What is simulated:
* Both Multibus and VME based systems, each using their own vintage PROM
* New CPU core compatible to the original MC68010, including full support for restarting instructions after a fault (needed to support virtual memory in SunOS)
* Serial port; for console, also second SCC for keyboard/mouse on VME
* Ethernet; built-in Intel 82586-based Ethernet with DMA for VME, and either the 82586-based Sun Multibus Ethernet or the 3Com 3C400 Multibus Ethernet for Multibus (the only upside of the 3C400 is that is has a lot less onboard memory so it fits in smaller FPGA - the downside is, it doesn't have enough onboard memory to actually netboot SunOS 4.0.3 you need the patch the kernel as documented by Sun... very early Ethernet!)
* Disk; Xylogics 450 SMD controller for Multibus, backed by a raw micro-sd card for disk xy0. No disk support available for VME yet, only netbooting on NFS root
* Framebuffer; both the 2/50 (VME) built-in framebuffer and the 2/120 (Multibus) framebuffer can output to HDMI, the Multibus framebuffer also add the second SCC for keyboard/mouse
* Keyboard and mouse support has not been tested
The emulation is functional - the replica doesn't match the exact timings of the original design. One reason is the MMU and it's large asynchronous SRAMs, which Sun fitted in a clever way so that it wouldn't add delay to memory accesses. The replica uses synchronous BRAM in the FPGA, costing 2 cycles per access before the latency of the DDR3 is added. It also uses a core clocked faster than the original MC68010 to compensate for that - the dhrystone scores end up broadly similar.
I originally had a hand-written project that reached the PROM prompt with the Multibus PROM, using a lightly patched Suska 68K10 core. Then I started using claude code
The change of core was needed as the 68K10 has issues with restarting an instruction after a fauit - a feature of the MC68010 most recreation project don't need as they replicate hardware using the MC68000 (Atari ST, Commodore Amiga 500, early Macintoshes, ...), but which is mandatory for SunOS.
Currently "supported" boards include the QMTech Wukong V1 (discontinued), QMTech Wukong V3, and Arrow/Terasic DECA (discontinued).
For those who are interested in very old workstations, I have now a working FPGA-based emulation of a Sun-2 - those based on the MC68010 processor. It can boot SunOS 4.0.3 all the way to multi-user prompt, from network or from disk for Multibus.
What is simulated:
* Both Multibus and VME based systems, each using their own vintage PROM
* New CPU core compatible to the original MC68010, including full support for restarting instructions after a fault (needed to support virtual memory in SunOS)
* Serial port; for console, also second SCC for keyboard/mouse on VME
* Ethernet; built-in Intel 82586-based Ethernet with DMA for VME, and either the 82586-based Sun Multibus Ethernet or the 3Com 3C400 Multibus Ethernet for Multibus (the only upside of the 3C400 is that is has a lot less onboard memory so it fits in smaller FPGA - the downside is, it doesn't have enough onboard memory to actually netboot SunOS 4.0.3 you need the patch the kernel as documented by Sun... very early Ethernet!)
* Disk; Xylogics 450 SMD controller for Multibus, backed by a raw micro-sd card for disk xy0. No disk support available for VME yet, only netbooting on NFS root
* Framebuffer; both the 2/50 (VME) built-in framebuffer and the 2/120 (Multibus) framebuffer can output to HDMI, the Multibus framebuffer also add the second SCC for keyboard/mouse
* Keyboard and mouse support has not been tested
The emulation is functional - the replica doesn't match the exact timings of the original design. One reason is the MMU and it's large asynchronous SRAMs, which Sun fitted in a clever way so that it wouldn't add delay to memory accesses. The replica uses synchronous BRAM in the FPGA, costing 2 cycles per access before the latency of the DDR3 is added. It also uses a core clocked faster than the original MC68010 to compensate for that - the dhrystone scores end up broadly similar.
I originally had a hand-written project that reached the PROM prompt with the Multibus PROM, using a lightly patched Suska 68K10 core. Then I started using claude code
Currently "supported" boards include the QMTech Wukong V1 (discontinued), QMTech Wukong V3, and Arrow/Terasic DECA (discontinued).