Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-settings.php on line 468 Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-settings.php on line 483 Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-settings.php on line 490 Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-settings.php on line 526 Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 594 Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 594 Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 594 Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 594 Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 611 Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 705 Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 705 Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 705 Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 705 Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/classes.php on line 728 Strict Standards: Redefining already defined constructor for class wpdb in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/wp-db.php on line 306 Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/cache.php on line 103 Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/cache.php on line 425 Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/query.php on line 21 Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/theme.php on line 618 Strict Standards: Redefining already defined constructor for class WP_Dependencies in /DISK2/WWW/pavel-rimsky.cz/helenos-blog/wp-includes/class.wp-dependencies.php on line 15 HelenOS Blog

Tetris on Niagara

UltraSPARC port improvement 1 Comment »

During the last three months I have been trying to port HelenOS to the sun4v UltraSPARC architecture (Niagara). The sun4v architecture is very interesting from the system programmer’s point of view, so I will definitely put a link to my master thesis here (but I have write the thesis first, of course).

For the time being, you can just enjoy the screenshots of Tetris running on a (Simics-simulated) T2000 server and on a (remotely accessed) real T1000 server.

The only big feature missing is a support for SMP. This is what I will play with in the following weeks, because Niagara without multiprocessing would be like… (If you have an idea of a good simile, post it as a comment).

Read the rest of this entry »

Two plugins I can’t imagine Vim without

UltraSPARC port improvement No Comments »

I like Vim. Especially for editing C code. I would like to introduce two extensions I especially like.

The first one is a Vim binding for Cscope. Cscope is a tool which makes an index from your source tree and uses the index to quickly tell you

  • where a function with a given name is defined,
  • where a function with a given name is called from,
  • where a given string occurs in your source files,
  • etc.

Read the rest of this entry »

Debugging using stripes

UltraSPARC port improvement No Comments »

After several months of playing with a simulated Serengeti machine I have started to have some fun with a real hardware containing an UltraSPARC III CPU. It is a Sun Blade 1500 workstation which I’ve been lent by Sun Microsystems globalization division.

A Spanish (or French?) keyboard is connected to it (you know, globalization division…), but this is not the most interesting challenge. The most interesting thing is a way how to debug the kernel on such a machine.

Read the rest of this entry »

Standard output to Simics CLI window

UltraSPARC port improvement 1 Comment »

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 »

Bootable CD for Serengeti

UltraSPARC port improvement 1 Comment »

Recently I have been trying to create a bootable HelenOS CD for the Serengeti machine containing the UltraSPARC III processor. I decided to use SILO as a bootloader. The Sunfire machine with the UltraSPARC II processor was able to boot from the CD without any problems. On Serengeti, however, the boot process ended with an error. SILO even did not print its banner.

Read the rest of this entry »

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in