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