Changes between Version 43 and Version 44 of boot_procedure


Ignore:
Timestamp:
Feb 27, 2019, 7:17:17 PM (5 months ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_procedure

    v43 v44  
    3535
    3636The TSAR boot_loader allocates - in each cluster containing a physical memory bank - five fixed size memory zones, to store various
    37 binary files or data structures. The two first zones :
     37binary files or data structures. The two first zones are permanently allocated: The PRE_LOADER zone is only defined in cluster 0. The KERNEL_CODE zone containing the ''kcode'' and ''kdata'' sgments is directly used by the kernel when the boot_loader transfers control - in each cluster - to the kernel_init procedure. The BOOT_ICODE, ARCH_INFO, KERNEL_ELF, and BOOT_CODE zones are temporary: they are only used - in each cluster - by the boot-loader code, and the corresponding physical memory can be freely used and re-allocated by the local kernel instance.
     38
    3839 || name                        || description                            ||  base address (physical)          || size                                                             ||
    39  || PRE_LOADER           || pre-loader code                    ||  PRELOADER_BASE (0)           || PRELOADER_MAX_SIZE (16KB)                  ||
     40 || PRE_LOADER           || pre-loader code                    || PRELOADER_BASE (0)           || PRELOADER_MAX_SIZE (16KB)                  ||
    4041 || KERNEL_CODE        || kernel code and data            || KERNEL_CODE_BASE (16 KB) || KERNEL_CODE_MAX_SIZE (2 MB - 16 KB) ||
    41  || BOOT_CODE            || boot-loader code and data   ||  BOOT_CODE_BASE (2 MB)     || BOOT_CODE_MAX_SIZE (1 MB)                  ||
    42  || ARCH_INFO             || arch_info.bin file copy           ||  ARCH_INFO_BASE (3 MB)       || ARCH_INFO_MAX_SIZE (1 MB)                   ||
    43  || KERNEL_ELF           || kernel.elf file copy                 ||  KERNEL_ELF_BASE (4 MB)     || KERN_ELF_MAX_SIZE (2 MB)                     ||
    44  || BOOT_CODE           || boot stacks (one per core)     ||  BOOT_STACK_BASE (6 MB)    || BOOT_STACK_MAX_SIZE (1MB)                ||
     42 || BOOT_CODE            || boot-loader code and data   || BOOT_CODE_BASE (2 MB)     || BOOT_CODE_MAX_SIZE (1 MB)                  ||
     43 || ARCH_INFO             || arch_info.bin file copy           || ARCH_INFO_BASE (3 MB)       || ARCH_INFO_MAX_SIZE (1 MB)                   ||
     44 || KERNEL_ELF           || kernel.elf file copy                 || KERNEL_ELF_BASE (4 MB)     || KERN_ELF_MAX_SIZE (2 MB)                     ||
     45 || BOOT_CODE           || boot stacks (one per core)     || BOOT_STACK_BASE (6 MB)    || BOOT_STACK_MAX_SIZE (1MB)                ||
    4546
    4647The values given in this array are indicative. The actual values are defined by configuration parameters in the '''boot_config.h''' file.
    47 These memory zones are only used for temporary storage : when the TSAR boot_loader completes, and transfer control to the kernel_init procedure,
    48 the kernel code (i.e. the code and data segments) has been copied - in each cluster - in the lowest part of the cluster physical memory.
    49 The four pages (16 Kbytes) reserved for the prelloader are only used in cluster 0.
     48The main constraint is : the ''kcode'" segment (in the KERNEL_CODE zone must be entirely contained in one single big physical page (2 MBytes) because it will be mapped as one single big page in all process virtual spaces.
    5049
    5150A core is identified by  two indexes[cxy][lid] : ''cxy'' is the cluster identifier, an ''lid'' is the core local index in cluster cxy.