116 lines · 1.9 KB · Assembly
RawDownload
/* SPDX-License-Identifier: GPL-2.0 */ #include <asm/vmlinux.lds.h>#include <asm/page.h>#include <asm/memory.h> OUTPUT_ARCH(csky)ENTRY(_start) #ifndef __cskyBE__jiffies = jiffies_64;#elsejiffies = jiffies_64 + 4;#endif #define VBR_BASE \	. = ALIGN(1024); \	vec_base = .; \	. += 512; SECTIONS{	. = PAGE_OFFSET + PHYS_OFFSET_OFFSET; 	_start = .;	HEAD_TEXT_SECTION	. = ALIGN(PAGE_SIZE); 	.text : AT(ADDR(.text) - LOAD_OFFSET) {		_text = .;		_stext = .;		VBR_BASE		IRQENTRY_TEXT		SOFTIRQENTRY_TEXT		TEXT_TEXT		SCHED_TEXT		LOCK_TEXT		KPROBES_TEXT		*(.fixup)		*(.gnu.warning)	} = 0	_etext = .; 	/* __init_begin __init_end must be page aligned for free_initmem */	. = ALIGN(PAGE_SIZE);	__init_begin = .;	INIT_TEXT_SECTION(PAGE_SIZE)	INIT_DATA_SECTION(PAGE_SIZE)	PERCPU_SECTION(L1_CACHE_BYTES)	. = ALIGN(PAGE_SIZE);	__init_end = .; 	_sdata = .;	RO_DATA(PAGE_SIZE)	RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)	_edata = .; #ifdef CONFIG_HAVE_TCM	.tcm_start : {		. = ALIGN(PAGE_SIZE);		__tcm_start = .;	} 	.text_data_tcm FIXADDR_TCM : AT(__tcm_start)	{		. = ALIGN(4);		__stcm_text_data = .;		*(.tcm.text)		*(.tcm.rodata)#ifndef CONFIG_HAVE_DTCM		*(.tcm.data)#endif		. = ALIGN(4);		__etcm_text_data = .;	} 	. = ADDR(.tcm_start) + SIZEOF(.tcm_start) + SIZEOF(.text_data_tcm); #ifdef CONFIG_HAVE_DTCM	#define ITCM_SIZE	CONFIG_ITCM_NR_PAGES * PAGE_SIZE 	.dtcm_start : {		__dtcm_start = .;	} 	.data_tcm FIXADDR_TCM + ITCM_SIZE : AT(__dtcm_start)	{		. = ALIGN(4);		__stcm_data = .;		*(.tcm.data)		. = ALIGN(4);		__etcm_data = .;	} 	. = ADDR(.dtcm_start) + SIZEOF(.data_tcm); 	.tcm_end : AT(ADDR(.dtcm_start) + SIZEOF(.data_tcm)) {#else	.tcm_end : AT(ADDR(.tcm_start) + SIZEOF(.text_data_tcm)) {#endif		. = ALIGN(PAGE_SIZE);		__tcm_end = .;	}#endif 	EXCEPTION_TABLE(L1_CACHE_BYTES)	BSS_SECTION(L1_CACHE_BYTES, PAGE_SIZE, L1_CACHE_BYTES)	_end = . ; 	STABS_DEBUG	DWARF_DEBUG	MODINFO	ELF_DETAILS 	DISCARDS}