24 | | The boot procedure is done in three phases: The boot-loader code is loaded in the physical memory bank of cluster(0,0) by the generic ''reset'' code (hard-coded in the external ROM). |
25 | | The boot-loader load the ''map.bin'' file, build the page tables as specified in the mapping (one page table per virtual space), activates the MMU for all processors, initializes the distributed schedulers (one scheduler per processor), initializes the external (non replicated) peripherals, and load the kernel code, as well as the user application(s) code. |
26 | | When this is done, each processor jumps to the GIET_VM ''kernel_init()'' function that completes the kernel initialisation. |
| 24 | The boot procedure is done in three phases: (i) The generic ''reset'' code (hard-coded in the external ROM) is executed by processor (0,0,0), and load the ''boot-loader'' code from the hard disk to the physical memory. (ii) The ''boot-loader'' is executed by processor (0,0,0). It load the ''map.bin'' file, build the page tables, initializes the schedulers as specified in the mapping, initializes the peripherals, and load the kernel code, as well as the user application(s) code into memory. (iii) Finally, the ''kernel_init()'' function is executed by all processors, and completes the kernel initialisation. |