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

Commit 3e41d652 authored by Mikael Starvik's avatar Mikael Starvik Committed by Linus Torvalds
Browse files

[PATCH] CRIS update: configuration and build



Changes to configuration and build system.

* Added v32 sub architecture.
* Use generic hard IRQ.
* Added SMP options.
* Added options to OOPS at NMI and reboot at OOM.
* Made it possible to set objtree.
* Added option to select Kernel GDB serial port.
* Corrected Kconfig usage.
* Added system profiler.

Signed-off-by: default avatarMikael Starvik <starvik@axis.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent cb09f540
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -38,4 +38,9 @@ config FRAME_POINTER
          If you don't debug the kernel, you can say N, but we may not be able
          to solve problems without frame pointers.

config DEBUG_NMI_OOPS
       bool "NMI causes oops printout"
       help
         If the system locks up without any debug information you can say Y
         here to make it possible to dump an OOPS with an external NMI.
endmenu
+45 −21
Original line number Diff line number Diff line
# $Id: Makefile,v 1.23 2004/10/19 13:07:34 starvik Exp $
# $Id: Makefile,v 1.28 2005/03/17 10:44:37 larsv Exp $
# cris/Makefile
#
# This file is included by the global makefile so that you can add your own
@@ -15,6 +15,7 @@

arch-y := v10
arch-$(CONFIG_ETRAX_ARCH_V10) := v10
arch-$(CONFIG_ETRAX_ARCH_V32) := v32

# No config avaiable for make clean etc
ifneq ($(arch-y),)
@@ -46,6 +47,21 @@ core-y += arch/$(ARCH)/$(SARCH)/kernel/ arch/$(ARCH)/$(SARCH)/mm/
drivers-y	+= arch/$(ARCH)/$(SARCH)/drivers/
libs-y		+= arch/$(ARCH)/$(SARCH)/lib/ $(LIBGCC)

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

target_boot_arch_dir  = $(OBJ_ARCH)/$(SARCH)/boot
target_boot_dir       = $(OBJ_ARCH)/boot
src_boot_dir          = $(SRC_ARCH)/boot
target_compressed_dir = $(OBJ_ARCH)/boot/compressed
src_compressed_dir    = $(SRC_ARCH)/boot/compressed
target_rescue_dir     = $(OBJ_ARCH)/boot/rescue
src_rescue_dir        = $(SRC_ARCH)/boot/rescue

export target_boot_arch_dir target_boot_dir src_boot_dir target_compressed_dir src_compressed_dir target_rescue_dir src_rescue_dir

vmlinux.bin: vmlinux
	$(OBJCOPY) $(OBJCOPYFLAGS) vmlinux vmlinux.bin

@@ -65,44 +81,52 @@ cramfs:

clinux: vmlinux.bin decompress.bin rescue.bin

decompress.bin: FORCE
	@make -C arch/$(ARCH)/boot/compressed decompress.bin
decompress.bin: $(target_boot_dir)
	@$(MAKE) -f $(src_compressed_dir)/Makefile $(target_compressed_dir)/decompress.bin

rescue.bin: FORCE
	@make -C arch/$(ARCH)/boot/rescue rescue.bin
$(target_rescue_dir)/rescue.bin: $(target_boot_dir)
	@$(MAKE) -f $(src_rescue_dir)/Makefile $(target_rescue_dir)/rescue.bin

zImage: vmlinux.bin rescue.bin
zImage: $(target_boot_dir) vmlinux.bin $(target_rescue_dir)/rescue.bin
## zImage     - Compressed kernel (gzip)
	@make -C arch/$(ARCH)/boot/ zImage
	@$(MAKE) -f $(src_boot_dir)/Makefile zImage

$(target_boot_dir): $(target_boot_arch_dir)
	ln -sfn $< $@

$(target_boot_arch_dir):
	mkdir -p $@

compressed: zImage

archmrproper:
archclean:
	$(Q)$(MAKE) $(clean)=arch/$(ARCH)/boot
	@if [ -d arch/$(ARCH)/boot ]; then \
		$(MAKE) $(clean)=arch/$(ARCH)/boot ; \
	fi
	rm -f timage vmlinux.bin decompress.bin rescue.bin cramfs.img
	rm -rf $(LD_SCRIPT).tmp

prepare: arch/$(ARCH)/.links include/asm-$(ARCH)/.arch \
prepare: $(SRC_ARCH)/.links $(srctree)/include/asm-$(ARCH)/.arch \
	 include/asm-$(ARCH)/$(SARCH)/offset.h

# Create some links to make all tools happy
arch/$(ARCH)/.links:
	@rm -rf arch/$(ARCH)/drivers
	@ln -sfn $(SARCH)/drivers arch/$(ARCH)/drivers
	@rm -rf arch/$(ARCH)/boot
	@ln -sfn $(SARCH)/boot arch/$(ARCH)/boot
	@rm -rf arch/$(ARCH)/lib
	@ln -sfn $(SARCH)/lib arch/$(ARCH)/lib
	@ln -sfn $(SARCH) arch/$(ARCH)/arch
	@ln -sfn ../$(SARCH)/vmlinux.lds.S arch/$(ARCH)/kernel/vmlinux.lds.S
$(SRC_ARCH)/.links:
	@rm -rf $(SRC_ARCH)/drivers
	@ln -sfn $(SRC_ARCH)/$(SARCH)/drivers $(SRC_ARCH)/drivers
	@rm -rf $(SRC_ARCH)/boot
	@ln -sfn $(SRC_ARCH)/$(SARCH)/boot $(SRC_ARCH)/boot
	@rm -rf $(SRC_ARCH)/lib
	@ln -sfn $(SRC_ARCH)/$(SARCH)/lib $(SRC_ARCH)/lib
	@ln -sfn $(SRC_ARCH)/$(SARCH) $(SRC_ARCH)/arch
	@ln -sfn $(SRC_ARCH)/$(SARCH)/vmlinux.lds.S $(SRC_ARCH)/kernel/vmlinux.lds.S
	@touch $@

