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 44 LOCK_TEXT 30 LOCK_TEXT 45 KPROBES_TEXT << 46 *(.fixup) 31 *(.fixup) 47 } !! 32 *(.gnu.warning) 48 _etext = .; !! 33 } :text >> 34 swapper_pg_dir = SWAPPER_PGD; >> 35 _etext = .; /* End of text section */ 49 36 50 INIT_DATA_SECTION(PAGE_SIZE) !! 37 RO_DATA(4096) 51 38 52 _sdata = .; !! 39 /* Will be freed after init */ 53 RW_DATA(32,PAGE_SIZE,_THREAD_S !! 40 __init_begin = ALIGN(PAGE_SIZE); 54 RO_DATA(PAGE_SIZE) !! 41 INIT_TEXT_SECTION(PAGE_SIZE) 55 _edata = .; !! 42 INIT_DATA_SECTION(16) >> 43 PERCPU_SECTION(L1_CACHE_BYTES) >> 44 /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page >> 45 needed for the THREAD_SIZE aligned init_task gets freed after init */ >> 46 . = ALIGN(THREAD_SIZE); >> 47 __init_end = .; >> 48 /* Freed after init ends here */ 56 49 57 EXCEPTION_TABLE(16) !! 50 _sdata = .; /* Start of rw data section */ >> 51 _data = .; >> 52 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) 58 53 59 BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _P !! 54 .got : { >> 55 *(.got) >> 56 } >> 57 .sdata : { >> 58 *(.sdata) >> 59 } >> 60 _edata = .; /* End of data section */ 60 61 >> 62 BSS_SECTION(0, 0, 0) 61 _end = .; 63 _end = .; 62 64 >> 65 .mdebug 0 : { >> 66 *(.mdebug) >> 67 } >> 68 .note 0 : { >> 69 *(.note) >> 70 } >> 71 63 STABS_DEBUG 72 STABS_DEBUG 64 DWARF_DEBUG 73 DWARF_DEBUG 65 ELF_DETAILS 74 ELF_DETAILS 66 .hexagon.attributes 0 : { *(.hexagon.a << 67 75 68 DISCARDS 76 DISCARDS 69 } 77 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.