Linux Audio

Check our new training course

Loading...
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}
v6.13.7
  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}