# Create link to sub arch includes
include/asm-$(ARCH)/.arch: $(wildcard include/config/arch/*.h)
	@echo '  Making asm-$(ARCH)/arch -> asm-$(ARCH)/$(SARCH) symlink'
$(srctree)/include/asm-$(ARCH)/.arch: $(wildcard include/config/arch/*.h)
	@echo '  Making $(srctree)/include/asm-$(ARCH)/arch -> $(srctree)/include/asm-$(ARCH)/$(SARCH) symlink'
	@rm -f include/asm-$(ARCH)/arch
	@ln -sf $(SARCH) include/asm-$(ARCH)/arch
	@ln -sf $(srctree)/include/asm-$(ARCH)/$(SARCH) $(srctree)/include/asm-$(ARCH)/arch
	@touch $@

arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
+31 −0
Original line number Diff line number Diff line
@@ -259,6 +259,37 @@ config ETRAX_DEBUG_PORT_NULL

endchoice

choice
	prompt "Kernel GDB port"
	depends on ETRAX_KGDB
	default ETRAX_KGDB_PORT0
	help
	  Choose a serial port for kernel debugging.  NOTE: This port should
	  not be enabled under Drivers for built-in interfaces (as it has its
	  own initialization code) and should not be the same as the debug port.

config ETRAX_KGDB_PORT0
	bool "Serial-0"
	help
	  Use serial port 0 for kernel debugging.

config ETRAX_KGDB_PORT1
	bool "Serial-1"
	help
	  Use serial port 1 for kernel debugging.

config ETRAX_KGDB_PORT2
	bool "Serial-2"
	help
	  Use serial port 2 for kernel debugging.

config ETRAX_KGDB_PORT3
	bool "Serial-3"
	help
	  Use serial port 3 for kernel debugging.

endchoice

choice
	prompt "Product rescue-port"
	depends on ETRAX_ARCH_V10
+5 −4
Original line number Diff line number Diff line
#
# arch/cris/boot/Makefile
#
target = $(target_boot_dir)
src    = $(src_boot_dir)

zImage: compressed/vmlinuz

compressed/vmlinuz: $(TOPDIR)/vmlinux
	@$(MAKE) -C compressed vmlinuz
compressed/vmlinuz:
	@$(MAKE) -f $(src)/compressed/Makefile $(target_compressed_dir)/vmlinuz

clean:
	rm -f zImage tools/build compressed/vmlinux.out
	@$(MAKE) -C compressed clean
	@$(MAKE) -f $(src)/compressed/Makefile clean
+24 −19
Original line number Diff line number Diff line
#
# linux/arch/etrax100/boot/compressed/Makefile
#
# create a compressed vmlinux image from the original vmlinux files and romfs
# create a compressed vmlinuz image from the binary vmlinux.bin file
#
target = $(target_compressed_dir)
src    = $(src_compressed_dir)

CC = gcc-cris -melf -I $(TOPDIR)/include
CC = gcc-cris -melf $(LINUXINCLUDE)
CFLAGS = -O2
LD = ld-cris
OBJCOPY = objcopy-cris
OBJCOPYFLAGS = -O binary --remove-section=.bss
OBJECTS = head.o misc.o
OBJECTS = $(target)/head.o $(target)/misc.o

# files to compress
SYSTEM = $(TOPDIR)/vmlinux.bin
SYSTEM = $(objtree)/vmlinux.bin

all: vmlinuz
all: $(target_compressed_dir)/vmlinuz

decompress.bin: $(OBJECTS)
	$(LD) -T decompress.ld -o decompress.o $(OBJECTS)
	$(OBJCOPY) $(OBJCOPYFLAGS) decompress.o decompress.bin
# save it for mkprod in the topdir.
	cp decompress.bin $(TOPDIR)
$(target)/decompress.bin: $(OBJECTS)
	$(LD) -T $(src)/decompress.ld -o $(target)/decompress.o $(OBJECTS)
	$(OBJCOPY) $(OBJCOPYFLAGS) $(target)/decompress.o $(target)/decompress.bin

# Create vmlinuz image in top-level build directory
$(target_compressed_dir)/vmlinuz: $(target) piggy.img $(target)/decompress.bin
	@echo "  COMPR   vmlinux.bin --> vmlinuz"
	@cat $(target)/decompress.bin piggy.img > $(target_compressed_dir)/vmlinuz
	@rm -f piggy.img

vmlinuz: piggy.img decompress.bin
	cat decompress.bin piggy.img > vmlinuz
	rm -f piggy.img
$(target)/head.o: $(src)/head.S
	$(CC) -D__ASSEMBLY__ -traditional -c $< -o $@

head.o: head.S
	$(CC) -D__ASSEMBLY__ -traditional -c head.S -o head.o
$(target)/misc.o: $(src)/misc.c
	$(CC) -D__KERNEL__ -c $< -o $@

# gzip the kernel image

piggy.img: $(SYSTEM)
	cat $(SYSTEM) | gzip -f -9 > piggy.img
	@cat $(SYSTEM) | gzip -f -9 > piggy.img

$(target):
	mkdir -p $(target)

clean:
	rm -f piggy.img vmlinuz vmlinuz.o
	rm -f piggy.img $(objtree)/vmlinuz
Loading