93 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2012 Regents of the University of California
 | |
|  * Copyright (C) 2017 SiFive
 | |
|  *
 | |
|  *   This program is free software; you can redistribute it and/or
 | |
|  *   modify it under the terms of the GNU General Public License
 | |
|  *   as published by the Free Software Foundation, version 2.
 | |
|  *
 | |
|  *   This program is distributed in the hope that it will be useful,
 | |
|  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  *   GNU General Public License for more details.
 | |
|  */
 | |
| 
 | |
| #define LOAD_OFFSET PAGE_OFFSET
 | |
| #include <asm/vmlinux.lds.h>
 | |
| #include <asm/page.h>
 | |
| #include <asm/cache.h>
 | |
| #include <asm/thread_info.h>
 | |
| 
 | |
| OUTPUT_ARCH(riscv)
 | |
| ENTRY(_start)
 | |
| 
 | |
| jiffies = jiffies_64;
 | |
| 
 | |
| SECTIONS
 | |
| {
 | |
| 	/* Beginning of code and text segment */
 | |
| 	. = LOAD_OFFSET;
 | |
| 	_start = .;
 | |
| 	__init_begin = .;
 | |
| 	HEAD_TEXT_SECTION
 | |
| 	INIT_TEXT_SECTION(PAGE_SIZE)
 | |
| 	INIT_DATA_SECTION(16)
 | |
| 	/* we have to discard exit text and such at runtime, not link time */
 | |
| 	.exit.text :
 | |
| 	{
 | |
| 		EXIT_TEXT
 | |
| 	}
 | |
| 	.exit.data :
 | |
| 	{
 | |
| 		EXIT_DATA
 | |
| 	}
 | |
| 	PERCPU_SECTION(L1_CACHE_BYTES)
 | |
| 	__init_end = .;
 | |
| 
 | |
| 	.text : {
 | |
| 		_text = .;
 | |
| 		_stext = .;
 | |
| 		TEXT_TEXT
 | |
| 		SCHED_TEXT
 | |
| 		CPUIDLE_TEXT
 | |
| 		LOCK_TEXT
 | |
| 		KPROBES_TEXT
 | |
| 		ENTRY_TEXT
 | |
| 		IRQENTRY_TEXT
 | |
| 		*(.fixup)
 | |
| 		_etext = .;
 | |
| 	}
 | |
| 
 | |
| 	/* Start of data section */
 | |
| 	_sdata = .;
 | |
| 	RO_DATA_SECTION(L1_CACHE_BYTES)
 | |
| 	.srodata : {
 | |
| 		*(.srodata*)
 | |
| 	}
 | |
| 
 | |
| 	RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
 | |
| 	.sdata : {
 | |
| 		__global_pointer$ = . + 0x800;
 | |
| 		*(.sdata*)
 | |
| 		/* End of data section */
 | |
| 		_edata = .;
 | |
| 		*(.sbss*)
 | |
| 	}
 | |
| 
 | |
| 	BSS_SECTION(0, 0, 0)
 | |
| 
 | |
| 	EXCEPTION_TABLE(0x10)
 | |
| 	NOTES
 | |
| 
 | |
| 	.rel.dyn : {
 | |
| 		*(.rel.dyn*)
 | |
| 	}
 | |
| 
 | |
| 	_end = .;
 | |
| 
 | |
| 	STABS_DEBUG
 | |
| 	DWARF_DEBUG
 | |
| 
 | |
| 	DISCARDS
 | |
| }
 | 
