X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=arch%2Fmicroblaze%2FMakefile;h=72f6e85837467679354d37ec148db56eb4868363;hb=598acab44dcbda0e300d9d080e81566334138e7d;hp=ee302f9f588d9a8c65b968a43bf6c2008d0c15da;hpb=04e3a553e0cbed369e5649c472ac317b6c45215d;p=safe%2Fjmp%2Flinux-2.6 diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile index ee302f9..72f6e85 100644 --- a/arch/microblaze/Makefile +++ b/arch/microblaze/Makefile @@ -1,15 +1,21 @@ +ifeq ($(CONFIG_MMU),y) +UTS_SYSNAME = -DUTS_SYSNAME=\"Linux\" +else UTS_SYSNAME = -DUTS_SYSNAME=\"uClinux\" +endif # What CPU vesion are we building for, and crack it open # as major.minor.rev -CPU_VER=$(subst ",,$(CONFIG_XILINX_MICROBLAZE0_HW_VER) ) -CPU_MAJOR=$(shell echo $(CPU_VER) | cut -d '.' -f 1) -CPU_MINOR=$(shell echo $(CPU_VER) | cut -d '.' -f 2) -CPU_REV=$(shell echo $(CPU_VER) | cut -d '.' -f 3) +CPU_VER := $(shell echo $(CONFIG_XILINX_MICROBLAZE0_HW_VER)) +CPU_MAJOR := $(shell echo $(CPU_VER) | cut -d '.' -f 1) +CPU_MINOR := $(shell echo $(CPU_VER) | cut -d '.' -f 2) +CPU_REV := $(shell echo $(CPU_VER) | cut -d '.' -f 3) export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV # Use cpu-related CONFIG_ vars to set compile options. +# The various CONFIG_XILINX cpu features options are integers 0/1/2... +# rather than bools y/n # Work out HW multipler support. This is icky. # 1. Spartan2 has no HW multiplers. @@ -30,40 +36,63 @@ CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER)) -# The various CONFIG_XILINX cpu features options are integers 0/1/2... -# rather than bools y/n -CFLAGS += $(CPUFLAGS-1) -CFLAGS += $(CPUFLAGS-2) - # r31 holds current when in kernel mode -CFLAGS += -ffixed-r31 +KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2) + +LDFLAGS := +LDFLAGS_vmlinux := -LDFLAGS_BLOB := --format binary --oformat elf32-microblaze +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) -LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) +head-y := arch/microblaze/kernel/head.o +libs-y += arch/microblaze/lib/ +libs-y += $(LIBGCC) +core-y += arch/microblaze/kernel/ +core-y += arch/microblaze/mm/ +core-y += arch/microblaze/platform/ +core-$(CONFIG_PCI) += arch/microblaze/pci/ -head-y := arch/microblaze/kernel/head.o -libs-y += arch/microblaze/lib/ $(LIBGCC) -core-y += arch/microblaze/kernel/ arch/microblaze/mm/ \ - arch/microblaze/platform/ +drivers-$(CONFIG_OPROFILE) += arch/microblaze/oprofile/ -boot := arch/$(ARCH)/boot +boot := arch/microblaze/boot + +# Are we making a simpleImage. target? If so, crack out the boardname +DTB:=$(subst simpleImage.,,$(filter simpleImage.%, $(MAKECMDGOALS))) + +ifneq ($(DTB),) + core-y += $(boot)/ +endif # defines filename extension depending memory management type ifeq ($(CONFIG_MMU),) -MMUEXT := -nommu +MMU := -nommu endif -export MMUEXT + +export MMU DTB all: linux.bin +BOOT_TARGETS = linux.bin linux.bin.gz simpleImage.% + archclean: $(Q)$(MAKE) $(clean)=$(boot) -linux.bin linux.bin.gz: vmlinux +$(BOOT_TARGETS): vmlinux $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ define archhelp - echo '* linux.bin - Create raw binary' - echo ' linux.bin.gz - Create compressed raw binary' + echo '* linux.bin - Create raw binary' + echo ' linux.bin.gz - Create compressed raw binary' + echo ' simpleImage.
- ELF image with $(arch)/boot/dts/
.dts linked in' + echo ' - stripped elf with fdt blob' + echo ' simpleImage.
.unstrip - full ELF image with fdt blob' + echo ' *_defconfig - Select default config from arch/microblaze/configs' + echo '' + echo ' Targets with
embed a device tree blob inside the image' + echo ' These targets support board with firmware that does not' + echo ' support passing a device tree directly. Replace
with the' + echo ' name of a dts file from the arch/microblaze/boot/dts/ directory' + echo ' (minus the .dts extension).' endef + +MRPROPER_FILES += $(boot)/simpleImage.*