| 1 | = GIET_VM / Boot-Loader = |
| 2 | |
| 3 | The GIET-VM boot-loader is defined in the [source:soft/giet_vm/giet_boot/boot.c boot.c] file. |
| 4 | |
| 5 | The ''boot_init'' function makes the initialisation in two steps: |
| 6 | |
| 7 | The first step is sequencially executed by proc[0][0][0], while other processors are in wait state: |
| 8 | * Physical memory allocators initialisation : ''boot_pmem_init()'' |
| 9 | * Page table initialisation : ''boot_ptabs_init()'' |
| 10 | * Proc[0][0][0] MMU activation |
| 11 | * Private vobjs initialisation : ''boot_vobjs_init()'' |
| 12 | * Schedulers initialisation : ''boot_schedulers init()'' |
| 13 | * Peripherals initialisation : ''boot_peripherals_init()'' |
| 14 | * Kernel & application code loading : ''boot_elf_load()'' |
| 15 | * Start all other processors |
| 16 | The second step is executed in parallel by all processors: |
| 17 | * CP0_SCHED register initialisation |
| 18 | * MMU Activation |
| 19 | * Status Register Initialisation (to use the GIET_VM exception handler). |
| 20 | * Jump to ''kernel_init()'' |