Simics is a brilliant tool, but what it lacks is a simple way how to make an output from the simulated code. On some simulators, such as MSIM, the simulated code can print a character by writing its code to a special address of memory. It is a priceless feature - debugging output is possible without having to write a driver for a framebuffer or a serial console.

I’ve had some troubles making the graphical console work on the Serengeti machine. On the Simics forum (https://www.simics.net/mwf/forum_show.pl) a guy from Virtutech told me that it is theoretically possible to configure the simulated Simics machine to support a graphical console, but…

First, why do you want the graphical console in the serengeti machine? The Serengeti architecture does not have any serial ports where mouse and keyboards can be connected, i.e. even if you get the graphics card to work, it can only be used to view output. No interactive programs can be run using it. The older SunFire architecture has better support for a graphical device with keyboard/mouse input.

The graphics card was never tested as output device for OBP. Instead the machine was booted as usual and then an X server was started with no mouse/keyboard configured. This required some manual setup and since this was several years ago, I don’t know if it works with more modern Solaris versions.

As HelenOS UltraSPARC port does not support the serial console yet, I will have to write a serial console driver one day. It is, however, difficult to debug a kernel with no possibility of debugging output and I don’t have mood for writing the serial console driver now. So I feel a little bit envious of the ones who can debug their kernels in MIPS-like simulators. Wait a moment… Is it really impossible to use some simple way of output in Simics? With some sort of invention, one can achieve it!

Read the rest of this entry »