7 | | == Boot-loader pour l'architecture TSAR == |
| 9 | As the generic (i.e. architecture independent) kernel initialization procedure is executed in parallel by all kernel instances in all clusters containing at least one core, the main task of the architecture dependent boot-loader is to load - in each cluster - a local copy of |
| 10 | the ALMOS-MKH kernel code, including a description of the hardware architecture, contained in the '''boot_info_t''' data-structure. |
| 11 | This structure is build by the boot-loader and stored at the beginning of the local copy of the kdata segment. It contains both general and cluster specific informations: |
| 12 | * general hardware architecture features : number of clusters, the topology, etc. |
| 13 | * available external (shared) peripherals : types and features. |
| 14 | * number of cores in cluster, |
| 15 | * available internal (private) peripherals in cluster : types and features. |
| 16 | * available physical memory in cluster. |
| 17 | |
| 18 | This boot_info_t structure is defined in the |
9 | | Le boot-loader récupère les informations décrivant les caractéristiques de la plateforme matérielle (nombre de clusters, nombre de coeurs par cluster, périphériques disponibles, ciblage des interruptions, etc.) dans le fichier binaire '''arch_info.bin'''. Il utilise pour construire - dans chaque cluster - la structure de données '''boot_info_t''', utilisée par l'instance locale du noyau ALMOS-MK, et décrivant les composants matériels disponibles dans le cluster, ainsi que les caractéristiques générales de la plateforme. Cette structure est rangée au début du segment de données '''kdata''' du noyau et est utilisée - dans caque cluster - par la fonction '''kernel_init()'''. Ces informations en entrée et en sortie du boot-loader peuvent sembler redondantes mais cette traduction (arch-info -> boot_info) permet - en principe - au boot-loader de vérifier le bon fonctionnement de la plateforme matérielle et de détecter les pannes dues au vieillissement du matériel. Dans cette approche, les structures '''boot_info_t''' générées par le boot-loader ne contiennent que les composants matériels effectivement utilisables par le noyau. Cette vérification/reconfiguration n'est pas implémentée. |
| 20 | This section describes successively the ALMOS-MKH boot loader for the TSAR architecture, the ALMOS-MKH boot loader for the |
| 21 | I86 architecture, and the generic ALMOS-MKH kernel initialization procedure. |
| 22 | |
| 23 | == Boot-loader for the TSAR architecture == |
| 24 | |
| 25 | The TSAR boot-loader uses an OS-independant '''pre-loader''', stored in an external ROM, and in charge of loading the TSAR |
| 26 | '''boot-loader''' code from an external block-device to the memory. This preloaded is specific for the TSAR architecture, but independent on the Operating System. It is used by ALMOS-MKH, but also by LINUX, NetBSD, or the GIET-VM. |
| 27 | |
| 28 | The main task done by the TSAR boot-loader is to build - for each cluster - a so-called '''boot_info_t''' data structure, describing |
| 29 | |
| 30 | This boot_info_t structure can be find in the in the cluster |
| 31 | the shared resources (such as the récupère les informations décrivant les caractéristiques de la plateforme matérielle (nombre de clusters, nombre de coeurs par cluster, périphériques disponibles, ciblage des interruptions, etc.) dans le fichier binaire '''arch_info.bin'''. Il utilise pour construire - dans chaque cluster - la structure de données '''boot_info_t''', utilisée par l'instance locale du noyau ALMOS-MK, et décrivant les composants matériels disponibles dans le cluster, ainsi que les caractéristiques générales de la plateforme. Cette structure est rangée au début du segment de données '''kdata''' du noyau et est utilisée - dans caque cluster - par la fonction '''kernel_init()'''. Ces informations en entrée et en sortie du boot-loader peuvent sembler redondantes mais cette traduction (arch-info -> boot_info) permet - en principe - au boot-loader de vérifier le bon fonctionnement de la plateforme matérielle et de détecter les pannes dues au vieillissement du matériel. Dans cette approche, les structures '''boot_info_t''' générées par le boot-loader ne contiennent que les composants matériels effectivement utilisables par le noyau. Cette vérification/reconfiguration n'est pas implémentée. |