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


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#include <linux/sizes.h>
      3#include <asm/asm-offsets.h>
      4#include <asm/thread_info.h>
      5
      6#define PAGE_SIZE _PAGE_SIZE
      7
      8/*
      9 * Put .bss..swapper_pg_dir as the first thing in .bss. This will
     10 * ensure that it has .bss alignment (64K).
     11 */
     12#define BSS_FIRST_SECTIONS *(.bss..swapper_pg_dir)
     13
     14#include <asm-generic/vmlinux.lds.h>
     15
     16/*
     17 * Max avaliable Page Size is 64K, so we set SectionAlignment
     18 * field of EFI application to 64K.
     19 */
     20PECOFF_FILE_ALIGN = 0x200;
     21PECOFF_SEGMENT_ALIGN = 0x10000;
     22
     23OUTPUT_ARCH(loongarch)
     24ENTRY(kernel_entry)
     25PHDRS {
     26	text PT_LOAD FLAGS(7);	/* RWX */
     27	note PT_NOTE FLAGS(4);	/* R__ */
     28}
     29
     30jiffies	 = jiffies_64;
     31
     32SECTIONS
     33{
     34	. = VMLINUX_LOAD_ADDRESS;
     35
     36	_text = .;
     37	HEAD_TEXT_SECTION
     38
     39	. = ALIGN(PECOFF_SEGMENT_ALIGN);
     40	_stext = .;
     41	.text : {
     42		TEXT_TEXT
     43		SCHED_TEXT
     44		CPUIDLE_TEXT
     45		LOCK_TEXT
     46		KPROBES_TEXT
     47		IRQENTRY_TEXT
     48		SOFTIRQENTRY_TEXT
     49		*(.fixup)
     50		*(.gnu.warning)
     51	} :text = 0
     52	. = ALIGN(PECOFF_SEGMENT_ALIGN);
     53	_etext = .;
     54
     55	EXCEPTION_TABLE(16)
     56
     57	. = ALIGN(PECOFF_SEGMENT_ALIGN);
     58	__init_begin = .;
     59	__inittext_begin = .;
     60
     61	INIT_TEXT_SECTION(PAGE_SIZE)
     62	.exit.text : {
     63		EXIT_TEXT
     64	}
     65
     66	. = ALIGN(PECOFF_SEGMENT_ALIGN);
     67	__inittext_end = .;
     68
     69	__initdata_begin = .;
     70
     71	INIT_DATA_SECTION(16)
     72	.exit.data : {
     73		EXIT_DATA
     74	}
     75
     76#ifdef CONFIG_SMP
     77	PERCPU_SECTION(1 << CONFIG_L1_CACHE_SHIFT)
     78#endif
     79
     80	.init.bss : {
     81		*(.init.bss)
     82	}
     83	. = ALIGN(PECOFF_SEGMENT_ALIGN);
     84	__initdata_end = .;
     85
     86	__init_end = .;
     87
     88	_sdata = .;
     89	RO_DATA(4096)
     90	RW_DATA(1 << CONFIG_L1_CACHE_SHIFT, PAGE_SIZE, THREAD_SIZE)
     91
     92	.sdata : {
     93		*(.sdata)
     94	}
     95	.edata_padding : { BYTE(0); . = ALIGN(PECOFF_FILE_ALIGN); }
     96	_edata =  .;
     97
     98	BSS_SECTION(0, SZ_64K, 8)
     99	. = ALIGN(PECOFF_SEGMENT_ALIGN);
    100
    101	_end = .;
    102
    103	STABS_DEBUG
    104	DWARF_DEBUG
    105	ELF_DETAILS
    106
    107	.gptab.sdata : {
    108		*(.gptab.data)
    109		*(.gptab.sdata)
    110	}
    111	.gptab.sbss : {
    112		*(.gptab.bss)
    113		*(.gptab.sbss)
    114	}
    115
    116	DISCARDS
    117	/DISCARD/ : {
    118		*(.gnu.attributes)
    119		*(.options)
    120		*(.eh_frame)
    121	}
    122}