1 # 1 # 2 # arch/riscv/boot/Makefile !! 2 # arch/alpha/boot/Makefile 3 # << 4 # This file is included by the global makefile << 5 # architecture-specific flags and dependencies << 6 # 3 # 7 # This file is subject to the terms and condit 4 # This file is subject to the terms and conditions of the GNU General Public 8 # License. See the file "COPYING" in the main 5 # License. See the file "COPYING" in the main directory of this archive 9 # for more details. 6 # for more details. 10 # 7 # 11 # Copyright (C) 2018, Anup Patel. !! 8 # Copyright (C) 1994 by Linus Torvalds 12 # Author: Anup Patel <anup@brainfault.org> << 13 # << 14 # Based on the ia64 and arm64 boot/Makefile. << 15 # 9 # 16 10 17 OBJCOPYFLAGS_Image :=-O binary -R .note -R .no !! 11 host-progs := tools/mkbb tools/objstrip 18 OBJCOPYFLAGS_loader.bin :=-O binary !! 12 targets := vmlinux.gz vmlinux \ 19 OBJCOPYFLAGS_xipImage :=-O binary -R .note -R !! 13 vmlinux.nh tools/lxboot tools/bootlx tools/bootph \ 20 !! 14 tools/bootpzh bootloader bootpheader bootpzheader 21 targets := Image Image.* loader loader.o loade !! 15 OBJSTRIP := $(obj)/tools/objstrip 22 !! 16 23 ifeq ($(CONFIG_XIP_KERNEL),y) !! 17 # SRM bootable image. Copy to offset 512 of a partition. >> 18 $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh >> 19 ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@ >> 20 $(obj)/tools/mkbb $@ $(obj)/tools/lxboot >> 21 @echo ' Bootimage $@ is ready' >> 22 >> 23 # BOOTP bootable image. Define INITRD during make to append initrd image. >> 24 $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh >> 25 cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@ >> 26 ifdef INITRD >> 27 cat $(INITRD) >> $@ >> 28 endif 24 29 25 quiet_cmd_mkxip = $(quiet_cmd_objcopy) !! 30 # Compressed kernel BOOTP bootable image. 26 cmd_mkxip = $(cmd_objcopy) !! 31 # Define INITRD during make to append initrd image. >> 32 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz >> 33 cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@ >> 34 ifdef INITRD >> 35 cat $(INITRD) >> $@ >> 36 endif 27 37 28 $(obj)/xipImage: vmlinux FORCE !! 38 # Compressed kernel image 29 $(call if_changed,mkxip) !! 39 $(obj)/vmlinux.gz: $(obj)/vmlinux FORCE 30 @$(kecho) ' Physical Address of xipIm !! 40 $(call if_changed,gzip) >> 41 @echo ' Kernel $@ is ready' 31 42 >> 43 $(obj)/main.o: $(obj)/ksize.h >> 44 $(obj)/bootp.o: $(obj)/ksize.h >> 45 $(obj)/bootpz.o: $(obj)/kzsize.h >> 46 >> 47 $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE >> 48 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T >> 49 ifdef INITRD >> 50 [ -f $(INITRD) ] || exit 1 >> 51 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T 32 endif 52 endif >> 53 cmp -s $@T $@ || mv -f $@T $@ >> 54 rm -f $@T 33 55 34 ifdef CONFIG_RELOCATABLE !! 56 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE 35 vmlinux.relocs: vmlinux !! 57 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T 36 @ (! [ -f vmlinux.relocs ] && echo "vm !! 58 echo "#define KERNEL_Z_SIZE `ls -l $(obj)/vmlinux.nh.gz | awk '{print $$5}'`" >> $@T 37 !! 59 ifdef INITRD 38 $(obj)/Image: vmlinux.relocs FORCE !! 60 [ -f $(INITRD) ] || exit 1 39 else !! 61 echo "#define INITRD_IMAGE_SIZE `ls -l $(INITRD) | awk '{print $$5}'`" >> $@T 40 $(obj)/Image: vmlinux FORCE << 41 endif 62 endif 42 $(call if_changed,objcopy) !! 63 cmp -s $@T $@ || mv -f $@T $@ >> 64 rm -f $@T 43 65 44 $(obj)/Image.gz: $(obj)/Image FORCE !! 66 quiet_cmd_strip = STRIP $@ 45 $(call if_changed,gzip) !! 67 cmd_strip = $(STRIP) -o $@ $< >> 68 >> 69 $(obj)/vmlinux: vmlinux FORCE >> 70 $(call if_changed,strip) >> 71 >> 72 quiet_cmd_objstrip = OBJSTRIP $@ >> 73 cmd_objstrip = $(OBJSTRIP) $(OSFLAGS_$(@F)) $< $@ 46 74 47 $(obj)/loader.o: $(src)/loader.S $(obj)/Image !! 75 OSFLAGS_vmlinux.nh := -v >> 76 OSFLAGS_lxboot := -p >> 77 OSFLAGS_bootlx := -vb >> 78 OSFLAGS_bootph := -vb >> 79 OSFLAGS_bootpzh := -vb >> 80 >> 81 $(obj)/vmlinux.nh: vmlinux $(OBJSTRIP) FORCE >> 82 $(call if_changed,objstrip) >> 83 >> 84 $(obj)/vmlinux.nh.gz: $(obj)/vmlinux.nh FORCE >> 85 $(call if_changed,gzip) 48 86 49 $(obj)/loader: $(obj)/loader.o $(obj)/Image $( !! 87 $(obj)/tools/lxboot: $(obj)/bootloader $(OBJSTRIP) FORCE 50 $(Q)$(LD) -T $(obj)/loader.lds -o $@ $ !! 88 $(call if_changed,objstrip) 51 89 52 $(obj)/Image.bz2: $(obj)/Image FORCE !! 90 $(obj)/tools/bootlx: $(obj)/bootloader $(OBJSTRIP) FORCE 53 $(call if_changed,bzip2) !! 91 $(call if_changed,objstrip) 54 92 55 $(obj)/Image.lz4: $(obj)/Image FORCE !! 93 $(obj)/tools/bootph: $(obj)/bootpheader $(OBJSTRIP) FORCE 56 $(call if_changed,lz4) !! 94 $(call if_changed,objstrip) 57 95 58 $(obj)/Image.lzma: $(obj)/Image FORCE !! 96 $(obj)/tools/bootpzh: $(obj)/bootpzheader $(OBJSTRIP) FORCE 59 $(call if_changed,lzma) !! 97 $(call if_changed,objstrip) 60 98 61 $(obj)/Image.lzo: $(obj)/Image FORCE !! 99 LDFLAGS_bootloader := -static -uvsprintf -T #-N -relax 62 $(call if_changed,lzo) !! 100 LDFLAGS_bootpheader := -static -uvsprintf -T #-N -relax >> 101 LDFLAGS_bootpzheader := -static -uvsprintf -T #-N -relax 63 102 64 $(obj)/Image.zst: $(obj)/Image FORCE !! 103 OBJ_bootlx := $(obj)/head.o $(obj)/main.o 65 $(call if_changed,zstd) !! 104 OBJ_bootph := $(obj)/head.o $(obj)/bootp.o >> 105 OBJ_bootpzh := $(obj)/head.o $(obj)/bootpz.o $(obj)/misc.o 66 106 67 $(obj)/Image.xz: $(obj)/Image FORCE !! 107 $(obj)/bootloader: $(obj)/bootloader.lds $(OBJ_bootlx) FORCE 68 $(call if_changed,xzkern) !! 108 $(call if_changed,ld) 69 109 70 $(obj)/loader.bin: $(obj)/loader FORCE !! 110 $(obj)/bootpheader: $(obj)/bootloader.lds $(OBJ_bootph) $(LIBS_Y) FORCE 71 $(call if_changed,objcopy) !! 111 $(call if_changed,ld) 72 112 73 EFI_ZBOOT_PAYLOAD := Image !! 113 $(obj)/bootpzheader: $(obj)/bootloader.lds $(OBJ_bootpzh) $(LIBS_Y) FORCE 74 EFI_ZBOOT_BFD_TARGET := elf$(BITS)-littleri !! 114 $(call if_changed,ld) 75 EFI_ZBOOT_MACH_TYPE := RISCV$(BITS) << 76 115 77 include $(srctree)/drivers/firmware/efi/libstu !! 116 $(obj)/misc.o: lib/inflate.c
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.