| | 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()'' |