/* * The physical and virtual addresses of the start of the kernel image are * equal modulo 2 MiB (per the arm64 booting.txt requirements). Hence we can * use section mapping with 4K (section size = 2M) but not with 16K (section * size = 32M) or 64K (section size = 512M).
*/ #ifdefined(PMD_SIZE) && PMD_SIZE <= MIN_KIMG_ALIGN #define SWAPPER_BLOCK_SHIFT PMD_SHIFT #define SWAPPER_SKIP_LEVEL 1 #else #define SWAPPER_BLOCK_SHIFT PAGE_SHIFT #define SWAPPER_SKIP_LEVEL 0 #endif #define SWAPPER_BLOCK_SIZE (UL(1) << SWAPPER_BLOCK_SHIFT)
/* * A relocatable kernel may execute from an address that differs from the one at * which it was linked. In the worst case, its runtime placement may intersect * with two adjacent PGDIR entries, which means that an additional page table * may be needed at each subordinate level.
*/ #define EXTRA_PAGE __is_defined(CONFIG_RELOCATABLE)
/* The number of segments in the kernel image (text, rodata, inittext, initdata, data+bss) */ #define KERNEL_SEGMENT_COUNT 5
#if SWAPPER_BLOCK_SIZE > SEGMENT_ALIGN #define EARLY_SEGMENT_EXTRA_PAGES (KERNEL_SEGMENT_COUNT + 1) /* * The initial ID map consists of the kernel image, mapped as two separate * segments, and may appear misaligned wrt the swapper block size. This means * we need 3 additional pages. The DT could straddle a swapper block boundary, * so it may need 2.
*/ #define EARLY_IDMAP_EXTRA_PAGES 3 #define EARLY_IDMAP_EXTRA_FDT_PAGES 2 #else #define EARLY_SEGMENT_EXTRA_PAGES 0 #define EARLY_IDMAP_EXTRA_PAGES 0 #define EARLY_IDMAP_EXTRA_FDT_PAGES 0 #endif
#endif/* __ASM_KERNEL_PGTABLE_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.