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/alpha

page maintained by Adam Wiggins (awiggins@cse.unsw.edu.au)

Welcome to the home of the L4Ka::Pistachio kernel for the Alpha.

Supported Hardware

The kernel has been extensively tested on the DEC Miata (Alpha 21164) system. Systems utilizing the Tsunami chipset (Compaq DS20, API UP1000, etc.) are also supported, however these platforms have not been extensively tested.

Tested Hardware

We have limited access to Alpha hardware. The following systems have been tested:

Miata 433Mhz 21164 Complete support
Compaq DS20 21264 The kernel runs, however has only been lightly tested.
The kernel should be trivially portable to any Alpha system with a conforming console.

Performance

We have not subjected the kernel to large scale benchmarks, however we have experimental IPC times using an assembly fastpath of approximately 130 cycles each way (measured on the Miata system). We have subjected the kernel to high loads using the Mungi Operating System.

Building and Booting

The kernel is known to work with GCC 3.2.1 and binutils 2.13, however GCC version 2.95.X may also work. The GCC and binutils target used was alpha-linux.

To build a bootable kernel, follow the directions to configure and build the kernel, then configure and build the user applications. When this process has finished, the directory contrib/elf-loader/ will contain a BOOTP file called alpha-loader.bin.

Copy this file to the relevant directory and boot away!

Boot example

The following is an example of booting the supplied image:
ff.fe.fd.fc.fb.fa.f9.f8.f7.f6.f5.CPU 0 speed is 2.31 ns (433MHz) ef.ee.ed.ec.eb.f4.ea.e9.e8.e7.e6.e5.e4. Digital Personal WorkStation 433au Console V7.2-1 Mar 6 2000 14:47:02 >>> >>> >>>b -fi pingpong.sjw ewa0 (boot ewa0.0.0.3.0 -file pingpong.sjw -flags 0) Trying BOOTP boot. Received BOOTP Packet File Name is: local inet address: XXX.XXX.XXX.XXX remote inet address: XXX.XXX.XXX.XXX TFTP Read File Name: pingpong.sjw netmask = 255.255.255.0 Server is NOT on same subnet as client... Router used = XXX.XXX.XXX.1 ....... bootstrap code read in base = 1d8000, image_start = 0, image_bytes = 60ba8 initializing HWRPB at 2000 initializing page table at 1ca000 initializing machine state setting affinity to the primary CPU jumping to bootstrap code elf-loader: Starting. elf-loader: switching to OSF/1 PALcode OK: version 1.22 install_module: Installing root (0x20050f00, 0x20060abf) install_module: root: (0xe00000, 0x2f08) install_module: Skipping sigma1 install_module: Installing sigma0 (0x2003e9f0, 0x20050ef5) install_module: sigma0: (0xd00000, 0x4910) install_module: Installing kernel (0x20002e10, 0x2003e9e6) install_module: kernel: (0x310000, 0x23bc0) elf-loader: Looking for KIP at fffffc0000326000 elf-loader: entry is 0xfffffc0000317418 elf-loader: Jumping to kernel Mask is 0xff 0xff L4Ka::Pistachio - built on May 2 2003 18:18:16 by sjw@escher using gcc version 3.2.1 Kernel configuration: VPT area: 0xfffffe0000000000 -> 0xfffffe0200000000 (0x200000000) KTCB area: 0xfffffe0400000000 -> 0xfffffe0410000000 (0x10000000) System configuration: Timer frequency : 1024Hz Cycle counter frequency: 432900432Hz kip_area = 3fffffbe0d0, utcb_area = 800000e0, utcb_size = 400 local id = 3fffffc0000, pager UTCB = 3fffffc0400 Please select ipc type: 1: INTER-AS 2: INTRA-AS (IPC) 3: INTRA-AS (LIPC) 4: XCPU Benchmarking Inter-AS IPC... IPC ( 0 MRs): 229.71 cycles, 0.00us, 0.00 instrs IPC ( 4 MRs): 233.00 cycles, 0.00us, 0.00 instrs IPC ( 8 MRs): 229.16 cycles, 0.00us, 0.00 instrs IPC (12 MRs): 955.95 cycles, 0.00us, 0.00 instrs IPC (16 MRs): 1112.02 cycles, 0.00us, 0.00 instrs IPC (20 MRs): 1259.90 cycles, 0.00us, 0.00 instrs IPC (24 MRs): 1404.60 cycles, 0.00us, 0.00 instrs IPC (28 MRs): 1591.21 cycles, 0.00us, 0.00 instrs IPC (32 MRs): 1721.75 cycles, 0.00us, 0.00 instrs IPC (36 MRs): 1871.24 cycles, 0.00us, 0.00 instrs IPC (40 MRs): 2012.68 cycles, 0.00us, 0.00 instrs IPC (44 MRs): 2142.05 cycles, 0.00us, 0.00 instrs IPC (48 MRs): 2284.36 cycles, 0.00us, 0.00 instrs IPC (52 MRs): 2461.13 cycles, 0.00us, 0.00 instrs IPC (56 MRs): 2575.84 cycles, 0.00us, 0.00 instrs IPC (60 MRs): 2746.75 cycles, 0.00us, 0.00 instrs What now? g - Continue q - Quit/New measurement ESC - Enter KDB

Missing Features and Known Bugs

The following are known issues with the Alpha L4Ka::Pistachio kernel:
  • The following system calls are unimplemented:
    • SystemClock
    • MemoryControl Note that this system call is not required for the Alpha architecture.
    • ProcessorControl
    • Lipc Use the Ipc system call instead.
  • SMP is not supported.
  • Exceptions are not delivered to the user. Any exception which cannot be handled by the kernel causes the debugger to be invoked.
  • The IPC path does not support long IPC.
  • Some code cleaning is necessary; sections of the implementation are still first generation.
   
 
 
 
  Mail to webmaster   © 2000-2008 University of Karlsruhe