Changes between Version 67 and Version 68 of boot_procedure


Ignore:
Timestamp:
Dec 7, 2019, 2:06:14 PM (4 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_procedure

    v67 v68  
    8383   * It jumps to the boot_loader() C function defined in the ''boot.c'' file, passing the two (cxy , lid) arguments.
    8484
    85 === B3. Boot-loader sequencial phase ===
     85=== B3. Bootloader sequencial phase ===
    8686
    8787In this phase, only core [0][0] is running, while all other cores are blocked in the preloader, waiting to be activated by an IPI.
     
    9898   * The core[0][0] send IPIs to activate all cores [cxy][0] in all other clusters.
    9999   
    100 === B4. Boot-loader partially parallel phase ===
     100=== B4. Bootloader partially parallel phase ===
    101101
    102102In this phase all core[cxy][0], other than the core[0][0] are running (one core per cluster).
     
    114114    * In each cluster cxy, the core[cxy][0] activates the other cores that are  blocked in the pre-loader.
    115115
    116 === B5. Boot-loader fully parallel phase ===
     116=== B5. Bootloader fully parallel phase ===
    117117
    118118In this phase all cores in all clusters are running.
     
    125125   * '''status register''' : in each core, the cp0_sr register defines the core state, and must be initialized  (UM bit reset / IE bit reset / BEV bit reset ).
    126126
    127 At this point, the boot-loader completed its job:
     127At this point, the bootloader completed its job:
    128128 * The kernel code ''kcode'' and ''kdata'' segments are loaded - in all clusters - in the first ''offset'' physical pages.
    129  * The hardware architecture described by the '''arch_info.bin'''file has been analyzed, and copied - in each cluster - in the '''boot_info_t''' structure, stored in the kdata segment.
     129 * The hardware architecture described by the '''arch_info.bin'''file has been analyzed, and copied - in each cluster - in the '''boot_info''' structure, stored in the kdata segment.
    130130 * Each  local kernel instance can use all the physical memory that is not used to store the kernel ''kcode'' and ''kdata'' segments themselves.
    131131
    132 == C) __Boot-loader for the I86 architecture__ ==
     132== C) __Bootloader for the I86 architecture__ ==
    133133
    134134TODO
     
    136136== D) __Generic kernel initialization procedure__ ==
    137137
    138 The kernel_init( boot_info_t * info ) function is the kernel entry point when the boot_loader transfers control to the kernel. The argument is a pointer on the fixed size boot_info_t structure, stored in the local  ''kdata'' segment.
     138The kernel_init() function is the kernel entry point when the boot_loader transfers control to the kernel. The argument is a pointer on the fixed size boot_info_t structure, stored in the local  ''kdata'' segment.
     139
     140The source code for this function is defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/kernel_init.c  almos-mkh/kernel/kern/kernel_init.c] file.
    139141
    140142When a core enters this function, the MMU status depends on the target architecture: