An experiment with implementation of very simple operating system for Malta board.
To build Mimiker you will need a custom MIPS toolchain we use. You can download
a binary debian package
from here.
It installs into /opt
, so you'll need to add /opt/mipsel-mimiker-elf/bin
to
your PATH
.
Otherwise, if you prefer to build the toolchain on your own, download crosstool-ng which we use for configuring the toolchain. You can get it from here. Then:
cd toolchain/mips/
ct-ng build
By default, this will build and install the mipsel-mimiker-elf
toolchnain to
~/local
. Update your $PATH
so that it provides mipsel-mimiker-elf-*
,
i.e. unless you've changed the install location you will need to append
~/local/mipsel-mimiker-elf/bin
to your PATH
.
With toolchain in place, you are ready to compile Mimiker. Run
make
in project root. This will result with a mimiker.elf
file containing the
kernel image.
As you presumably do not own a MIPS Malta board, you will need a simulator to
test the kernel. We currently support OVPsim (incl. Imperas proprietary
variant) and QEMU. If you're using OVPsim, make sure your $IMPERAS_HOME
is set
correctly.
We provide a python script which simplifies loading the kernel image to simulator. In project root dir, run:
./launch
This will start the kernel using OVPsim if available, or QEMU otherwise.
Some useful flags to the launch
script:
-h
- Prints usage.-d
- Starts simulation under a debugger.-D DEBUGGER
- Selects debugger to use.-S SIMULATOR
- Manually selects the simulator to use.-t
- Bind simulator UART to current stdio.
Any other argument is passed to the kernel as a kernel command-line argument. Some useful kernel arguments:
init=PROGRAM
- Specifies the userspace program for PID 1. Browse./user
for currently available programs.
If you want to run tests please read this document.
Useful sites:
Toolchain documentation:
MIPS documentation:
- MIPS® Architecture For Programmers Volume II-A: The MIPS32® Instruction Set
- MIPS® Architecture For Programmers Volume III: The MIPS32® and microMIPS32™ Privileged Resource Architecture
- MIPS32® 24KE™ Processor Core Family Software User’s Manual
- MIPS32® 24KEf™ Processor Core Datasheet
- Programming the MIPS32® 24KE™ Core Family
- MIPS® YAMON™ User’s Manual
- MIPS® YAMON™ Reference Manual
- MIPS ABI Project
Hardware documentation: