Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdce1f09 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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.
parents 0242909a c5ec6fb0
Loading
Loading
Loading
Loading
+20 −45
Original line number Original line Diff line number Diff line
@@ -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 += \
# MRPROPER_FILES +=
	$(SRC_ARCH)/drivers \
	$(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
+0 −47
Original line number Original line Diff line number Diff line
#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;
}

arch/cris/arch-v10/vmlinux.lds.S

deleted100644 → 0
+0 −118
Original line number Original line Diff line number Diff line
/* 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;
}
+14 −2
Original line number Original line Diff line number Diff line
@@ -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
+17 −3
Original line number Original line Diff line number Diff line
@@ -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
Loading