Source Code Organisation

Describes the platform-independent files of the bootstrap.

The generic files are stored in the os/kernelhwsrv/kernel/eka/ directory.

The files are:

  • kernel/bootstrap.mke - Generic part of the makefile, written for GNU make. Works for both ARM and X86 bootstrap builds.

  • include/e32rom.h - C++ Header file describing the layout of the ROM header and the ROM file system.

  • include/kernel/kernboot.h - C++ Header file describing the interface between the bootstrap and the kernel, mainly the definition of super page fields. Applicable to both ARM and X86.

  • include/kernel/arm/bootcpu.inc - Assembler include file giving CPU-specific definitions for ARM.

  • include/kernel/arm/bootdefs.h - C++ Header file containing some internal bootstrap definitions for ARM.

  • include/kernel/arm/bootmacro.inc - Assembler include file containing some general-purpose macro definitions for ARM.

  • include/kernel/arm/bootstrap.lnk - Linker script file for GNU linker; used when building ARM bootstrap using GNU tools.

  • include/memmodel/epoc/<model>/arm/mmboot.h - C++ Header file containing memory-model-specific definitions shared with bootstrap.

  • kernel/arm/bootcpu.s - Source file containing routines which are specific to a particular ARM CPU rather than generic to all ARM CPUs.

  • kernel/arm/bootutils.s - Source file containing lots of useful subroutines such as memory copy, memory fill, generic MMU mapping code, generic memory allocator, and so on.

  • kernel/arm/bootmain.s - Source file containing top-level bootstrap code.