About Publications Downloads Related Projects Team L4hq.org  
 
Projects
Pistachio
Kickstart
Download
Virtualization
Pre-virtualization
Device Drivers
Multiprocessor
Marzipan
BurnNT
IDL4
Release Notes
Documentation
Persistence
Hazelnut
Download
Getting started
 
Miscellaneous
Mailing lists
Tools
VMwareGateway
Workshops
Google L4Ka.org:
 
 

L4Ka::Pistachio/ia64

The IA-64 port of L4Ka::Pistachio is in a state where it almost supports the complete L4 Version X.2 API (missing features are listed below). SMP is supported but not well tested. The port also features a handcrafted, assembly-only, fast IPC implementation.

Supported Hardware

L4Ka::Pistachio/ia64 is known to work on the following hardware configurations:
  • HP i2000 Workstations (Itanium1, Itanium2)
  • HP Ski Simulator

Building and Booting

Building the kernel and user-level applications requires GCC version 3.1 (or newer) and the corresponding binutils. Cross-compilation packages and precompiled binaries can be found under the tools menu.

The L4Ka::Pistachio kernel requires that certain parameters (e.g., memory layout) be passed from the boot loader to the kernel. As such, the L4Ka::Pistachio kernel must be bootstrapped with a customized loader. In the case of IA-64 the bootstrapping process is provided by a modified version of the FreeBSD loader.

Building the Loader

Building the L4Ka::Pistachio loader requires access to the source code of FreeBSD 5, and relies on BSD make to be installed on your system. If you do not have access to the FreeBSD source code or do not have BSD make installed you can use the precompiled binaries.

To build the loader, fetch pistachio-fbsd-loader-p0.5.tar.bz2 and unpack it. Follow the instructions in the README file to build and install the efiloader and skiloader binaries. The install process will also install a simple boot menu for you. This boot menu can be used to run an example pingpong application.

Missing Features/Known Bugs

The following features are not yet supported by L4Ka::Pistachio/ia64:
  • User-level exception handling. User-generated exceptions which can not be resolved by the kernel causes the kernel debugger to be entered.
  • PCI Configuration Space protection. All address spaces can access the complete PCI configuration space.
  • Preemption flags. Accesses to the preemption flags are ignored.
  • The ProcessorControl and MemoryControl system calls are unimplemented.
  • The Lipc system call does not try to take advantage of optimizations that can be done for intra address space communication (e.g., trust relationship).
   
 
 
 
  Mail to webmaster   © 2000-2008 University of Karlsruhe