1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* << 3 * Linker script for Hexagon kernel << 4 * << 5 * Copyright (c) 2010-2014, The Linux Foundati << 6 */ << 7 << 8 #include <asm-generic/vmlinux.lds.h> 1 #include <asm-generic/vmlinux.lds.h> 9 #include <asm/asm-offsets.h> /* Most of th !! 2 #include <asm/thread_info.h> 10 #include <asm/mem-layout.h> /* except for !! 3 #include <asm/cache.h> 11 #include <asm/cache.h> /* and now we !! 4 #include <asm/page.h> 12 #include <asm/thread_info.h> /* and we nee !! 5 #include <asm/setup.h> 13 !! 6 14 OUTPUT_ARCH(hexagon) !! 7 OUTPUT_FORMAT("elf64-alpha") 15 ENTRY(stext) !! 8 OUTPUT_ARCH(alpha) 16 !! 9 ENTRY(__start) >> 10 PHDRS { kernel PT_LOAD; note PT_NOTE; } 17 jiffies = jiffies_64; 11 jiffies = jiffies_64; 18 << 19 /* << 20 See asm-generic/vmlinux.lds.h for expansion of << 21 See asm-generic/sections.h for seemingly requi << 22 */ << 23 << 24 #define PAGE_SIZE _PAGE_SIZE << 25 << 26 SECTIONS 12 SECTIONS 27 { 13 { 28 . = PAGE_OFFSET; !! 14 #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS 29 !! 15 . = 0xfffffc0000310000; 30 __init_begin = .; !! 16 #else 31 HEAD_TEXT_SECTION !! 17 . = 0xfffffc0001010000; 32 INIT_TEXT_SECTION(PAGE_SIZE) !! 18 #endif 33 PERCPU_SECTION(L1_CACHE_BYTES) !! 19 34 __init_end = .; !! 20 _text = .; /* Text and read-only data */ 35 !! 21 .text : { 36 . = ALIGN(_PAGE_SIZE); !! 22 HEAD_TEXT 37 _stext = .; << 38 .text : AT(ADDR(.text)) { << 39 _text = .; << 40 TEXT_TEXT 23 TEXT_TEXT 41 IRQENTRY_TEXT << 42 SOFTIRQENTRY_TEXT << 43 SCHED_TEXT 24 SCHED_TEXT >> 25 CPUIDLE_TEXT 44 LOCK_TEXT 26 LOCK_TEXT 45 KPROBES_TEXT << 46 *(.fixup) 27 *(.fixup) 47 } !! 28 *(.gnu.warning) 48 _etext = .; !! 29 } :kernel >> 30 swapper_pg_dir = SWAPPER_PGD; >> 31 _etext = .; /* End of text section */ >> 32 >> 33 NOTES :kernel :note >> 34 .dummy : { >> 35 *(.dummy) >> 36 } :kernel 49 37 50 INIT_DATA_SECTION(PAGE_SIZE) !! 38 RODATA >> 39 EXCEPTION_TABLE(16) 51 40 52 _sdata = .; !! 41 /* Will be freed after init */ 53 RW_DATA(32,PAGE_SIZE,_THREAD_S !! 42 __init_begin = ALIGN(PAGE_SIZE); 54 RO_DATA(PAGE_SIZE) !! 43 INIT_TEXT_SECTION(PAGE_SIZE) 55 _edata = .; !! 44 INIT_DATA_SECTION(16) >> 45 PERCPU_SECTION(L1_CACHE_BYTES) >> 46 /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page >> 47 needed for the THREAD_SIZE aligned init_task gets freed after init */ >> 48 . = ALIGN(THREAD_SIZE); >> 49 __init_end = .; >> 50 /* Freed after init ends here */ 56 51 57 EXCEPTION_TABLE(16) !! 52 _sdata = .; /* Start of rw data section */ >> 53 _data = .; >> 54 RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) 58 55 59 BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _P !! 56 .got : { >> 57 *(.got) >> 58 } >> 59 .sdata : { >> 60 *(.sdata) >> 61 } >> 62 _edata = .; /* End of data section */ 60 63 >> 64 BSS_SECTION(0, 0, 0) 61 _end = .; 65 _end = .; 62 66 >> 67 .mdebug 0 : { >> 68 *(.mdebug) >> 69 } >> 70 .note 0 : { >> 71 *(.note) >> 72 } >> 73 63 STABS_DEBUG 74 STABS_DEBUG 64 DWARF_DEBUG 75 DWARF_DEBUG 65 ELF_DETAILS << 66 .hexagon.attributes 0 : { *(.hexagon.a << 67 76 68 DISCARDS 77 DISCARDS 69 } 78 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.