1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */ 240c1b9cfSGreg Ungerer/* 340c1b9cfSGreg Ungerer * vmlinux.lds.S -- master linker script for m68knommu arch 440c1b9cfSGreg Ungerer * 5f84f52a5SGreg Ungerer * (C) Copyright 2002-2012, Greg Ungerer <gerg@snapgear.com> 640c1b9cfSGreg Ungerer * 740c1b9cfSGreg Ungerer * This linker script is equipped to build either ROM loaded or RAM 840c1b9cfSGreg Ungerer * run kernels. 940c1b9cfSGreg Ungerer */ 1040c1b9cfSGreg Ungerer 11f84f52a5SGreg Ungerer#if defined(CONFIG_RAMKERNEL) 12f84f52a5SGreg Ungerer#define KTEXT_ADDR CONFIG_KERNELBASE 13f84f52a5SGreg Ungerer#endif 14f84f52a5SGreg Ungerer#if defined(CONFIG_ROMKERNEL) 15f84f52a5SGreg Ungerer#define KTEXT_ADDR CONFIG_ROMSTART 16f84f52a5SGreg Ungerer#define KDATA_ADDR CONFIG_KERNELBASE 17f84f52a5SGreg Ungerer#define LOAD_OFFSET KDATA_ADDR + (ADDR(.text) + SIZEOF(.text)) 18f84f52a5SGreg Ungerer#endif 19f84f52a5SGreg Ungerer 2040c1b9cfSGreg Ungerer#include <asm/page.h> 2140c1b9cfSGreg Ungerer#include <asm/thread_info.h> 22f84f52a5SGreg Ungerer#include <asm-generic/vmlinux.lds.h> 2340c1b9cfSGreg Ungerer 2440c1b9cfSGreg UngererOUTPUT_ARCH(m68k) 2540c1b9cfSGreg UngererENTRY(_start) 2640c1b9cfSGreg Ungerer 2740c1b9cfSGreg Ungererjiffies = jiffies_64 + 4; 2840c1b9cfSGreg Ungerer 2940c1b9cfSGreg UngererSECTIONS { 3040c1b9cfSGreg Ungerer 31f84f52a5SGreg Ungerer#ifdef CONFIG_ROMVEC 32f84f52a5SGreg Ungerer . = CONFIG_ROMVEC; 3340c1b9cfSGreg Ungerer .romvec : { 3440c1b9cfSGreg Ungerer __rom_start = .; 3540c1b9cfSGreg Ungerer _romvec = .; 36f84f52a5SGreg Ungerer *(.romvec) 3740c1b9cfSGreg Ungerer *(.data..initvect) 38f84f52a5SGreg Ungerer } 3940c1b9cfSGreg Ungerer#endif 4040c1b9cfSGreg Ungerer 41f84f52a5SGreg Ungerer . = KTEXT_ADDR; 42f84f52a5SGreg Ungerer 4340c1b9cfSGreg Ungerer _text = .; 4440c1b9cfSGreg Ungerer _stext = .; 45f84f52a5SGreg Ungerer .text : { 4640c1b9cfSGreg Ungerer HEAD_TEXT 4740c1b9cfSGreg Ungerer TEXT_TEXT 48969de098SGreg Ungerer IRQENTRY_TEXT 49969de098SGreg Ungerer SOFTIRQENTRY_TEXT 5040c1b9cfSGreg Ungerer SCHED_TEXT 5140c1b9cfSGreg Ungerer LOCK_TEXT 52ed865e31SGreg Ungerer *(.fixup) 53f84f52a5SGreg Ungerer . = ALIGN(16); 54f84f52a5SGreg Ungerer } 5540c1b9cfSGreg Ungerer _etext = .; 5640c1b9cfSGreg Ungerer 57f84f52a5SGreg Ungerer#ifdef KDATA_ADDR 58f84f52a5SGreg Ungerer . = KDATA_ADDR; 59f84f52a5SGreg Ungerer#endif 60f84f52a5SGreg Ungerer 6140c1b9cfSGreg Ungerer _sdata = .; 6293240b32SKees Cook RO_DATA(PAGE_SIZE) 63c9174047SKees Cook RW_DATA(16, PAGE_SIZE, THREAD_SIZE) 6440c1b9cfSGreg Ungerer _edata = .; 6540c1b9cfSGreg Ungerer 66f84f52a5SGreg Ungerer EXCEPTION_TABLE(16) 67f84f52a5SGreg Ungerer 68f84f52a5SGreg Ungerer . = ALIGN(PAGE_SIZE); 69f84f52a5SGreg Ungerer __init_begin = .; 70f84f52a5SGreg Ungerer INIT_TEXT_SECTION(PAGE_SIZE) 71f84f52a5SGreg Ungerer INIT_DATA_SECTION(16) 72f84f52a5SGreg Ungerer PERCPU_SECTION(16) 73ed865e31SGreg Ungerer .m68k_fixup : { 74ed865e31SGreg Ungerer __start_fixup = .; 75ed865e31SGreg Ungerer *(.m68k_fixup) 76ed865e31SGreg Ungerer __stop_fixup = .; 77f84f52a5SGreg Ungerer } 7840c1b9cfSGreg Ungerer .init.data : { 7940c1b9cfSGreg Ungerer . = ALIGN(PAGE_SIZE); 8040c1b9cfSGreg Ungerer __init_end = .; 81f84f52a5SGreg Ungerer } 8240c1b9cfSGreg Ungerer 83*670d3965SGreg Ungerer BSS_SECTION(4, 0, 4) 8440c1b9cfSGreg Ungerer 85f84f52a5SGreg Ungerer _end = .; 86f84f52a5SGreg Ungerer 87f84f52a5SGreg Ungerer STABS_DEBUG 88428ec5f9SYouling Tang ELF_DETAILS 89f84f52a5SGreg Ungerer 90f84f52a5SGreg Ungerer /* Sections to be discarded */ 9140c1b9cfSGreg Ungerer DISCARDS 9240c1b9cfSGreg Ungerer} 9340c1b9cfSGreg Ungerer 94