wiki:boot_loader

Version 1 (modified by alain, 10 years ago) (diff)

--

GIET_VM / Boot-Loader

The GIET-VM boot-loader is defined in the boot.c file.

The boot_init function makes the initialisation in two steps: The first step is sequencially executed by proc[0][0][0], while other processors are in wait state:

  • Physical memory allocators initialisation : boot_pmem_init()
  • Page table initialisation : boot_ptabs_init()
  • Proc[0][0][0] MMU activation
  • Private vobjs initialisation : boot_vobjs_init()
  • Schedulers initialisation : boot_schedulers init()
  • Peripherals initialisation : boot_peripherals_init()
  • Kernel & application code loading : boot_elf_load()
  • Start all other processors

The second step is executed in parallel by all processors:

  • CP0_SCHED register initialisation
  • MMU Activation
  • Status Register Initialisation (to use the GIET_VM exception handler).
  • Jump to kernel_init()