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 LOCK_TEXT 52 *(.fixup) 53 . = ALIGN(16); 54 } 55 _etext = .; 56 57#ifdef KDATA_ADDR 58 . = KDATA_ADDR; 59#endif 60 61 _sdata = .; 62 RO_DATA(PAGE_SIZE) 63 RW_DATA(16, PAGE_SIZE, THREAD_SIZE) 64 _edata = .; 65 66 EXCEPTION_TABLE(16) 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(4, 0, 4) 84 85 _end = .; 86 87 STABS_DEBUG 88 ELF_DETAILS 89 90 /* Sections to be discarded */ 91 DISCARDS 92} 93 94