hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#
# arch/arm/boot/Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies.
#
# 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-2002 Russell King
#
 
OBJCOPYFLAGS    :=-O binary -R .comment -S
 
ifneq ($(MACHINE),)
include $(MACHINE)/Makefile.boot
endif
 
# Note: the following conditions must always be true:
#   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
#   PARAMS_PHYS must be within 4MB of ZRELADDR
#   INITRD_PHYS must be in RAM
ZRELADDR    := $(zreladdr-y)
PARAMS_PHYS := $(params_phys-y)
INITRD_PHYS := $(initrd_phys-y)
 
export ZRELADDR INITRD_PHYS PARAMS_PHYS
 
targets := Image zImage xipImage bootpImage uImage
 
ifeq ($(CONFIG_XIP_KERNEL),y)
 
cmd_deflate_xip_data = $(CONFIG_SHELL) -c \
   '$(srctree)/$(src)/deflate_xip_data.sh $< $@'
 
ifeq ($(CONFIG_XIP_DEFLATED_DATA),y)
quiet_cmd_mkxip = XIPZ    $@
cmd_mkxip = $(cmd_objcopy) && $(cmd_deflate_xip_data)
else
quiet_cmd_mkxip = $(quiet_cmd_objcopy)
cmd_mkxip = $(cmd_objcopy)
endif
 
$(obj)/xipImage: vmlinux FORCE
   $(call if_changed,mkxip)
   @$(kecho) '  Physical Address of xipImage: $(CONFIG_XIP_PHYS_ADDR)'
 
$(obj)/Image $(obj)/zImage: FORCE
   @echo 'Kernel configured for XIP (CONFIG_XIP_KERNEL=y)'
   @echo 'Only the xipImage target is available in this case'
   @false
 
else
 
$(obj)/xipImage: FORCE
   @echo 'Kernel not configured for XIP (CONFIG_XIP_KERNEL!=y)'
   @false
 
$(obj)/Image: vmlinux FORCE
   $(call if_changed,objcopy)
 
targets += Image.gz Image.lz4
$(obj)/Image.gz: $(obj)/Image FORCE
   $(call if_changed,gzip)
 
$(obj)/Image.lz4: $(obj)/Image FORCE
   $(call if_changed,lz4c)
 
$(obj)/compressed/vmlinux: $(obj)/Image FORCE
   $(Q)$(MAKE) $(build)=$(obj)/compressed $@
 
$(obj)/zImage:    $(obj)/compressed/vmlinux FORCE
   $(call if_changed,objcopy)
 
endif
 
ifneq ($(LOADADDR),)
  UIMAGE_LOADADDR=$(LOADADDR)
else
  ifeq ($(CONFIG_ZBOOT_ROM),y)
    UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
  else
    UIMAGE_LOADADDR=$(ZRELADDR)
  endif
endif
 
check_for_multiple_loadaddr = \
if [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then \
   echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)'; \
   echo 'This is incompatible with uImages'; \
   echo 'Specify LOADADDR on the commandline to build an uImage'; \
   false; \
fi
 
$(obj)/uImage:    $(obj)/zImage FORCE
   @$(check_for_multiple_loadaddr)
   $(call if_changed,uimage)
 
$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
   $(Q)$(MAKE) $(build)=$(obj)/bootp $@
 
$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
   $(call if_changed,objcopy)
 
PHONY += initrd install zinstall uinstall
initrd:
   @test "$(INITRD_PHYS)" != "" || \
   (echo This machine does not support INITRD; exit -1)
   @test "$(INITRD)" != "" || \
   (echo You must specify INITRD; exit -1)
 
install:
   $(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
   $(obj)/Image System.map "$(INSTALL_PATH)"
 
zinstall:
   $(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
   $(obj)/zImage System.map "$(INSTALL_PATH)"
 
uinstall:
   $(CONFIG_SHELL) $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" \
   $(obj)/uImage System.map "$(INSTALL_PATH)"
 
subdir-        := bootp compressed dts