Changes between Version 6 and Version 7 of boot_procedure


Ignore:
Timestamp:
Jul 22, 2016, 3:38:06 PM (8 years ago)
Author:
vusontuan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_procedure

    v6 v7  
    1212
    1313   Voici le contenu de la mémoire du cluster de boot et des autres clusters (appelés ''banalus'') après ce premier temps.
     14   [[Image(Phys_Mem1.svg)]]
    1415
    15162. Le '''bscpu''' exécute le code du boot-loader et réalise plusieurs tâches:
     
    2223
    2324   Voici le contenu de la mémoire du cluster de boot et des autres clusters (appelés ''banalus'') après ce deuxième temps.
     25   [[Image(Phys_Mem2.svg)]]
    2426
    25273. Chaque '''CP0''', après avoir été réveillé par '''bscpu''', sort du code du preloader et exécute le boot-loader qui se trouve toujours dans le cluster de boot en effectuant les différentes étapes ci-dessous:
     
    3537
    3638   Voici le contenu de la mémoire du cluster de boot et des autres clusters (appelés ''banalus'') après ce troisième temps.
     39   [[Image(Phys_Mem3.svg)]]
    3740
    38414. Chaque core de '''lid''' non nul (appelé '''CPi'''), après avoir été réveillé par le '''CP0''' local de son cluster, sort du code du preloader et exécute le boot-loader dans le cluster de boot puisque ses registres d'extension d'adresse ne sont pas encore mis à jour. Une fois sortis du code du preloader, ces cores décrémentent le compteur de la barrière de synchronisation et débloquent les '''CP0'''. Tous ces '''CP0''' sauf un, se mettent tout de suite en attente jusqu'à ce que les '''CPi''' finissent leur exécution du boot-loader. Le seul '''CP0''' qui n'arrive pas encore à cette barrière de synchronisation, le '''bscpu''', peut maintenant écraser le code du preloader en déplaçant l'image du noyau à l'adresse '''0x0''' de l'espace adressable physique du cluster de boot, puisque tous les cores sont déjà sortis du preloader. Il rejoint ensuite les autres '''CP0''' au dernier point de rendez-vous dans le boot-loader. Les '''CPi''', quant à eux, exécute, pour le moment, le code du boot-loader se trouvant dans le cluster de boot car leurs registres d'extension d'adresse ont toujours la valeur 0 par défaut. Chacun de ces '''CPi''' effectue les étapes suivantes:
     
    4548
    4649   Voici le contenu de la mémoire dans tous les clusters à la fin de la phase de boot, juste avant d'entrer dans le noyau d'ALMOS-MK.
     50   [[Image(Phys_Mem4.svg)]]
    4751
    4852Arrivé à ce point, le boot-loader a fini son travail, les informations de description de la l'architecture matérielle contenues dans '''arch_info.bin''' ont été transformées dans les variables globales '''boot_info_t''' du noyau, ALMOS-MK peut récupérer 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, commencé à l'adresse '''0x0''' dans tous les clusters.