This is a bootloader for ZJUNIX, with respect to mips32 specification, and is able to run on QEMU.
Build tools:
- make
- Cross compiler for mips (either one is ok)
- mips-mti-elf/mips-img-elf: Provided by MIPS, available on both Windows and Linux.
- mips-linux-gnu: If you use this compiler, the compilation flags in Makefile should be changed, as they are written for mips-mti-elf/mips-img-elf.
To run:
- Install QEMU
- Build (make all)
- Run (make run)
To debug:
- Run QEMU in debug mode (make run-gdb)
- Connect cross compiler's gdb to QEMU (mips-mti-elf-gdb -x scripts/debug.gdb)
- Within gdb, set break points and execute
continue
to start debugging bootloader
- VGA
- VGA Specification:
- VGA Hardware: A short introduction of VGA
- FreeVGA: Detailed description of VGA, including hardware specification and programming instructions
- Code snippets:
- x86 version: written in C and x86 assembly
- C version without BIOS: written in C without BIOS invocation, but it doesn't setup palettes, which is an indespensible part of bare metal vga driver
- VGA Specification:
- Compiler
- mips-mti-elf/mips-img-elf: MIPS