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