2005-04-16 15:20:36 -07:00
#
# 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.
#
# Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle
# Copyright (C) 2004 Maciej W. Rozycki
#
#
# Some DECstations need all possible sections of an ECOFF executable
#
i f d e f C O N F I G _ M A C H _ D E C S T A T I O N
2010-05-30 16:27:33 +02:00
e2eflag := -a
2005-04-16 15:20:36 -07:00
e n d i f
#
# Drop some uninteresting sections in the kernel.
# This is only relevant for ELF kernels but doesn't hurt a.out
#
2010-05-30 16:27:33 +02:00
drop-sections := .reginfo .mdebug .comment .note .pdr .options .MIPS.options
strip-flags := $( addprefix --remove-section= ,$( drop-sections) )
2020-02-02 01:49:24 +09:00
hostprogs := elf2ecoff
2010-05-30 16:27:33 +02:00
2015-02-16 15:13:11 +00:00
suffix-y := bin
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
suffix-$(CONFIG_KERNEL_GZIP) := gz
suffix-$(CONFIG_KERNEL_LZMA) := lzma
suffix-$(CONFIG_KERNEL_LZO) := lzo
2010-05-30 16:27:33 +02:00
targets := vmlinux.ecoff
2013-01-22 12:59:30 +01:00
quiet_cmd_ecoff = ECOFF $@
2010-05-30 16:27:33 +02:00
cmd_ecoff = $( obj) /elf2ecoff $( VMLINUX) $@ $( e2eflag)
$(obj)/vmlinux.ecoff : $( obj ) /elf 2ecoff $( VMLINUX ) FORCE
$( call if_changed,ecoff)
targets += vmlinux.bin
quiet_cmd_bin = OBJCOPY $@
cmd_bin = $( OBJCOPY) -O binary $( strip-flags) $( VMLINUX) $@
$(obj)/vmlinux.bin : $( VMLINUX ) FORCE
$( call if_changed,bin)
targets += vmlinux.srec
quiet_cmd_srec = OBJCOPY $@
cmd_srec = $( OBJCOPY) -S -O srec $( strip-flags) $( VMLINUX) $@
$(obj)/vmlinux.srec : $( VMLINUX ) FORCE
$( call if_changed,srec)
2013-08-30 16:42:42 +01:00
UIMAGE_LOADADDR = $( VMLINUX_LOAD_ADDRESS)
UIMAGE_ENTRYADDR = $( VMLINUX_ENTRY_ADDRESS)
2015-02-16 15:13:11 +00:00
#
# Compressed vmlinux images
#
extra-y += vmlinux.bin.bz2
extra-y += vmlinux.bin.gz
extra-y += vmlinux.bin.lzma
extra-y += vmlinux.bin.lzo
$(obj)/vmlinux.bin.bz2 : $( obj ) /vmlinux .bin FORCE
$( call if_changed,bzip2)
2013-08-30 16:42:42 +01:00
$(obj)/vmlinux.bin.gz : $( obj ) /vmlinux .bin FORCE
$( call if_changed,gzip)
2015-02-16 15:13:11 +00:00
$(obj)/vmlinux.bin.lzma : $( obj ) /vmlinux .bin FORCE
$( call if_changed,lzma)
$(obj)/vmlinux.bin.lzo : $( obj ) /vmlinux .bin FORCE
$( call if_changed,lzo)
#
# Compressed u-boot images
#
targets += uImage
targets += uImage.bin
targets += uImage.bz2
2013-08-30 16:42:42 +01:00
targets += uImage.gz
2015-02-16 15:13:11 +00:00
targets += uImage.lzma
targets += uImage.lzo
$(obj)/uImage.bin : $( obj ) /vmlinux .bin FORCE
$( call if_changed,uimage,none)
$(obj)/uImage.bz2 : $( obj ) /vmlinux .bin .bz 2 FORCE
$( call if_changed,uimage,bzip2)
2013-08-30 16:42:42 +01:00
$(obj)/uImage.gz : $( obj ) /vmlinux .bin .gz FORCE
$( call if_changed,uimage,gzip)
2015-02-16 15:13:11 +00:00
$(obj)/uImage.lzma : $( obj ) /vmlinux .bin .lzma FORCE
$( call if_changed,uimage,lzma)
$(obj)/uImage.lzo : $( obj ) /vmlinux .bin .lzo FORCE
$( call if_changed,uimage,lzo)
$(obj)/uImage : $( obj ) /uImage .$( suffix -y )
2013-08-30 16:42:42 +01:00
@ln -sf $( notdir $<) $@
@echo ' Image $@ is ready'
2016-10-05 18:18:19 +01:00
#
# Flattened Image Tree (.itb) images
#
2016-10-05 18:18:20 +01:00
i f e q ( $( ADDR_BITS ) , 3 2 )
2018-04-16 23:47:46 +09:00
itb_addr_cells = 1
2016-10-05 18:18:20 +01:00
e n d i f
i f e q ( $( ADDR_BITS ) , 6 4 )
2018-04-16 23:47:46 +09:00
itb_addr_cells = 2
2016-10-05 18:18:20 +01:00
e n d i f
2018-04-16 23:47:43 +09:00
targets += vmlinux.its.S
2017-08-07 15:37:21 -07:00
quiet_cmd_its_cat = CAT $@
2019-01-17 19:02:43 +09:00
cmd_its_cat = cat $( real-prereqs) >$@
2017-08-07 15:37:21 -07:00
2018-04-16 23:47:43 +09:00
$(obj)/vmlinux.its.S : $( addprefix $ ( srctree ) /arch /mips /$ ( PLATFORM ) /,$ ( ITS_INPUTS ) ) FORCE
2017-08-07 15:37:21 -07:00
$( call if_changed,its_cat)
2018-04-16 23:47:45 +09:00
targets += vmlinux.its
targets += vmlinux.gz.its
targets += vmlinux.bz2.its
2020-01-17 17:02:08 +03:00
targets += vmlinux.lzma.its
2018-04-16 23:47:45 +09:00
targets += vmlinux.lzo.its
2016-10-05 18:18:19 +01:00
quiet_cmd_cpp_its_S = ITS $@
2018-04-16 23:47:42 +09:00
cmd_cpp_its_S = $( CPP) -P -C -o $@ $< \
2016-10-05 18:18:19 +01:00
-DKERNEL_NAME= " \"Linux $( KERNELRELEASE) \" " \
-DVMLINUX_BINARY= " \" $( 3) \" " \
-DVMLINUX_COMPRESSION= " \" $( 2) \" " \
-DVMLINUX_LOAD_ADDRESS= $( VMLINUX_LOAD_ADDRESS) \
2016-10-05 18:18:20 +01:00
-DVMLINUX_ENTRY_ADDRESS= $( VMLINUX_ENTRY_ADDRESS) \
-DADDR_BITS= $( ADDR_BITS) \
-DADDR_CELLS= $( itb_addr_cells)
2016-10-05 18:18:19 +01:00
2017-08-07 15:37:21 -07:00
$(obj)/vmlinux.its : $( obj ) /vmlinux .its .S $( VMLINUX ) FORCE
2018-04-16 23:47:42 +09:00
$( call if_changed,cpp_its_S,none,vmlinux.bin)
2016-10-05 18:18:19 +01:00
2017-08-07 15:37:21 -07:00
$(obj)/vmlinux.gz.its : $( obj ) /vmlinux .its .S $( VMLINUX ) FORCE
2018-04-16 23:47:42 +09:00
$( call if_changed,cpp_its_S,gzip,vmlinux.bin.gz)
2016-10-05 18:18:19 +01:00
2017-08-07 15:37:21 -07:00
$(obj)/vmlinux.bz2.its : $( obj ) /vmlinux .its .S $( VMLINUX ) FORCE
2018-04-16 23:47:42 +09:00
$( call if_changed,cpp_its_S,bzip2,vmlinux.bin.bz2)
2016-10-05 18:18:19 +01:00
2017-08-07 15:37:21 -07:00
$(obj)/vmlinux.lzma.its : $( obj ) /vmlinux .its .S $( VMLINUX ) FORCE
2018-04-16 23:47:42 +09:00
$( call if_changed,cpp_its_S,lzma,vmlinux.bin.lzma)
2016-10-05 18:18:19 +01:00
2017-08-07 15:37:21 -07:00
$(obj)/vmlinux.lzo.its : $( obj ) /vmlinux .its .S $( VMLINUX ) FORCE
2018-04-16 23:47:42 +09:00
$( call if_changed,cpp_its_S,lzo,vmlinux.bin.lzo)
2016-10-05 18:18:19 +01:00
2018-04-16 23:47:46 +09:00
targets += vmlinux.itb
targets += vmlinux.gz.itb
targets += vmlinux.bz2.itb
targets += vmlinux.lzma.itb
targets += vmlinux.lzo.itb
2016-10-05 18:18:19 +01:00
quiet_cmd_itb-image = ITB $@
cmd_itb-image = \
env PATH = " $( objtree) /scripts/dtc: $( PATH) " \
2019-08-25 22:28:37 +09:00
$( BASH) $( MKIMAGE) \
2016-10-05 18:18:19 +01:00
-D " -I dts -O dtb -p 500 \
--include $( objtree) /arch/mips \
--warning no-unit_address_vs_reg" \
-f $( 2) $@
$(obj)/vmlinux.itb : $( obj ) /vmlinux .its $( obj ) /vmlinux .bin FORCE
$( call if_changed,itb-image,$<)
2018-04-16 23:47:46 +09:00
$(obj)/vmlinux.%.itb : $( obj ) /vmlinux .%.its $( obj ) /vmlinux .bin .% FORCE
2016-10-05 18:18:19 +01:00
$( call if_changed,itb-image,$<)