linux/arch/m68k/kernel/vmlinux-nommu.lds
<<
>>
Prefs
   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