1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#include <asm/vmlinux.lds.h> 4#include <asm/page.h> 5#include <asm/memory.h> 6 7OUTPUT_ARCH(csky) 8ENTRY(_start) 9 10#ifndef __cskyBE__ 11jiffies = jiffies_64; 12#else 13jiffies = jiffies_64 + 4; 14#endif 15 16#define VBR_BASE \ 17 . = ALIGN(1024); \ 18 vec_base = .; \ 19 . += 512; 20 21SECTIONS 22{ 23 . = PAGE_OFFSET + PHYS_OFFSET_OFFSET; 24 25 _start = .; 26 HEAD_TEXT_SECTION 27 . = ALIGN(PAGE_SIZE); 28 29 .text : AT(ADDR(.text) - LOAD_OFFSET) { 30 _text = .; 31 _stext = .; 32 VBR_BASE 33 IRQENTRY_TEXT 34 SOFTIRQENTRY_TEXT 35 TEXT_TEXT 36 SCHED_TEXT 37 CPUIDLE_TEXT 38 LOCK_TEXT 39 KPROBES_TEXT 40 *(.fixup) 41 *(.gnu.warning) 42 } = 0 43 _etext = .; 44 45 /* __init_begin __init_end must be page aligned for free_initmem */ 46 . = ALIGN(PAGE_SIZE); 47 __init_begin = .; 48 INIT_TEXT_SECTION(PAGE_SIZE) 49 INIT_DATA_SECTION(PAGE_SIZE) 50 PERCPU_SECTION(L1_CACHE_BYTES) 51 . = ALIGN(PAGE_SIZE); 52 __init_end = .; 53 54 _sdata = .; 55 RO_DATA(PAGE_SIZE) 56 RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) 57 _edata = .; 58 59#ifdef CONFIG_HAVE_TCM 60 .tcm_start : { 61 . = ALIGN(PAGE_SIZE); 62 __tcm_start = .; 63 } 64 65 .text_data_tcm FIXADDR_TCM : AT(__tcm_start) 66 { 67 . = ALIGN(4); 68 __stcm_text_data = .; 69 *(.tcm.text) 70 *(.tcm.rodata) 71#ifndef CONFIG_HAVE_DTCM 72 *(.tcm.data) 73#endif 74 . = ALIGN(4); 75 __etcm_text_data = .; 76 } 77 78 . = ADDR(.tcm_start) + SIZEOF(.tcm_start) + SIZEOF(.text_data_tcm); 79 80#ifdef CONFIG_HAVE_DTCM 81 #define ITCM_SIZE CONFIG_ITCM_NR_PAGES * PAGE_SIZE 82 83 .dtcm_start : { 84 __dtcm_start = .; 85 } 86 87 .data_tcm FIXADDR_TCM + ITCM_SIZE : AT(__dtcm_start) 88 { 89 . = ALIGN(4); 90 __stcm_data = .; 91 *(.tcm.data) 92 . = ALIGN(4); 93 __etcm_data = .; 94 } 95 96 . = ADDR(.dtcm_start) + SIZEOF(.data_tcm); 97 98 .tcm_end : AT(ADDR(.dtcm_start) + SIZEOF(.data_tcm)) { 99#else 100 .tcm_end : AT(ADDR(.tcm_start) + SIZEOF(.text_data_tcm)) { 101#endif 102 . = ALIGN(PAGE_SIZE); 103 __tcm_end = .; 104 } 105#endif 106 107 EXCEPTION_TABLE(L1_CACHE_BYTES) 108 BSS_SECTION(L1_CACHE_BYTES, PAGE_SIZE, L1_CACHE_BYTES) 109 _end = . ; 110 111 STABS_DEBUG 112 DWARF_DEBUG 113 ELF_DETAILS 114 115 DISCARDS 116} 117