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 (2280B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * OpenRISC vmlinux.lds.S
      4 *
      5 * Linux architectural port borrowing liberally from similar works of
      6 * others.  All original copyrights apply as per the original source
      7 * declaration.
      8 *
      9 * Modifications for the OpenRISC architecture:
     10 * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com>
     11 * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
     12 *
     13 * ld script for OpenRISC architecture
     14 */
     15
     16/* TODO
     17 *		- clean up __offset & stuff
     18 *		- change all 8192 alignment to PAGE !!!
     19 *		- recheck if all alignments are really needed
     20 */
     21
     22#  define LOAD_OFFSET  PAGE_OFFSET
     23#  define LOAD_BASE    PAGE_OFFSET
     24
     25#include <asm/page.h>
     26#include <asm/cache.h>
     27#include <asm/thread_info.h>
     28#include <asm-generic/vmlinux.lds.h>
     29
     30#ifdef __OR1K__
     31#define __OUTPUT_FORMAT        "elf32-or1k"
     32#else
     33#define __OUTPUT_FORMAT        "elf32-or32"
     34#endif
     35
     36OUTPUT_FORMAT(__OUTPUT_FORMAT, __OUTPUT_FORMAT, __OUTPUT_FORMAT)
     37jiffies = jiffies_64 + 4;
     38
     39SECTIONS
     40{
     41        /* Read-only sections, merged into text segment: */
     42        . = LOAD_BASE ;
     43
     44	_text = .;
     45
     46	/* _s_kernel_ro must be page aligned */
     47	. = ALIGN(PAGE_SIZE);
     48	_s_kernel_ro = .;
     49
     50        .text                   : AT(ADDR(.text) - LOAD_OFFSET)
     51	{
     52          _stext = .;
     53	  TEXT_TEXT
     54	  SCHED_TEXT
     55	  CPUIDLE_TEXT
     56	  LOCK_TEXT
     57	  KPROBES_TEXT
     58	  IRQENTRY_TEXT
     59	  SOFTIRQENTRY_TEXT
     60	  *(.fixup)
     61	  *(.text.__*)
     62	  _etext = .;
     63	}
     64	/* TODO: Check if fixup and text.__* are really necessary
     65	 * fixup is definitely necessary
     66	 */
     67
     68	_sdata = .;
     69
     70	/* Page alignment required for RO_DATA */
     71	RO_DATA(PAGE_SIZE)
     72	_e_kernel_ro = .;
     73
     74	/* Whatever comes after _e_kernel_ro had better be page-aligend, too */
     75
     76	/* 32 here is cacheline size... recheck this */
     77	RW_DATA(32, PAGE_SIZE, PAGE_SIZE)
     78
     79        _edata  =  .;
     80
     81	EXCEPTION_TABLE(4)
     82
     83	/* Init code and data */
     84	. = ALIGN(PAGE_SIZE);
     85	__init_begin = .;
     86
     87	HEAD_TEXT_SECTION
     88
     89	/* Page aligned */
     90	INIT_TEXT_SECTION(PAGE_SIZE)
     91
     92	/* Align __setup_start on 16 byte boundary */
     93	INIT_DATA_SECTION(16)
     94
     95	PERCPU_SECTION(L1_CACHE_BYTES)
     96
     97        __init_end = .;
     98
     99	BSS_SECTION(0, 0, 0x20)
    100
    101        _end = .;
    102
    103	/* Throw in the debugging sections */
    104	STABS_DEBUG
    105	DWARF_DEBUG
    106	ELF_DETAILS
    107
    108        /* Sections to be discarded -- must be last */
    109	DISCARDS
    110}