Changes between Version 43 and Version 44 of boot_procedure
- Timestamp:
- Feb 27, 2019, 7:17:17 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
boot_procedure
v43 v44 35 35 36 36 The 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 : 37 binary 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 38 39 || name || description || base address (physical) || size || 39 || PRE_LOADER || pre-loader code || 40 || PRE_LOADER || pre-loader code || PRELOADER_BASE (0) || PRELOADER_MAX_SIZE (16KB) || 40 41 || 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 || 42 || ARCH_INFO || arch_info.bin file copy || 43 || KERNEL_ELF || kernel.elf file copy || 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) || 45 46 46 47 The 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. 48 The 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. 50 49 51 50 A core is identified by two indexes[cxy][lid] : ''cxy'' is the cluster identifier, an ''lid'' is the core local index in cluster cxy.