mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
Merge branch 'link_removal' of git://www.jni.nu/cris
* 'link_removal' of git://www.jni.nu/cris: [CRIS] Remove links from CRIS build [CRIS] Merge asm-offsets.c for both arches into one file.
This commit is contained in:
commit
cdce1f0931
7 changed files with 115 additions and 246 deletions
|
@ -23,7 +23,8 @@ mach-$(CONFIG_ETRAXFS) := fs
|
||||||
|
|
||||||
ifneq ($(arch-y),)
|
ifneq ($(arch-y),)
|
||||||
SARCH := arch-$(arch-y)
|
SARCH := arch-$(arch-y)
|
||||||
inc := -Iarch/cris/include/arch-$(arch-y) -Iarch/cris/include/arch-$(arch-y)/arch
|
inc := -Iarch/cris/include/$(SARCH)
|
||||||
|
inc += -Iarch/cris/include/$(SARCH)/arch
|
||||||
else
|
else
|
||||||
SARCH :=
|
SARCH :=
|
||||||
inc :=
|
inc :=
|
||||||
|
@ -52,74 +53,48 @@ KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
|
||||||
KBUILD_CFLAGS += -fno-omit-frame-pointer
|
KBUILD_CFLAGS += -fno-omit-frame-pointer
|
||||||
endif
|
endif
|
||||||
|
|
||||||
head-y := arch/$(ARCH)/$(SARCH)/kernel/head.o
|
head-y := arch/cris/$(SARCH)/kernel/head.o
|
||||||
|
|
||||||
LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
|
LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
|
||||||
|
|
||||||
core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
|
core-y += arch/cris/kernel/ arch/cris/mm/
|
||||||
core-y += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
|
core-y += arch/cris/$(SARCH)/kernel/ arch/cris/$(SARCH)/mm/
|
||||||
ifdef CONFIG_ETRAX_ARCH_V32
|
ifdef CONFIG_ETRAX_ARCH_V32
|
||||||
core-y += arch/$(ARCH)/$(SARCH)/$(MACH)/
|
core-y += arch/cris/$(SARCH)/$(MACH)/
|
||||||
endif
|
endif
|
||||||
drivers-y += arch/$(ARCH)/$(SARCH)/drivers/
|
drivers-y += arch/cris/$(SARCH)/drivers/
|
||||||
libs-y += arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)
|
libs-y += arch/cris/$(SARCH)/lib/ $(LIBGCC)
|
||||||
|
|
||||||
# cris source path
|
# cris source path
|
||||||
SRC_ARCH = $(srctree)/arch/$(ARCH)
|
SRC_ARCH = $(srctree)/arch/cris
|
||||||
# cris object files path
|
# cris object files path
|
||||||
OBJ_ARCH = $(objtree)/arch/$(ARCH)
|
OBJ_ARCH = $(objtree)/arch/cris
|
||||||
|
|
||||||
boot := arch/$(ARCH)/boot
|
boot := arch/cris/$(SARCH)/boot
|
||||||
MACHINE := arch/$(ARCH)/$(SARCH)
|
MACHINE := arch/cris/$(SARCH)
|
||||||
|
|
||||||
all: zImage
|
all: zImage
|
||||||
|
|
||||||
zImage Image: vmlinux
|
zImage Image: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
|
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
|
||||||
|
|
||||||
archprepare: $(SRC_ARCH)/.links FORCE
|
archprepare:
|
||||||
|
|
||||||
# Create some links to make all tools happy
|
|
||||||
$(SRC_ARCH)/.links:
|
|
||||||
@rm -rf $(SRC_ARCH)/drivers
|
|
||||||
@ln -sfn $(SARCH)/drivers $(SRC_ARCH)/drivers
|
|
||||||
@rm -rf $(SRC_ARCH)/boot
|
|
||||||
@ln -sfn $(SARCH)/boot $(SRC_ARCH)/boot
|
|
||||||
@rm -rf $(SRC_ARCH)/lib
|
|
||||||
@ln -sfn $(SARCH)/lib $(SRC_ARCH)/lib
|
|
||||||
@rm -f $(SRC_ARCH)/arch/mach
|
|
||||||
@rm -rf $(SRC_ARCH)/arch
|
|
||||||
@ln -sfn $(SARCH) $(SRC_ARCH)/arch
|
|
||||||
ifdef CONFIG_ETRAX_ARCH_V32
|
|
||||||
@ln -sfn ../$(SARCH)/$(MACH) $(SRC_ARCH)/arch/mach
|
|
||||||
endif
|
|
||||||
@rm -rf $(SRC_ARCH)/kernel/vmlinux.lds.S
|
|
||||||
@ln -sfn ../$(SARCH)/vmlinux.lds.S $(SRC_ARCH)/kernel/vmlinux.lds.S
|
|
||||||
@rm -rf $(SRC_ARCH)/kernel/asm-offsets.c
|
|
||||||
@ln -sfn ../$(SARCH)/kernel/asm-offsets.c $(SRC_ARCH)/kernel/asm-offsets.c
|
|
||||||
@touch $@
|
|
||||||
|
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)if [ -e arch/$(ARCH)/boot ]; then \
|
$(Q)if [ -e arch/cris/$(SARCH)/boot ]; then \
|
||||||
$(MAKE) $(clean)=arch/$(ARCH)/boot; \
|
$(MAKE) $(clean)=arch/cris/$(SARCH)/boot; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CLEAN_FILES += \
|
CLEAN_FILES += \
|
||||||
$(MACHINE)/boot/zImage \
|
$(MACHINE)/boot/zImage \
|
||||||
$(MACHINE)/boot/compressed/decompress.bin \
|
$(MACHINE)/boot/compressed/decompress.bin \
|
||||||
$(MACHINE)/boot/compressed/piggy.gz \
|
$(MACHINE)/boot/compressed/piggy.gz \
|
||||||
$(MACHINE)/boot/rescue/rescue.bin \
|
$(MACHINE)/boot/rescue/rescue.bin
|
||||||
$(SRC_ARCH)/.links
|
|
||||||
|
|
||||||
MRPROPER_FILES += \
|
|
||||||
$(SRC_ARCH)/drivers \
|
# MRPROPER_FILES +=
|
||||||
$(SRC_ARCH)/boot \
|
|
||||||
$(SRC_ARCH)/lib \
|
|
||||||
$(SRC_ARCH)/arch \
|
|
||||||
$(SRC_ARCH)/kernel/vmlinux.lds.S \
|
|
||||||
$(SRC_ARCH)/kernel/asm-offsets.c
|
|
||||||
|
|
||||||
define archhelp
|
define archhelp
|
||||||
echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
|
echo '* zImage - Compressed kernel image (arch/cris/boot/zImage)'
|
||||||
echo '* Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
|
echo '* Image - Uncompressed kernel image (arch/cris/boot/Image)'
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
#include <linux/sched.h>
|
|
||||||
#include <asm/thread_info.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate definitions needed by assembly language modules.
|
|
||||||
* This code generates raw asm output which is post-processed to extract
|
|
||||||
* and format the required data.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define DEFINE(sym, val) \
|
|
||||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
|
||||||
|
|
||||||
#define BLANK() asm volatile("\n->" : : )
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
#define ENTRY(entry) DEFINE(PT_ ## entry, offsetof(struct pt_regs, entry))
|
|
||||||
ENTRY(orig_r10);
|
|
||||||
ENTRY(r13);
|
|
||||||
ENTRY(r12);
|
|
||||||
ENTRY(r11);
|
|
||||||
ENTRY(r10);
|
|
||||||
ENTRY(r9);
|
|
||||||
ENTRY(mof);
|
|
||||||
ENTRY(dccr);
|
|
||||||
ENTRY(srp);
|
|
||||||
BLANK();
|
|
||||||
#undef ENTRY
|
|
||||||
#define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
|
|
||||||
ENTRY(task);
|
|
||||||
ENTRY(flags);
|
|
||||||
ENTRY(preempt_count);
|
|
||||||
BLANK();
|
|
||||||
#undef ENTRY
|
|
||||||
#define ENTRY(entry) DEFINE(THREAD_ ## entry, offsetof(struct thread_struct, entry))
|
|
||||||
ENTRY(ksp);
|
|
||||||
ENTRY(usp);
|
|
||||||
ENTRY(dccr);
|
|
||||||
BLANK();
|
|
||||||
#undef ENTRY
|
|
||||||
#define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
|
|
||||||
ENTRY(pid);
|
|
||||||
BLANK();
|
|
||||||
DEFINE(LCLONE_VM, CLONE_VM);
|
|
||||||
DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,118 +0,0 @@
|
||||||
/* ld script to make the Linux/CRIS kernel
|
|
||||||
* Authors: Bjorn Wesen (bjornw@axis.com)
|
|
||||||
*
|
|
||||||
* It is VERY DANGEROUS to fiddle around with the symbols in this
|
|
||||||
* script. It is for example quite vital that all generated sections
|
|
||||||
* that are used are actually named here, otherwise the linker will
|
|
||||||
* put them at the end, where the init stuff is which is FREED after
|
|
||||||
* the kernel has booted.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <asm-generic/vmlinux.lds.h>
|
|
||||||
#include <asm/page.h>
|
|
||||||
|
|
||||||
jiffies = jiffies_64;
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
. = DRAM_VIRTUAL_BASE;
|
|
||||||
dram_start = .;
|
|
||||||
ibr_start = .;
|
|
||||||
. = . + 0x4000; /* see head.S and pages reserved at the start */
|
|
||||||
|
|
||||||
_text = .; /* Text and read-only data */
|
|
||||||
text_start = .; /* lots of aliases */
|
|
||||||
_stext = .;
|
|
||||||
__stext = .;
|
|
||||||
.text : {
|
|
||||||
TEXT_TEXT
|
|
||||||
SCHED_TEXT
|
|
||||||
LOCK_TEXT
|
|
||||||
*(.fixup)
|
|
||||||
*(.text.__*)
|
|
||||||
}
|
|
||||||
|
|
||||||
_etext = . ; /* End of text section */
|
|
||||||
__etext = .;
|
|
||||||
|
|
||||||
. = ALIGN(4); /* Exception table */
|
|
||||||
__start___ex_table = .;
|
|
||||||
__ex_table : { *(__ex_table) }
|
|
||||||
__stop___ex_table = .;
|
|
||||||
|
|
||||||
RODATA
|
|
||||||
|
|
||||||
. = ALIGN (4);
|
|
||||||
___data_start = . ;
|
|
||||||
__Sdata = . ;
|
|
||||||
.data : { /* Data */
|
|
||||||
DATA_DATA
|
|
||||||
}
|
|
||||||
__edata = . ; /* End of data section */
|
|
||||||
_edata = . ;
|
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned */
|
|
||||||
.data.init_task : { *(.data.init_task) }
|
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE); /* Init code and data */
|
|
||||||
__init_begin = .;
|
|
||||||
.init.text : {
|
|
||||||
_sinittext = .;
|
|
||||||
INIT_TEXT
|
|
||||||
_einittext = .;
|
|
||||||
}
|
|
||||||
.init.data : { INIT_DATA }
|
|
||||||
. = ALIGN(16);
|
|
||||||
__setup_start = .;
|
|
||||||
.init.setup : { *(.init.setup) }
|
|
||||||
__setup_end = .;
|
|
||||||
.initcall.init : {
|
|
||||||
__initcall_start = .;
|
|
||||||
INITCALLS
|
|
||||||
__initcall_end = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
.con_initcall.init : {
|
|
||||||
__con_initcall_start = .;
|
|
||||||
*(.con_initcall.init)
|
|
||||||
__con_initcall_end = .;
|
|
||||||
}
|
|
||||||
SECURITY_INIT
|
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_INITRD
|
|
||||||
.init.ramfs : {
|
|
||||||
__initramfs_start = .;
|
|
||||||
*(.init.ramfs)
|
|
||||||
__initramfs_end = .;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
__vmlinux_end = .; /* last address of the physical file */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We fill to the next page, so we can discard all init
|
|
||||||
* pages without needing to consider what payload might be
|
|
||||||
* appended to the kernel image.
|
|
||||||
*/
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
|
|
||||||
__init_end = .;
|
|
||||||
|
|
||||||
__data_end = . ; /* Move to _edata ? */
|
|
||||||
__bss_start = .; /* BSS */
|
|
||||||
.bss : {
|
|
||||||
*(COMMON)
|
|
||||||
*(.bss)
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN (0x20);
|
|
||||||
_end = .;
|
|
||||||
__end = .;
|
|
||||||
|
|
||||||
/* Sections to be discarded */
|
|
||||||
/DISCARD/ : {
|
|
||||||
EXIT_TEXT
|
|
||||||
EXIT_DATA
|
|
||||||
*(.exitcall.exit)
|
|
||||||
}
|
|
||||||
|
|
||||||
dram_end = dram_start + CONFIG_ETRAX_DRAM_SIZE*1024*1024;
|
|
||||||
}
|
|
|
@ -28,7 +28,13 @@ _start:
|
||||||
beq dram_init_finished
|
beq dram_init_finished
|
||||||
nop
|
nop
|
||||||
|
|
||||||
#include "../../mach/dram_init.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../../mach-fs/dram_init.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../../mach-a3/dram_init.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
||||||
dram_init_finished:
|
dram_init_finished:
|
||||||
|
|
||||||
|
@ -130,4 +136,10 @@ _cmd_line_addr:
|
||||||
_boot_source:
|
_boot_source:
|
||||||
.dword 0
|
.dword 0
|
||||||
|
|
||||||
#include "../../mach/hw_settings.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../../mach-fs/hw_settings.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../../mach-a3/hw_settings.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
|
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
|
||||||
* -traditional must not be used when assembling this file.
|
* -traditional must not be used when assembling this file.
|
||||||
*/
|
*/
|
||||||
#include <hwregs/reg_rdwr.h>
|
#include <linux/autoconf.h>
|
||||||
#include <arch/memmap.h>
|
#include <arch/memmap.h>
|
||||||
|
#include <hwregs/reg_rdwr.h>
|
||||||
#include <hwregs/intr_vect.h>
|
#include <hwregs/intr_vect.h>
|
||||||
#include <hwregs/asm/mmu_defs_asm.h>
|
#include <hwregs/asm/mmu_defs_asm.h>
|
||||||
#include <hwregs/asm/reg_map_asm.h>
|
#include <hwregs/asm/reg_map_asm.h>
|
||||||
|
@ -217,7 +218,14 @@ _inflash:
|
||||||
beq _dram_initialized
|
beq _dram_initialized
|
||||||
nop
|
nop
|
||||||
|
|
||||||
#include "../mach/dram_init.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../mach-fs/dram_init.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../mach-a3/dram_init.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
_dram_initialized:
|
_dram_initialized:
|
||||||
;; Copy the text and data section to DRAM. This depends on that the
|
;; Copy the text and data section to DRAM. This depends on that the
|
||||||
|
@ -472,4 +480,10 @@ swapper_pg_dir = 0xc0002000
|
||||||
|
|
||||||
.section ".init.data", "aw"
|
.section ".init.data", "aw"
|
||||||
|
|
||||||
#include "../mach/hw_settings.S"
|
#if defined CONFIG_ETRAXFS
|
||||||
|
#include "../mach-fs/hw_settings.S"
|
||||||
|
#elif defined CONFIG_CRIS_MACH_ARTPEC3
|
||||||
|
#include "../mach-a3/hw_settings.S"
|
||||||
|
#else
|
||||||
|
#error Only ETRAXFS and ARTPEC-3 supported!
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
|
#include <linux/autoconf.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generate definitions needed by assembly language modules.
|
* Generate definitions needed by assembly language modules.
|
||||||
|
@ -8,10 +9,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DEFINE(sym, val) \
|
#define DEFINE(sym, val) \
|
||||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
||||||
|
|
||||||
#define BLANK() asm volatile("\n->" : : )
|
#define BLANK() asm volatile("\n->" : : )
|
||||||
|
|
||||||
|
#if !defined(CONFIG_ETRAX_ARCH_V10) && !defined(CONFIG_ETRAX_ARCH_V32)
|
||||||
|
#error One of ARCH v10 and ARCH v32 must be true!
|
||||||
|
#endif
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
#define ENTRY(entry) DEFINE(PT_ ## entry, offsetof(struct pt_regs, entry))
|
#define ENTRY(entry) DEFINE(PT_ ## entry, offsetof(struct pt_regs, entry))
|
||||||
|
@ -19,31 +24,41 @@ int main(void)
|
||||||
ENTRY(r13);
|
ENTRY(r13);
|
||||||
ENTRY(r12);
|
ENTRY(r12);
|
||||||
ENTRY(r11);
|
ENTRY(r11);
|
||||||
ENTRY(r10);
|
ENTRY(r10);
|
||||||
ENTRY(r9);
|
ENTRY(r9);
|
||||||
|
#ifdef CONFIG_ETRAX_ARCH_V32
|
||||||
ENTRY(acr);
|
ENTRY(acr);
|
||||||
ENTRY(srs);
|
ENTRY(srs);
|
||||||
ENTRY(mof);
|
#endif
|
||||||
ENTRY(ccs);
|
ENTRY(mof);
|
||||||
ENTRY(srp);
|
#ifdef CONFIG_ETRAX_ARCH_V10
|
||||||
|
ENTRY(dccr);
|
||||||
|
#else
|
||||||
|
ENTRY(ccs);
|
||||||
|
#endif
|
||||||
|
ENTRY(srp);
|
||||||
BLANK();
|
BLANK();
|
||||||
#undef ENTRY
|
#undef ENTRY
|
||||||
#define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
|
#define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
|
||||||
ENTRY(task);
|
ENTRY(task);
|
||||||
ENTRY(flags);
|
ENTRY(flags);
|
||||||
ENTRY(preempt_count);
|
ENTRY(preempt_count);
|
||||||
BLANK();
|
BLANK();
|
||||||
#undef ENTRY
|
#undef ENTRY
|
||||||
#define ENTRY(entry) DEFINE(THREAD_ ## entry, offsetof(struct thread_struct, entry))
|
#define ENTRY(entry) DEFINE(THREAD_ ## entry, offsetof(struct thread_struct, entry))
|
||||||
ENTRY(ksp);
|
ENTRY(ksp);
|
||||||
ENTRY(usp);
|
ENTRY(usp);
|
||||||
ENTRY(ccs);
|
#ifdef CONFIG_ETRAX_ARCH_V10
|
||||||
BLANK();
|
ENTRY(dccr);
|
||||||
|
#else
|
||||||
|
ENTRY(ccs);
|
||||||
|
#endif
|
||||||
|
BLANK();
|
||||||
#undef ENTRY
|
#undef ENTRY
|
||||||
#define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
|
#define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
|
||||||
ENTRY(pid);
|
ENTRY(pid);
|
||||||
BLANK();
|
BLANK();
|
||||||
DEFINE(LCLONE_VM, CLONE_VM);
|
DEFINE(LCLONE_VM, CLONE_VM);
|
||||||
DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
|
DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
|
@ -8,6 +8,7 @@
|
||||||
* the kernel has booted.
|
* the kernel has booted.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/autoconf.h>
|
||||||
#include <asm-generic/vmlinux.lds.h>
|
#include <asm-generic/vmlinux.lds.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
|
@ -17,22 +18,26 @@
|
||||||
#define __CONFIG_ETRAX_VMEM_SIZE 0
|
#define __CONFIG_ETRAX_VMEM_SIZE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
jiffies = jiffies_64;
|
jiffies = jiffies_64;
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = DRAM_VIRTUAL_BASE;
|
. = DRAM_VIRTUAL_BASE;
|
||||||
dram_start = .;
|
dram_start = .;
|
||||||
|
#ifdef CONFIG_ETRAX_ARCH_V10
|
||||||
|
ibr_start = .;
|
||||||
|
#else
|
||||||
ebp_start = .;
|
ebp_start = .;
|
||||||
|
|
||||||
/* The boot section is only necessary until the VCS top */
|
/* The boot section is only necessary until the VCS top */
|
||||||
/* level testbench includes both flash and DRAM. */
|
/* level testbench includes both flash and DRAM. */
|
||||||
.boot : { *(.boot) }
|
.boot : { *(.boot) }
|
||||||
|
#endif
|
||||||
|
|
||||||
/* See head.S and pages reserved at the start. */
|
/* see head.S and pages reserved at the start */
|
||||||
. = DRAM_VIRTUAL_BASE + 0x4000;
|
. = DRAM_VIRTUAL_BASE + 0x4000;
|
||||||
|
|
||||||
_text = .; /* Text and read-only data. */
|
_text = .; /* Text and read-only data. */
|
||||||
text_start = .; /* Lots of aliases. */
|
text_start = .; /* Lots of aliases. */
|
||||||
_stext = .;
|
_stext = .;
|
||||||
__stext = .;
|
__stext = .;
|
||||||
.text : {
|
.text : {
|
||||||
|
@ -43,10 +48,10 @@ SECTIONS
|
||||||
*(.text.__*)
|
*(.text.__*)
|
||||||
}
|
}
|
||||||
|
|
||||||
_etext = . ; /* End of text section. */
|
_etext = . ; /* End of text section. */
|
||||||
__etext = .;
|
__etext = .;
|
||||||
|
|
||||||
. = ALIGN(4); /* Exception table. */
|
. = ALIGN(4); /* Exception table. */
|
||||||
__start___ex_table = .;
|
__start___ex_table = .;
|
||||||
__ex_table : { *(__ex_table) }
|
__ex_table : { *(__ex_table) }
|
||||||
__stop___ex_table = .;
|
__stop___ex_table = .;
|
||||||
|
@ -56,16 +61,16 @@ SECTIONS
|
||||||
. = ALIGN (4);
|
. = ALIGN (4);
|
||||||
___data_start = . ;
|
___data_start = . ;
|
||||||
__Sdata = . ;
|
__Sdata = . ;
|
||||||
.data : { /* Data */
|
.data : { /* Data */
|
||||||
DATA_DATA
|
DATA_DATA
|
||||||
}
|
}
|
||||||
__edata = . ; /* End of data section. */
|
__edata = . ; /* End of data section. */
|
||||||
_edata = . ;
|
_edata = . ;
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */
|
. = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */
|
||||||
.data.init_task : { *(.data.init_task) }
|
.data.init_task : { *(.data.init_task) }
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE); /* Init code and data. */
|
. = ALIGN(PAGE_SIZE); /* Init code and data. */
|
||||||
__init_begin = .;
|
__init_begin = .;
|
||||||
.init.text : {
|
.init.text : {
|
||||||
_sinittext = .;
|
_sinittext = .;
|
||||||
|
@ -77,9 +82,11 @@ SECTIONS
|
||||||
__setup_start = .;
|
__setup_start = .;
|
||||||
.init.setup : { *(.init.setup) }
|
.init.setup : { *(.init.setup) }
|
||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
|
#ifdef CONFIG_ETRAX_ARCH_V32
|
||||||
__start___param = .;
|
__start___param = .;
|
||||||
__param : { *(__param) }
|
__param : { *(__param) }
|
||||||
__stop___param = .;
|
__stop___param = .;
|
||||||
|
#endif
|
||||||
.initcall.init : {
|
.initcall.init : {
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
INITCALLS
|
INITCALLS
|
||||||
|
@ -93,7 +100,17 @@ SECTIONS
|
||||||
}
|
}
|
||||||
SECURITY_INIT
|
SECURITY_INIT
|
||||||
|
|
||||||
__vmlinux_end = .; /* Last address of the physical file. */
|
#ifdef CONFIG_ETRAX_ARCH_V10
|
||||||
|
#ifdef CONFIG_BLK_DEV_INITRD
|
||||||
|
.init.ramfs : {
|
||||||
|
__initramfs_start = .;
|
||||||
|
*(.init.ramfs)
|
||||||
|
__initramfs_end = .;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
__vmlinux_end = .; /* Last address of the physical file. */
|
||||||
|
#ifdef CONFIG_ETRAX_ARCH_V32
|
||||||
PERCPU(PAGE_SIZE)
|
PERCPU(PAGE_SIZE)
|
||||||
|
|
||||||
.init.ramfs : {
|
.init.ramfs : {
|
||||||
|
@ -101,18 +118,19 @@ SECTIONS
|
||||||
*(.init.ramfs)
|
*(.init.ramfs)
|
||||||
__initramfs_end = .;
|
__initramfs_end = .;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We fill to the next page, so we can discard all init
|
* We fill to the next page, so we can discard all init
|
||||||
* pages without needing to consider what payload might be
|
* pages without needing to consider what payload might be
|
||||||
* appended to the kernel image.
|
* appended to the kernel image.
|
||||||
*/
|
*/
|
||||||
. = ALIGN (PAGE_SIZE);
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
|
||||||
__init_end = .;
|
__init_end = .;
|
||||||
|
|
||||||
__data_end = . ; /* Move to _edata? */
|
__data_end = . ; /* Move to _edata ? */
|
||||||
__bss_start = .; /* BSS. */
|
__bss_start = .; /* BSS. */
|
||||||
.bss : {
|
.bss : {
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
*(.bss)
|
*(.bss)
|
Loading…
Reference in a new issue