root/arch/c6x/kernel/vmlinux.lds.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * ld script for the c6x kernel
   4  *
   5  *  Copyright (C) 2010, 2011 Texas Instruments Incorporated
   6  *  Mark Salter <msalter@redhat.com>
   7  */
   8 #include <asm-generic/vmlinux.lds.h>
   9 #include <asm/thread_info.h>
  10 #include <asm/page.h>
  11 
  12 ENTRY(_c_int00)
  13 
  14 #if defined(CONFIG_CPU_BIG_ENDIAN)
  15 jiffies = jiffies_64 + 4;
  16 #else
  17 jiffies = jiffies_64;
  18 #endif
  19 
  20 #define READONLY_SEGMENT_START  \
  21         . = PAGE_OFFSET;
  22 #define READWRITE_SEGMENT_START \
  23         . = ALIGN(128);         \
  24         _data_lma = .;
  25 
  26 SECTIONS
  27 {
  28         /*
  29          * Start kernel read only segment
  30          */
  31         READONLY_SEGMENT_START
  32 
  33         .vectors :
  34         {
  35                 _vectors_start = .;
  36                 *(.vectors)
  37                 . = ALIGN(0x400);
  38                 _vectors_end = .;
  39         }
  40 
  41         /*
  42          * This section contains data which may be shared with other
  43          * cores. It needs to be a fixed offset from PAGE_OFFSET
  44          * regardless of kernel configuration.
  45          */
  46         .virtio_ipc_dev :
  47         {
  48                 *(.virtio_ipc_dev)
  49         }
  50 
  51         . = ALIGN(PAGE_SIZE);
  52         __init_begin = .;
  53         .init :
  54         {
  55                 _sinittext = .;
  56                 HEAD_TEXT
  57                 INIT_TEXT
  58                 _einittext = .;
  59         }
  60 
  61         INIT_DATA_SECTION(16)
  62 
  63         PERCPU_SECTION(128)
  64 
  65         . = ALIGN(PAGE_SIZE);
  66         __init_end = .;
  67 
  68         .text :
  69         {
  70                 _text = .;
  71                 _stext = .;
  72                 TEXT_TEXT
  73                 SCHED_TEXT
  74                 CPUIDLE_TEXT
  75                 LOCK_TEXT
  76                 IRQENTRY_TEXT
  77                 SOFTIRQENTRY_TEXT
  78                 KPROBES_TEXT
  79                 *(.fixup)
  80                 *(.gnu.warning)
  81         }
  82 
  83         EXCEPTION_TABLE(16)
  84         NOTES
  85 
  86         RO_DATA_SECTION(PAGE_SIZE)
  87         .const :
  88         {
  89                 *(.const .const.* .gnu.linkonce.r.*)
  90                 *(.switch)
  91         }
  92 
  93         _etext = .;
  94 
  95         /*
  96          * Start kernel read-write segment.
  97          */
  98         READWRITE_SEGMENT_START
  99         _sdata = .;
 100 
 101         .fardata : AT(ADDR(.fardata) - LOAD_OFFSET)
 102         {
 103                 INIT_TASK_DATA(THREAD_SIZE)
 104                 NOSAVE_DATA
 105                 PAGE_ALIGNED_DATA(PAGE_SIZE)
 106                 CACHELINE_ALIGNED_DATA(128)
 107                 READ_MOSTLY_DATA(128)
 108                 DATA_DATA
 109                 CONSTRUCTORS
 110                 *(.data1)
 111                 *(.fardata .fardata.*)
 112                 *(.data.debug_bpt)
 113         }
 114 
 115         .neardata ALIGN(8) : AT(ADDR(.neardata) - LOAD_OFFSET)
 116         {
 117                 *(.neardata2 .neardata2.* .gnu.linkonce.s2.*)
 118                 *(.neardata .neardata.* .gnu.linkonce.s.*)
 119                 . = ALIGN(8);
 120         }
 121 
 122         BUG_TABLE
 123 
 124         _edata = .;
 125 
 126         __bss_start = .;
 127         SBSS(8)
 128         BSS(8)
 129         .far :
 130         {
 131                 . = ALIGN(8);
 132                 *(.dynfar)
 133                 *(.far .far.* .gnu.linkonce.b.*)
 134                 . = ALIGN(8);
 135         }
 136         __bss_stop = .;
 137 
 138         _end = .;
 139 
 140         DWARF_DEBUG
 141 
 142         /DISCARD/ :
 143         {
 144                   EXIT_TEXT
 145                   EXIT_DATA
 146                   EXIT_CALL
 147                   *(.discard)
 148                   *(.discard.*)
 149                   *(.interp)
 150         }
 151 }

/* [<][>][^][v][top][bottom][index][help] */