1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * vmlinux.lds.S -- master linker script for m68knommu arch 4 * 5 * (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com> 6 * 7 * This linker script is equipped to build either ROM loaded or RAM 8 * run kernels. 9 */ 10 11#if defined(CONFIG_RAMKERNEL) 12#define KTEXT_ADDR CONFIG_KERNELBASE 13#endif 14#if defined(CONFIG_ROMKERNEL) 15#define KTEXT_ADDR CONFIG_ROMSTART 16#define KDATA_ADDR CONFIG_KERNELBASE 17#define LOAD_OFFSET KDATA_ADDR + (ADDR(.text) + SIZEOF(.text)) 18#endif 19 20#include <asm/page.h> 21#include <asm/thread_info.h> 22#include <asm-generic/vmlinux.lds.h> 23 24OUTPUT_ARCH(m68k) 25ENTRY(_start) 26 27jiffies = jiffies_64 + 4; 28 29SECTIONS { 30 31#ifdef CONFIG_ROMVEC 32 . = CONFIG_ROMVEC; 33 .romvec : { 34 __rom_start = .; 35 _romvec = .; 36 *(.romvec) 37 *(.data..initvect) 38 } 39#endif 40 41 . = KTEXT_ADDR; 42 43 _text = .; 44 _stext = .; 45 .text : { 46 HEAD_TEXT 47 TEXT_TEXT 48 SCHED_TEXT 49 CPUIDLE_TEXT 50 LOCK_TEXT 51 *(.fixup) 52 . = ALIGN(16); 53 } 54 _etext = .; 55 56#ifdef KDATA_ADDR 57 . = KDATA_ADDR; 58#endif 59 60 _sdata = .; 61 RO_DATA_SECTION(PAGE_SIZE) 62 RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) 63 _edata = .; 64 65 EXCEPTION_TABLE(16) 66 NOTES 67 68 . = ALIGN(PAGE_SIZE); 69 __init_begin = .; 70 INIT_TEXT_SECTION(PAGE_SIZE) 71 INIT_DATA_SECTION(16) 72 PERCPU_SECTION(16) 73 .m68k_fixup : { 74 __start_fixup = .; 75 *(.m68k_fixup) 76 __stop_fixup = .; 77 } 78 .init.data : { 79 . = ALIGN(PAGE_SIZE); 80 __init_end = .; 81 } 82 83 BSS_SECTION(0, 0, 0) 84 85 _end = .; 86 87 STABS_DEBUG 88 .comment 0 : { *(.comment) } 89 90 /* Sections to be discarded */ 91 DISCARDS 92} 93 94