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 44 LOCK_TEXT 25 LOCK_TEXT 45 KPROBES_TEXT << 46 *(.fixup) 26 *(.fixup) 47 } !! 27 *(.gnu.warning) 48 _etext = .; !! 28 } :kernel >> 29 swapper_pg_dir = SWAPPER_PGD; >> 30 _etext = .; /* End of text section */ >> 31 >> 32 NOTES :kernel :note >> 33 .dummy : { >> 34 *(.dummy) >> 35 } :kernel 49 36 50 INIT_DATA_SECTION(PAGE_SIZE) !! 37 RODATA >> 38 EXCEPTION_TABLE(16) 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_SECTION(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 << 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.