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).
|