Skip to content

Commit

Permalink
[CRIS] Remove links from CRIS build
Browse files Browse the repository at this point in the history
Remove the links to architecture and machine dependent directories
(boot, lib, drivers, arch, mach)

The links were created and used mostly from the arch/cris/Makefile,
so why not dispense with them altogether?
Changed $(ARCH) to "cris" in Makefile, it is easier to read this way.

The CRISv32 head.S common files for the kernel and compressed images
needed to be modified to use ifdefs instead of using the now removed
mach link. Since there are only two versions, this is not a huge loss
in readability.

The link to vmlinux.lds.S is also replaced with a merged version
which uses ifdefs to select the correct layout.
System.map before and after are identical.

Signed-off-by: Jesper Nilsson <[email protected]>
Acked-by: Sam Ravnborg <[email protected]>
  • Loading branch information
jniax committed Oct 31, 2008
1 parent 0365f70 commit c5ec6fb
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 178 deletions.
61 changes: 19 additions & 42 deletions arch/cris/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ mach-$(CONFIG_ETRAXFS) := fs

ifneq ($(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
SARCH :=
inc :=
Expand Down Expand Up @@ -52,72 +53,48 @@ KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g
KBUILD_CFLAGS += -fno-omit-frame-pointer
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)

core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/
core-y += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
core-y += arch/cris/kernel/ arch/cris/mm/
core-y += arch/cris/$(SARCH)/kernel/ arch/cris/$(SARCH)/mm/
ifdef CONFIG_ETRAX_ARCH_V32
core-y += arch/$(ARCH)/$(SARCH)/$(MACH)/
core-y += arch/cris/$(SARCH)/$(MACH)/
endif
drivers-y += arch/$(ARCH)/$(SARCH)/drivers/
libs-y += arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)
drivers-y += arch/cris/$(SARCH)/drivers/
libs-y += arch/cris/$(SARCH)/lib/ $(LIBGCC)

# cris source path
SRC_ARCH = $(srctree)/arch/$(ARCH)
SRC_ARCH = $(srctree)/arch/cris
# cris object files path
OBJ_ARCH = $(objtree)/arch/$(ARCH)
OBJ_ARCH = $(objtree)/arch/cris

boot := arch/$(ARCH)/boot
MACHINE := arch/$(ARCH)/$(SARCH)
boot := arch/cris/$(SARCH)/boot
MACHINE := arch/cris/$(SARCH)

all: zImage

zImage Image: vmlinux
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@

archprepare: $(SRC_ARCH)/.links FORCE

# 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
@touch $@
archprepare:

archclean:
$(Q)if [ -e arch/$(ARCH)/boot ]; then \
$(MAKE) $(clean)=arch/$(ARCH)/boot; \
$(Q)if [ -e arch/cris/$(SARCH)/boot ]; then \
$(MAKE) $(clean)=arch/cris/$(SARCH)/boot; \
fi

CLEAN_FILES += \
$(MACHINE)/boot/zImage \
$(MACHINE)/boot/compressed/decompress.bin \
$(MACHINE)/boot/compressed/piggy.gz \
$(MACHINE)/boot/rescue/rescue.bin \
$(SRC_ARCH)/.links
$(MACHINE)/boot/rescue/rescue.bin

MRPROPER_FILES += \
$(SRC_ARCH)/drivers \
$(SRC_ARCH)/boot \
$(SRC_ARCH)/lib \
$(SRC_ARCH)/arch \
$(SRC_ARCH)/kernel/vmlinux.lds.S

# MRPROPER_FILES +=

define archhelp
echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
echo '* Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
echo '* zImage - Compressed kernel image (arch/cris/boot/zImage)'
echo '* Image - Uncompressed kernel image (arch/cris/boot/Image)'
endef
118 changes: 0 additions & 118 deletions arch/cris/arch-v10/vmlinux.lds.S

This file was deleted.

16 changes: 14 additions & 2 deletions arch/cris/arch-v32/boot/compressed/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,13 @@ _start:
beq dram_init_finished
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:

Expand Down Expand Up @@ -130,4 +136,10 @@ _cmd_line_addr:
_boot_source:
.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
20 changes: 17 additions & 3 deletions arch/cris/arch-v32/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
* -traditional must not be used when assembling this file.
*/
#include <hwregs/reg_rdwr.h>
#include <linux/autoconf.h>
#include <arch/memmap.h>
#include <hwregs/reg_rdwr.h>
#include <hwregs/intr_vect.h>
#include <hwregs/asm/mmu_defs_asm.h>
#include <hwregs/asm/reg_map_asm.h>
Expand Down Expand Up @@ -217,7 +218,14 @@ _inflash:
beq _dram_initialized
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:
;; Copy the text and data section to DRAM. This depends on that the
Expand Down Expand Up @@ -472,4 +480,10 @@ swapper_pg_dir = 0xc0002000

.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

0 comments on commit c5ec6fb

Please sign in to comment.