summaryrefslogtreecommitdiffstats
path: root/kernel/arch/xtensa/boot/boot-elf/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/xtensa/boot/boot-elf/Makefile')
-rw-r--r--kernel/arch/xtensa/boot/boot-elf/Makefile34
1 files changed, 34 insertions, 0 deletions
diff --git a/kernel/arch/xtensa/boot/boot-elf/Makefile b/kernel/arch/xtensa/boot/boot-elf/Makefile
new file mode 100644
index 000000000..89db089f5
--- /dev/null
+++ b/kernel/arch/xtensa/boot/boot-elf/Makefile
@@ -0,0 +1,34 @@
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file "COPYING" in the main directory of this archive
+# for more details.
+#
+
+ifeq ($(BIG_ENDIAN),1)
+OBJCOPY_ARGS := -O elf32-xtensa-be
+else
+OBJCOPY_ARGS := -O elf32-xtensa-le
+endif
+
+export OBJCOPY_ARGS
+export CPPFLAGS_boot.lds += -P -C
+export KBUILD_AFLAGS += -mtext-section-literals
+
+boot-y := bootstrap.o
+
+OBJS := $(addprefix $(obj)/,$(boot-y))
+
+$(obj)/Image.o: vmlinux.bin $(OBJS)
+ $(Q)$(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
+ --add-section image=vmlinux.bin \
+ --set-section-flags image=contents,alloc,load,load,data \
+ $(OBJS) $@
+
+$(obj)/../Image.elf: $(obj)/Image.o $(obj)/boot.lds
+ $(Q)$(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) \
+ -T $(obj)/boot.lds \
+ --build-id=none \
+ -o $@ $(obj)/Image.o
+ $(Q)$(kecho) ' Kernel: $@ is ready'
+
+zImage: $(obj)/../Image.elf