Linux Audio

Check our new training course

Loading...
v6.2
  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}
v6.8
  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		LOCK_TEXT
 38		KPROBES_TEXT
 39		*(.fixup)
 40		*(.gnu.warning)
 41	} = 0
 42	_etext = .;
 43
 44	/* __init_begin __init_end must be page aligned for free_initmem */
 45	. = ALIGN(PAGE_SIZE);
 46	__init_begin = .;
 47	INIT_TEXT_SECTION(PAGE_SIZE)
 48	INIT_DATA_SECTION(PAGE_SIZE)
 49	PERCPU_SECTION(L1_CACHE_BYTES)
 50	. = ALIGN(PAGE_SIZE);
 51	__init_end = .;
 52
 53	_sdata = .;
 54	RO_DATA(PAGE_SIZE)
 55	RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
 56	_edata = .;
 57
 58#ifdef CONFIG_HAVE_TCM
 59	.tcm_start : {
 60		. = ALIGN(PAGE_SIZE);
 61		__tcm_start = .;
 62	}
 63
 64	.text_data_tcm FIXADDR_TCM : AT(__tcm_start)
 65	{
 66		. = ALIGN(4);
 67		__stcm_text_data = .;
 68		*(.tcm.text)
 69		*(.tcm.rodata)
 70#ifndef CONFIG_HAVE_DTCM
 71		*(.tcm.data)
 72#endif
 73		. = ALIGN(4);
 74		__etcm_text_data = .;
 75	}
 76
 77	. = ADDR(.tcm_start) + SIZEOF(.tcm_start) + SIZEOF(.text_data_tcm);
 78
 79#ifdef CONFIG_HAVE_DTCM
 80	#define ITCM_SIZE	CONFIG_ITCM_NR_PAGES * PAGE_SIZE
 81
 82	.dtcm_start : {
 83		__dtcm_start = .;
 84	}
 85
 86	.data_tcm FIXADDR_TCM + ITCM_SIZE : AT(__dtcm_start)
 87	{
 88		. = ALIGN(4);
 89		__stcm_data = .;
 90		*(.tcm.data)
 91		. = ALIGN(4);
 92		__etcm_data = .;
 93	}
 94
 95	. = ADDR(.dtcm_start) + SIZEOF(.data_tcm);
 96
 97	.tcm_end : AT(ADDR(.dtcm_start) + SIZEOF(.data_tcm)) {
 98#else
 99	.tcm_end : AT(ADDR(.tcm_start) + SIZEOF(.text_data_tcm)) {
100#endif
101		. = ALIGN(PAGE_SIZE);
102		__tcm_end = .;
103	}
104#endif
105
106	EXCEPTION_TABLE(L1_CACHE_BYTES)
107	BSS_SECTION(L1_CACHE_BYTES, PAGE_SIZE, L1_CACHE_BYTES)
108	_end = . ;
109
110	STABS_DEBUG
111	DWARF_DEBUG
112	ELF_DETAILS
113
114	DISCARDS
115}