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(PAGE_SIZE) 64 RW_DATA(16, PAGE_SIZE, THREAD_SIZE) 65 _edata = .; 66 67 EXCEPTION_TABLE(16) 68 69 . = ALIGN(PAGE_SIZE); 70 __init_begin = .; 71 INIT_TEXT_SECTION(PAGE_SIZE) 72 INIT_DATA_SECTION(16) 73 PERCPU_SECTION(16) 74 .m68k_fixup : { 75 __start_fixup = .; 76 *(.m68k_fixup) 77 __stop_fixup = .; 78 } 79 .init.data : { 80 . = ALIGN(PAGE_SIZE); 81 __init_end = .; 82 } 83 84 BSS_SECTION(4, 0, 4) 85 86 _end = .; 87 88 STABS_DEBUG 89 ELF_DETAILS 90 91 /* Sections to be discarded */ 92 DISCARDS 93} 94 95