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 IRQENTRY_TEXT 49 SOFTIRQENTRY_TEXT 50 SCHED_TEXT 51 CPUIDLE_TEXT 52 LOCK_TEXT 53 *(.fixup) 54 . = ALIGN(16); 55 } 56 _etext = .; 57 58#ifdef KDATA_ADDR 59 . = KDATA_ADDR; 60#endif 61 62 _sdata = .; 63 RO_DATA_SECTION(PAGE_SIZE) 64 RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) 65 _edata = .; 66 67 EXCEPTION_TABLE(16) 68 NOTES 69 70 . = ALIGN(PAGE_SIZE); 71 __init_begin = .; 72 INIT_TEXT_SECTION(PAGE_SIZE) 73 INIT_DATA_SECTION(16) 74 PERCPU_SECTION(16) 75 .m68k_fixup : { 76 __start_fixup = .; 77 *(.m68k_fixup) 78 __stop_fixup = .; 79 } 80 .init.data : { 81 . = ALIGN(PAGE_SIZE); 82 __init_end = .; 83 } 84 85 BSS_SECTION(0, 0, 0) 86 87 _end = .; 88 89 STABS_DEBUG 90 .comment 0 : { *(.comment) } 91 92 /* Sections to be discarded */ 93 DISCARDS 94} 95 96