cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vmlinux.lds.S (1533B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * ld script to make SuperH Linux kernel
      4 * Written by Niibe Yutaka and Paul Mundt
      5 */
      6OUTPUT_ARCH(sh)
      7#include <asm/thread_info.h>
      8#include <asm/cache.h>
      9#include <asm/vmlinux.lds.h>
     10
     11#ifdef CONFIG_PMB
     12 #define MEMORY_OFFSET	0
     13#else
     14 #define MEMORY_OFFSET	__MEMORY_START
     15#endif
     16
     17ENTRY(_start)
     18SECTIONS
     19{
     20	. = PAGE_OFFSET + MEMORY_OFFSET + PHYSICAL_OFFSET + CONFIG_ZERO_PAGE_OFFSET;
     21
     22	_text = .;		/* Text and read-only data */
     23
     24	.empty_zero_page : AT(ADDR(.empty_zero_page)) {
     25		*(.empty_zero_page)
     26	} = 0
     27
     28	.text : AT(ADDR(.text)) {
     29		HEAD_TEXT
     30		TEXT_TEXT
     31		SCHED_TEXT
     32		CPUIDLE_TEXT
     33		LOCK_TEXT
     34		KPROBES_TEXT
     35		IRQENTRY_TEXT
     36		SOFTIRQENTRY_TEXT
     37		*(.fixup)
     38		*(.gnu.warning)
     39		_etext = .;		/* End of text section */
     40	} = 0x0009
     41
     42	EXCEPTION_TABLE(16)
     43
     44	_sdata = .;
     45	RO_DATA(PAGE_SIZE)
     46	RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
     47	_edata = .;
     48
     49	DWARF_EH_FRAME
     50
     51	. = ALIGN(PAGE_SIZE);		/* Init code and data */
     52	__init_begin = .;
     53	INIT_TEXT_SECTION(PAGE_SIZE)
     54	INIT_DATA_SECTION(16)
     55
     56	. = ALIGN(4);
     57	.machvec.init : AT(ADDR(.machvec.init)) {
     58		__machvec_start = .;
     59		*(.machvec.init)
     60		__machvec_end = .;
     61	}
     62
     63	PERCPU_SECTION(L1_CACHE_BYTES)
     64
     65	/*
     66	 * .exit.text is discarded at runtime, not link time, to deal with
     67	 * references from __bug_table
     68	 */
     69	.exit.text : AT(ADDR(.exit.text)) { EXIT_TEXT }
     70	.exit.data : AT(ADDR(.exit.data)) { EXIT_DATA }
     71
     72	. = ALIGN(PAGE_SIZE);
     73	__init_end = .;
     74	BSS_SECTION(0, PAGE_SIZE, 4)
     75	_end = . ;
     76
     77	STABS_DEBUG
     78	DWARF_DEBUG
     79	ELF_DETAILS
     80
     81	DISCARDS
     82}