General Information

L4 on Alpha runs on EB164 PCI boards. It is in something like pre-alpha state. The following things need to be implemented:

To compile L4Alpha, gas, gasp, and ld are required. You need a pretty old version of the binutils, version 1.39, since newer versions generate stupid code for lda and ldah instructions. Instead, it loads the immediate value from the memory via the gp register, ldq r,xxxx(gp) which is not possible in PALmode.

Sigma0 can be compiled with standard tools. An l4lib interface exists as library. Inline assembly code doesn't work with gcc due to the problem that gcc does not save registers and register allocation for arguments cannot be done by hand.

To generate the system-image, sysgen is required. Sysgen stuffes a.out and coff files together to one bug image.

To start L4Alpha, you need the Debug Monitor from the EBSDK. Use the netboot or fboot command to load the image

I never compiled it on a 32-bit machine due to problems with cross-compiling 64bit code with gcc. Best way is to have an OSF / Digital UNIX box handy.


You can download the sources and precompiled binaries of the public tools from here.
A thread managing "collection of function" can be found here.
Everything else you may need (as the PALcode violation checker) can be found in the EBSDK (Evaluation Board SDK), a compilation of tools from Digital.

Copyright & Licensing

Sources are Copyright (c) by University of Technology, Dresden.
Please register with us by sending an email.
Please report changes and bug-fixes to
Parts of this implementation are protected by patents. Please contact me for further information regarding that.

Sources can be distributed under GNU PUBLIC LICENSE for educational purpose. See

This version of L4 on Alpha was developed by Sebastian Schönberg and Volkmar Uhlig.