1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 KBUILD_DEFCONFIG := mmu_defconfig !! 2 # >> 3 # sparc/Makefile >> 4 # >> 5 # Makefile for the architecture dependent flags and dependencies on the >> 6 # Sparc and sparc64. >> 7 # >> 8 # Copyright (C) 1994,1996,1998 David S. Miller (davem@caip.rutgers.edu) >> 9 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) >> 10 >> 11 # We are not yet configured - so test on arch >> 12 ifeq ($(ARCH),sparc64) >> 13 KBUILD_DEFCONFIG := sparc64_defconfig >> 14 else >> 15 KBUILD_DEFCONFIG := sparc32_defconfig >> 16 endif 3 17 4 UTS_SYSNAME = -DUTS_SYSNAME=\"Linux\" !! 18 ifeq ($(CONFIG_SPARC32),y) >> 19 ##### >> 20 # sparc32 >> 21 # >> 22 >> 23 CHECKFLAGS += -D__sparc__ >> 24 KBUILD_LDFLAGS := -m elf32_sparc >> 25 export BITS := 32 >> 26 UTS_MACHINE := sparc >> 27 >> 28 # We are adding -Wa,-Av8 to KBUILD_CFLAGS to deal with a specs bug in some >> 29 # versions of gcc. Some gcc versions won't pass -Av8 to binutils when you >> 30 # give -mcpu=v8. This silently worked with older bintutils versions but >> 31 # does not any more. >> 32 KBUILD_CFLAGS += -m32 -mcpu=v8 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 >> 33 KBUILD_CFLAGS += -Wa,-Av8 >> 34 >> 35 KBUILD_AFLAGS += -m32 -Wa,-Av8 5 36 6 # What CPU version are we building for, and cr << 7 # as major.minor.rev << 8 CPU_VER := $(CONFIG_XILINX_MICROBLAZE0_HW_VE << 9 CPU_MAJOR := $(word 1, $(subst ., , $(CPU_VER) << 10 CPU_MINOR := $(word 2, $(subst ., , $(CPU_VER) << 11 CPU_REV := $(word 3, $(subst ., , $(CPU_VER) << 12 << 13 export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV << 14 << 15 # Use cpu-related CONFIG_ vars to set compile << 16 # The various CONFIG_XILINX cpu features optio << 17 # rather than bools y/n << 18 << 19 # Work out HW multipler support. This is trick << 20 # 1. Spartan2 has no HW multipliers. << 21 # 2. MicroBlaze v3.x always uses them, except << 22 # 3. All other FPGa/CPU ver combos, we can tru << 23 ifeq (,$(findstring spartan2,$(CONFIG_XILINX_M << 24 ifeq ($(CPU_MAJOR),3) << 25 CPUFLAGS-1 += -mno-xl-soft-mul << 26 else << 27 # USE_HW_MUL can be 0, 1, or 2, defining a << 28 CPUFLAGS-$(subst 1,,$(CONFIG_XILINX_MICROB << 29 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_H << 30 endif << 31 endif << 32 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) << 33 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARRE << 34 CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_ << 35 << 36 ifdef CONFIG_CPU_BIG_ENDIAN << 37 KBUILD_CFLAGS += -mbig-endian << 38 KBUILD_AFLAGS += -mbig-endian << 39 KBUILD_LDFLAGS += -EB << 40 else 37 else 41 KBUILD_CFLAGS += -mlittle-endian !! 38 ##### 42 KBUILD_AFLAGS += -mlittle-endian !! 39 # sparc64 43 KBUILD_LDFLAGS += -EL !! 40 # >> 41 >> 42 CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ >> 43 KBUILD_LDFLAGS := -m elf64_sparc >> 44 export BITS := 64 >> 45 UTS_MACHINE := sparc64 >> 46 >> 47 KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow >> 48 KBUILD_CFLAGS += -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare >> 49 KBUILD_CFLAGS += -Wa,--undeclared-regs >> 50 KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3) >> 51 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs >> 52 >> 53 ifeq ($(CONFIG_MCOUNT),y) >> 54 KBUILD_CFLAGS += -pg 44 endif 55 endif 45 56 46 CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VE !! 57 endif 47 58 48 # r31 holds current when in kernel mode !! 59 libs-y += arch/sparc/prom/ 49 KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(C !! 60 libs-y += arch/sparc/lib/ 50 61 51 libs-y += arch/microblaze/lib/ !! 62 drivers-$(CONFIG_PM) += arch/sparc/power/ >> 63 drivers-$(CONFIG_VIDEO) += arch/sparc/video/ 52 64 53 boot := arch/microblaze/boot !! 65 boot := arch/sparc/boot 54 66 55 # Are we making a simpleImage.<boardname> targ !! 67 # Default target 56 DTB:=$(subst simpleImage.,,$(filter simpleImag !! 68 all: zImage 57 69 58 export DTB !! 70 image zImage uImage tftpboot.img vmlinux.aout: vmlinux >> 71 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 59 72 60 all: linux.bin !! 73 install: >> 74 $(call cmd,install) 61 75 62 archheaders: 76 archheaders: 63 $(Q)$(MAKE) $(build)=arch/microblaze/k !! 77 $(Q)$(MAKE) $(build)=arch/sparc/kernel/syscalls all 64 78 65 PHONY += linux.bin linux.bin.gz linux.bin.ub !! 79 vdso-install-$(CONFIG_SPARC64) += arch/sparc/vdso/vdso64.so.dbg 66 linux.bin.ub linux.bin.gz: linux.bin !! 80 vdso-install-$(CONFIG_COMPAT) += arch/sparc/vdso/vdso32.so.dbg 67 linux.bin: vmlinux << 68 linux.bin linux.bin.gz linux.bin.ub: << 69 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ << 70 @echo 'Kernel: $(boot)/$@ is ready' ' << 71 81 72 PHONY += simpleImage.$(DTB) !! 82 # This is the image used for packaging 73 simpleImage.$(DTB): vmlinux !! 83 KBUILD_IMAGE := $(boot)/zImage 74 $(Q)$(MAKE) $(build)=$(boot) $(addpref << 75 @echo 'Kernel: $(boot)/$@ is ready' ' << 76 84 >> 85 # Don't use tabs in echo arguments. 77 define archhelp 86 define archhelp 78 echo '* linux.bin - Create raw binary' !! 87 echo '* vmlinux - standard SPARC kernel' 79 echo ' linux.bin.gz - Create compressed raw !! 88 echo ' image - kernel image ($(boot)/image)' 80 echo ' linux.bin.ub - Create U-Boot wrapped !! 89 echo '* zImage - stripped/compressed kernel image ($(boot)/zImage)' 81 echo ' simpleImage.<dt> - Create the follow !! 90 echo ' uImage - U-Boot SPARC32 Image (only for LEON)' 82 echo ' simpleImage.<dt> !! 91 echo ' vmlinux.aout - a.out kernel for SPARC64' 83 echo ' simpleImage.<dt>.u !! 92 echo ' tftpboot.img - image prepared for tftp' 84 echo ' simpleImage.<dt>.u << 85 echo ' simpleImage.<dt>.s << 86 echo ' Targets with <dt> embed a device tre << 87 echo ' These targets support board with fir << 88 echo ' support passing a device tree direct << 89 echo ' name of a dts file from the arch/mic << 90 echo ' (minus the .dts extension).' << 91 endef 93 endef 92 << 93 MRPROPER_FILES += $(boot)/simpleImage.* <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.