mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 08:56:45 +07:00
66d857b08b
There is a lot of common code that could be shared between the m68k and m68knommu arch branches. It makes sense to merge the two branches into a single directory structure so that we can more easily share that common code. This is a brute force merge, based on a script from Stephen King <sfking@fdwdc.com>, which was originally written by Arnd Bergmann <arnd@arndb.de>. > The script was inspired by the script Sam Ravnborg used to merge the > includes from m68knommu. For those files common to both arches but > differing in content, the m68k version of the file is renamed to > <file>_mm.<ext> and the m68knommu version of the file is moved into the > corresponding m68k directory and renamed <file>_no.<ext> and a small > wrapper file <file>.<ext> is used to select between the two version. Files > that are common to both but don't differ are removed from the m68knommu > tree and files and directories that are unique to the m68knommu tree are > moved to the m68k tree. Finally, the arch/m68knommu tree is removed. > > To select between the the versions of the files, the wrapper uses > > #ifdef CONFIG_MMU > #include <file>_mm.<ext> > #else > #include <file>_no.<ext> > #endif On top of this file merge I have done a simplistic merge of m68k and m68knommu Kconfig, which primarily attempts to keep existing options and menus in place. Other than a handful of options being moved it produces identical .config outputs on m68k and m68knommu targets I tested it on. With this in place there is now quite a bit of scope for merge cleanups in future patches. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
189 lines
3.8 KiB
ArmAsm
189 lines
3.8 KiB
ArmAsm
/*
|
|
* vmlinux.lds.S -- master linker script for m68knommu arch
|
|
*
|
|
* (C) Copyright 2002-2006, Greg Ungerer <gerg@snapgear.com>
|
|
*
|
|
* This linker script is equiped to build either ROM loaded or RAM
|
|
* run kernels.
|
|
*/
|
|
|
|
#include <asm-generic/vmlinux.lds.h>
|
|
#include <asm/page.h>
|
|
#include <asm/thread_info.h>
|
|
|
|
#if defined(CONFIG_RAMKERNEL)
|
|
#define RAM_START CONFIG_KERNELBASE
|
|
#define RAM_LENGTH (CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE)
|
|
#define TEXT ram
|
|
#define DATA ram
|
|
#define INIT ram
|
|
#define BSSS ram
|
|
#endif
|
|
#if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)
|
|
#define RAM_START CONFIG_RAMBASE
|
|
#define RAM_LENGTH CONFIG_RAMSIZE
|
|
#define ROMVEC_START CONFIG_ROMVEC
|
|
#define ROMVEC_LENGTH CONFIG_ROMVECSIZE
|
|
#define ROM_START CONFIG_ROMSTART
|
|
#define ROM_LENGTH CONFIG_ROMSIZE
|
|
#define TEXT rom
|
|
#define DATA ram
|
|
#define INIT ram
|
|
#define BSSS ram
|
|
#endif
|
|
|
|
#ifndef DATA_ADDR
|
|
#define DATA_ADDR
|
|
#endif
|
|
|
|
|
|
OUTPUT_ARCH(m68k)
|
|
ENTRY(_start)
|
|
|
|
MEMORY {
|
|
ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH
|
|
#ifdef ROM_START
|
|
romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH
|
|
rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH
|
|
#endif
|
|
}
|
|
|
|
jiffies = jiffies_64 + 4;
|
|
|
|
SECTIONS {
|
|
|
|
#ifdef ROMVEC_START
|
|
. = ROMVEC_START ;
|
|
.romvec : {
|
|
__rom_start = . ;
|
|
_romvec = .;
|
|
*(.data..initvect)
|
|
} > romvec
|
|
#endif
|
|
|
|
.text : {
|
|
_text = .;
|
|
_stext = . ;
|
|
HEAD_TEXT
|
|
TEXT_TEXT
|
|
SCHED_TEXT
|
|
LOCK_TEXT
|
|
*(.text..lock)
|
|
|
|
. = ALIGN(16); /* Exception table */
|
|
__start___ex_table = .;
|
|
*(__ex_table)
|
|
__stop___ex_table = .;
|
|
|
|
*(.rodata) *(.rodata.*)
|
|
*(__vermagic) /* Kernel version magic */
|
|
*(__markers_strings)
|
|
*(.rodata1)
|
|
*(.rodata.str1.1)
|
|
|
|
/* Kernel symbol table: Normal symbols */
|
|
. = ALIGN(4);
|
|
__start___ksymtab = .;
|
|
*(__ksymtab)
|
|
__stop___ksymtab = .;
|
|
|
|
/* Kernel symbol table: GPL-only symbols */
|
|
__start___ksymtab_gpl = .;
|
|
*(__ksymtab_gpl)
|
|
__stop___ksymtab_gpl = .;
|
|
|
|
/* Kernel symbol table: Normal unused symbols */
|
|
__start___ksymtab_unused = .;
|
|
*(__ksymtab_unused)
|
|
__stop___ksymtab_unused = .;
|
|
|
|
/* Kernel symbol table: GPL-only unused symbols */
|
|
__start___ksymtab_unused_gpl = .;
|
|
*(__ksymtab_unused_gpl)
|
|
__stop___ksymtab_unused_gpl = .;
|
|
|
|
/* Kernel symbol table: GPL-future symbols */
|
|
__start___ksymtab_gpl_future = .;
|
|
*(__ksymtab_gpl_future)
|
|
__stop___ksymtab_gpl_future = .;
|
|
|
|
/* Kernel symbol table: Normal symbols */
|
|
__start___kcrctab = .;
|
|
*(__kcrctab)
|
|
__stop___kcrctab = .;
|
|
|
|
/* Kernel symbol table: GPL-only symbols */
|
|
__start___kcrctab_gpl = .;
|
|
*(__kcrctab_gpl)
|
|
__stop___kcrctab_gpl = .;
|
|
|
|
/* Kernel symbol table: Normal unused symbols */
|
|
__start___kcrctab_unused = .;
|
|
*(__kcrctab_unused)
|
|
__stop___kcrctab_unused = .;
|
|
|
|
/* Kernel symbol table: GPL-only unused symbols */
|
|
__start___kcrctab_unused_gpl = .;
|
|
*(__kcrctab_unused_gpl)
|
|
__stop___kcrctab_unused_gpl = .;
|
|
|
|
/* Kernel symbol table: GPL-future symbols */
|
|
__start___kcrctab_gpl_future = .;
|
|
*(__kcrctab_gpl_future)
|
|
__stop___kcrctab_gpl_future = .;
|
|
|
|
/* Kernel symbol table: strings */
|
|
*(__ksymtab_strings)
|
|
|
|
/* Built-in module parameters */
|
|
. = ALIGN(4) ;
|
|
__start___param = .;
|
|
*(__param)
|
|
__stop___param = .;
|
|
|
|
/* Built-in module versions */
|
|
. = ALIGN(4) ;
|
|
__start___modver = .;
|
|
*(__modver)
|
|
__stop___modver = .;
|
|
|
|
. = ALIGN(4) ;
|
|
_etext = . ;
|
|
} > TEXT
|
|
|
|
.data DATA_ADDR : {
|
|
. = ALIGN(4);
|
|
_sdata = . ;
|
|
DATA_DATA
|
|
CACHELINE_ALIGNED_DATA(32)
|
|
PAGE_ALIGNED_DATA(PAGE_SIZE)
|
|
*(.data..shared_aligned)
|
|
INIT_TASK_DATA(THREAD_SIZE)
|
|
_edata = . ;
|
|
} > DATA
|
|
|
|
.init.text : {
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_begin = .;
|
|
} > INIT
|
|
INIT_TEXT_SECTION(PAGE_SIZE) > INIT
|
|
INIT_DATA_SECTION(16) > INIT
|
|
.init.data : {
|
|
. = ALIGN(PAGE_SIZE);
|
|
__init_end = .;
|
|
} > INIT
|
|
|
|
.bss : {
|
|
. = ALIGN(4);
|
|
_sbss = . ;
|
|
*(.bss)
|
|
*(COMMON)
|
|
. = ALIGN(4) ;
|
|
_ebss = . ;
|
|
_end = . ;
|
|
} > BSSS
|
|
|
|
DISCARDS
|
|
}
|
|
|