Changes between Version 26 and Version 27 of boot_procedure


Ignore:
Timestamp:
May 3, 2017, 7:01:57 PM (7 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_procedure

    v26 v27  
    33[[PageOutline]]
    44
    5 == A) General Principles
     5== __A) General Principles__
    66
    77The ALMOS-MKH boot procédure can be decomposed in two phases:
     
    2929We describe below the boot_loader for the TSAR architecture, the boot_loader for the I86 architecture, and the generic kernel initialization procedure.
    3030
    31 == B) Boot-loader for the TSAR architecture ==
     31== __B) Boot-loader for the TSAR architecture__ ==
    3232
    3333The TSAR boot-loader uses an OS-independant '''pre-loader''', stored in an external ROM, and in charge of loading the TSAR
     
    113113Arrivé à 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.
    114114
    115 == C) Boot-loader for the I86 architecture ==
     115== __C) Boot-loader for the I86 architecture__ ==
    116116
    117117TODO
     
    129129The kernel initialization procedure execute sequentially the following steps:
    130130
    131 === D1) Core and cluster identification ===
     131=== __D1) Core and cluster identification__ ===
    132132
    133133Each core has an unique hardware identifier, called '''gid''', that is hard-wired in a read-only register.
     
    143143A first synchonization barrier is used to avoid other cores to use the TXT0 terminal before initialization completion.
    144144
    145 === D3) Cluster manager Initialization ===
     145=== D3) Cluster manager initialization ===
    146146
    147 In Each cluster the CP0 makes the cluster manager initialization, namely the cores descriptors array, and the physical memory allocators.
     147In each cluster, the CP0 makes the cluster manager initialization, namely the cores descriptors array, and the physical memory allocators.
    148148Then it initializes the local process_zero, containing al kernel threads in a given cluster.
    149149
    150150A second synchonization barrier is used to avoid other cores to access cluster manager before initialization completion.
    151151
    152 === D4) Internal & external devices Initialization ===
     152=== D4) Internal & external devices initialization ===
    153153
    154154In each cluster, the CP0 makes the devices initialization. For multi-channels devices, there is one channel device (called chdev_t) per channel.
     
    162162A third synchonization barrier is used to avoid other cores to access devices before initialization completion. 
    163163
    164 === D5) Idle thread Initialization ===
     164=== D5) Idle thread initialization ===
    165165
    166 In this step, each core creates and initializes, its private idle thread.
     166In this step, each core creates and initializes its private idle thread descriptor.
    167167
    168168=== D6) File system initialization ===