^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # Makefile for the Sparc boot stuff.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) # Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) # Copyright (C) 1997,1998 Jakub Jelinek (jj@ultra.linux.cz)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) ROOT_IMG := /usr/src/root.img
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) ELFTOAOUT := elftoaout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) hostprogs := piggyback
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) targets := tftpboot.img image zImage vmlinux.aout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) clean-files := System.map
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) quiet_cmd_elftoaout = ELFTOAOUT $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) cmd_elftoaout = $(ELFTOAOUT) $(obj)/image -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) quiet_cmd_piggy = PIGGY $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) cmd_piggy = $(obj)/piggyback $(BITS) $@ System.map $(ROOT_IMG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) quiet_cmd_strip = STRIP $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $< -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) ifeq ($(CONFIG_SPARC64),y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) # Actual linking
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) $(obj)/zImage: $(obj)/image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) $(call if_changed,gzip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) @echo ' kernel: $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) $(obj)/vmlinux.aout: vmlinux FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) $(call if_changed,elftoaout)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) @echo ' kernel: $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) $(obj)/zImage: $(obj)/image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) $(call if_changed,strip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) @echo ' kernel: $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) # The following lines make a readable image for U-Boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) # uImage - Binary file read by U-boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) # uImage.o - object file of uImage for loading with a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) # flash programmer understanding ELF.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) OBJCOPYFLAGS_image.bin := -S -O binary -R .note -R .comment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) $(obj)/image.bin: $(obj)/image FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) $(call if_changed,objcopy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) $(obj)/image.gz: $(obj)/image.bin
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) $(call if_changed,gzip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) UIMAGE_LOADADDR = $(CONFIG_UBOOT_LOAD_ADDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) UIMAGE_ENTRYADDR = $(CONFIG_UBOOT_ENTRY_ADDR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) UIMAGE_COMPRESSION = gzip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) quiet_cmd_uimage.o = UIMAGE.O $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) cmd_uimage.o = $(LD) -Tdata $(CONFIG_UBOOT_FLASH_ADDR) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) -r -b binary $@ -o $@.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) targets += uImage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) $(obj)/uImage: $(obj)/image.gz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) $(call if_changed,uimage)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) $(call if_changed,uimage.o)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) @echo ' Image $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) $(obj)/image: vmlinux FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) $(call if_changed,strip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) @echo ' kernel: $@ is ready'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) $(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) $(call if_changed,elftoaout)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) $(call if_changed,piggy)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) install:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(obj)/zImage \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) System.map "$(INSTALL_PATH)"