Changes between Version 26 and Version 27 of boot_procedure
- Timestamp:
- May 3, 2017, 7:01:57 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
boot_procedure
v26 v27 3 3 [[PageOutline]] 4 4 5 == A) General Principles5 == __A) General Principles__ 6 6 7 7 The ALMOS-MKH boot procédure can be decomposed in two phases: … … 29 29 We describe below the boot_loader for the TSAR architecture, the boot_loader for the I86 architecture, and the generic kernel initialization procedure. 30 30 31 == B) Boot-loader for the TSAR architecture==31 == __B) Boot-loader for the TSAR architecture__ == 32 32 33 33 The TSAR boot-loader uses an OS-independant '''pre-loader''', stored in an external ROM, and in charge of loading the TSAR … … 113 113 Arrivé à ce point, le boot-loader a fini son travail, la description de la l'architecture matérielle contenue dans '''arch_info.bin''' a été analysée et stockée dans la variable globale de type '''boot_info_t''' du noyau, stockée dans le segment data du noyau. Dans chaque cluster, ALMOS-MK peut utiliser tout l'espace adressable physique occupé antérieurement par l'image du boot-loader, '''arch_info.bin''' et les piles de boot. La seule zone de mémoire persistante est l'image du noyau elle-même (les segments ''kcode'' et ''kdata''), stockée à l'adresse '''0x0''' dans tous les clusters. 114 114 115 == C) Boot-loader for the I86 architecture==115 == __C) Boot-loader for the I86 architecture__ == 116 116 117 117 TODO … … 129 129 The kernel initialization procedure execute sequentially the following steps: 130 130 131 === D1) Core and cluster identification===131 === __D1) Core and cluster identification__ === 132 132 133 133 Each core has an unique hardware identifier, called '''gid''', that is hard-wired in a read-only register. … … 143 143 A first synchonization barrier is used to avoid other cores to use the TXT0 terminal before initialization completion. 144 144 145 === D3) Cluster manager Initialization ===145 === D3) Cluster manager initialization === 146 146 147 In Each clusterthe CP0 makes the cluster manager initialization, namely the cores descriptors array, and the physical memory allocators.147 In each cluster, the CP0 makes the cluster manager initialization, namely the cores descriptors array, and the physical memory allocators. 148 148 Then it initializes the local process_zero, containing al kernel threads in a given cluster. 149 149 150 150 A second synchonization barrier is used to avoid other cores to access cluster manager before initialization completion. 151 151 152 === D4) Internal & external devices Initialization ===152 === D4) Internal & external devices initialization === 153 153 154 154 In each cluster, the CP0 makes the devices initialization. For multi-channels devices, there is one channel device (called chdev_t) per channel. … … 162 162 A third synchonization barrier is used to avoid other cores to access devices before initialization completion. 163 163 164 === D5) Idle thread Initialization ===164 === D5) Idle thread initialization === 165 165 166 In this step, each core creates and initializes , its private idle thread.166 In this step, each core creates and initializes its private idle thread descriptor. 167 167 168 168 === D6) File system initialization ===