1 #############################################################
3 # u-boot mkimage to build to target u-boot filesystems and
5 # u-boot.bin - the boot loader for the target - which needs soft float, so
9 #############################################################
10 UBOOT_VERSION
:=1.2.0-atmel
11 ATMEL_MIRROR
:=$(strip $(subst ",, $(BR2_ATMEL_MIRROR)))
13 UBOOT_DIR
:=$(BUILD_DIR
)/u-boot-
$(UBOOT_VERSION
)
14 UBOOT_BUILD_DIR
:=$(PROJECT_BUILD_DIR
)/u-boot-
$(UBOOT_VERSION
)
15 UBOOT_SOURCE
:=u-boot-
$(UBOOT_VERSION
).
tar.bz2
16 #UBOOT_SOURCE:=u-boot-1.1.5-atmel.tar.bz2
17 #UBOOT_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/u-boot
18 UBOOT_SITE
:=$(ATMEL_MIRROR
)
19 UBOOT_PATCH_SITE
:=$(ATMEL_MIRROR
)
21 UBOOT_PATCH_SOURCE
:=u-boot-1.2
.0-atmel-patch.
tar.bz2
23 MKIMAGE_BINLOC
:=$(UBOOT_BUILD_DIR
)/tools
/mkimage
24 MKIMAGE
:=$(KERNEL_CROSS
)mkimage
26 UBOOT_BIN
:=$(BOARD_NAME
)-u-boot-
$(UBOOT_VERSION
)-$(DATE
).bin
28 UBOOT_PATCHES
:=$(PROJECT_BUILD_DIR
)/u-boot-patches
30 UBOOT_ATMEL_BMP
:=$(UBOOT_PATCHES
)/atmel.bmp
32 UBOOT_SCR
=$(BINARIES_DIR
)/autoscript
33 TARGET_UBOOT_IPADDR
:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_IPADDR_AT91)))
35 TARGET_UBOOT_SERVERIP
:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_SERVERIP_AT91)))
37 TARGET_UBOOT_GATEWAY
:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_GATEWAY_AT91)))
39 TARGET_UBOOT_NETMASK
:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_NETMASK_AT91)))
41 TARGET_UBOOT_ETHADDR
:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_ETHADDR_AT91)))
43 UBOOT_CUSTOM
:=$(UBOOT_DIR
)/include/custom.h
45 $(DL_DIR
)/$(UBOOT_SOURCE
):
46 $(call DOWNLOAD
,$(UBOOT_SITE
),$(UBOOT_SOURCE
))
48 $(DL_DIR
)/$(UBOOT_PATCH_SOURCE
):
49 $(call DOWNLOAD
,$(UBOOT_PATCH_SITE
),$(UBOOT_PATCH_SOURCE
))
51 $(UBOOT_DIR
)/.unpacked
: $(DL_DIR
)/$(UBOOT_SOURCE
)
53 $(UBOOT_CAT
) $(DL_DIR
)/$(UBOOT_SOURCE
) |
tar -C
$(BUILD_DIR
) -xvf
-
56 $(UBOOT_PATCHES
)/.unpacked
: $(DL_DIR
)/$(UBOOT_PATCH_SOURCE
)
57 mkdir
-p
$(UBOOT_PATCHES
)
58 bzcat
$(DL_DIR
)/$(UBOOT_PATCH_SOURCE
) |
tar -C
$(UBOOT_PATCHES
) -xvf
-
61 $(UBOOT_DIR
)/.patched.
$(UBOOT_PATCH_SOURCE
): $(UBOOT_DIR
)/.unpacked
$(UBOOT_PATCHES
)/.unpacked
62 toolchain
/patch-kernel.sh
$(UBOOT_DIR
) $(UBOOT_PATCHES
) \
*.patch
63 touch
$(UBOOT_DIR
)/.patched.
$(UBOOT_PATCH_SOURCE
)
64 # cp $(UBOOT_CONFIG_FILE) $(UBOOT_DIR)/include/configs/.
65 # cp $(UBOOT_PATCHES)/cmd_defenv.c $(UBOOT_DIR)/common/.
66 # cp $(UBOOT_ATMEL_BMP) $(UBOOT_DIR)/tools/logos/.
68 $(UBOOT_BUILD_DIR
)/.configured
: $(UBOOT_DIR
)/.patched.
$(UBOOT_PATCH_SOURCE
)
69 ifneq ($(strip $(UBOOT_CONFIG_FILE
)),)
70 cp
$(UBOOT_CONFIG_FILE
) $(UBOOT_DIR
)/include/configs
/.
73 O
=$(UBOOT_BUILD_DIR
) \
74 CONFIG_NOSOFTFLOAT
=1 \
77 $(SED
) 's/ $$(SREC) $$(BIN)//' $(UBOOT_DIR
)/examples
/Makefile
78 touch
$(UBOOT_BUILD_DIR
)/.configured
79 # $(MAKE) O=$(UBOOT_BUILD_DIR) -C $(UBOOT_DIR)
81 $(MKIMAGE_BINLOC
): $(UBOOT_BUILD_DIR
)/.configured
83 O
=$(UBOOT_BUILD_DIR
) \
85 CONFIG_NOSOFTFLOAT
=1 \
87 SRCTREE
=$(UBOOT_DIR
) \
89 touch
$(MKIMAGE_BINLOC
)
91 $(UBOOT_BUILD_DIR
)/u-boot.bin
: $(UBOOT_BUILD_DIR
)/.configured
$(UBOOT_CUSTOM
)
92 echo TARGET_CROSS
=$(TARGET_CROSS
)
93 $(MAKE
) O
=$(UBOOT_BUILD_DIR
) \
94 CROSS_COMPILE
=$(TARGET_CROSS
) \
95 CONFIG_NOSOFTFLOAT
=1 \
97 SRCTREE
=$(UBOOT_DIR
) \
98 TFTPBOOT
=$(TARGET_ATMEL_COPYTO
) \
101 $(BINARIES_DIR
)/$(UBOOT_BIN
): $(UBOOT_BUILD_DIR
)/u-boot.bin
102 mkdir
-p
$(BINARIES_DIR
)
103 cp
$(UBOOT_BUILD_DIR
)/u-boot.bin
$(BINARIES_DIR
)/$(UBOOT_BIN
)
105 $(TARGET_ATMEL_COPYTO
)/$(UBOOT_BIN
): $(UBOOT_BUILD_DIR
)/u-boot.bin
106 mkdir
-p
$(TARGET_ATMEL_COPYTO
)
107 cp
$(UBOOT_BUILD_DIR
)/u-boot.bin
$(TARGET_ATMEL_COPYTO
)/$(UBOOT_BIN
)
109 uboot-bin
: $(BINARIES_DIR
)/$(UBOOT_BIN
) $(TARGET_ATMEL_COPYTO
)/$(UBOOT_BIN
)
111 $(UBOOT_CUSTOM
).
test: .config
$(UBOOT_BUILD_DIR
)/.configured
112 echo
"/* Automatically generated file, do not edit */" \
113 > $(UBOOT_CUSTOM
).
test
114 ifneq ($(TARGET_HOSTNAME
),)
115 echo
"#if defined(CONFIG_HOSTNAME)" >> $(UBOOT_CUSTOM
).
test
116 echo
"#undef CONFIG_HOSTNAME" >> $(UBOOT_CUSTOM
).
test
117 echo
"#define CONFIG_HOSTNAME $(TARGET_HOSTNAME)">> $(UBOOT_CUSTOM
).
test
118 echo
"#endif" >> $(UBOOT_CUSTOM
).
test
120 ifneq ($(TARGET_UBOOT_IPADDR
),)
121 echo
"#define CONFIG_IPADDR $(TARGET_UBOOT_IPADDR)">> $(UBOOT_CUSTOM
).
test
123 ifneq ($(TARGET_UBOOT_SERVERIP
),)
124 echo
"#define CONFIG_SERVERIP $(TARGET_UBOOT_SERVERIP)">> $(UBOOT_CUSTOM
).
test
126 ifneq ($(TARGET_UBOOT_GATEWAY
),)
127 echo
"#define CONFIG_GATEWAYIP $(TARGET_UBOOT_GATEWAY)">> $(UBOOT_CUSTOM
).
test
129 ifneq ($(TARGET_UBOOT_NETMASK
),)
130 echo
"#define CONFIG_NETMASK $(TARGET_UBOOT_NETMASK)">> $(UBOOT_CUSTOM
).
test
132 ifneq ($(TARGET_UBOOT_ETHADDR
),)
133 echo
"#define CONFIG_ETHADDR $(TARGET_UBOOT_ETHADDR)">> $(UBOOT_CUSTOM
).
test
135 diff
-q
$(UBOOT_CUSTOM
).
test $(UBOOT_CUSTOM
) || cp
-af
$(UBOOT_CUSTOM
).
test $(UBOOT_CUSTOM
)
137 $(UBOOT_SCR
): .config
138 ifneq ($(TARGET_UBOOT_IPADDR
),)
139 echo setenv ipaddr
$(TARGET_UBOOT_IPADDR
) > $(UBOOT_SCR
)
141 ifneq ($(TARGET_UBOOT_SERVERIP
),)
142 echo setenv serverip
$(TARGET_UBOOT_SERVERIP
) >> $(UBOOT_SCR
)
144 ifneq ($(TARGET_UBOOT_GATEWAY
),)
145 echo setenv gatewayip
$(TARGET_UBOOT_GATEWAY
) >> $(UBOOT_SCR
)
147 ifneq ($(TARGET_UBOOT_NETMASK
),)
148 echo setenv netmask
$(TARGET_UBOOT_NETMASK
) >> $(UBOOT_SCR
)
150 echo setenv linux
$(BOARD_NAME
)-linux-
$(LINUX26_VERSION
)-$(DATE
).gz
>> $(UBOOT_SCR
)
151 echo setenv kernel-version
$(LINUX26_VERSION
) >> $(UBOOT_SCR
)
152 echo setenv kernel-date
$(DATE
) >> $(UBOOT_SCR
)
153 echo setenv hostname
$(TARGET_HOSTNAME
) >> $(UBOOT_SCR
)
154 echo setenv fs-date
$(DATE
) >> $(UBOOT_SCR
)
155 echo setenv rd-1 rootfs.
$(BR2_ARCH
)-$(DATE
).ext2
>> $(UBOOT_SCR
)
156 echo setenv rd-2 rootfs.
$(BR2_ARCH
)-$(DATE
).jffs2
>> $(UBOOT_SCR
)
157 echo setenv rd rootfs.
$(BR2_ARCH
)-$(DATE
).ext2
>> $(UBOOT_SCR
)
158 echo setenv ver
1 >> $(UBOOT_SCR
)
159 ifneq ($(TARGET_UBOOT_ETHADDR
),)
160 echo setenv ethaddr
$(TARGET_UBOOT_ETHADDR
) >> $(UBOOT_SCR
)
162 echo setenv fstype ram
>> $(UBOOT_SCR
)
163 echo fs
>> $(UBOOT_SCR
)
164 echo os
>> $(UBOOT_SCR
)
165 echo setargs
>> $(UBOOT_SCR
)
166 echo saveenv
>> $(UBOOT_SCR
)
168 $(UBOOT_SCR
).
$(PROJECT
): $(UBOOT_SCR
) $(MKIMAGE
)
175 -n
"autoscr config" \
177 $(UBOOT_SCR
).
$(PROJECT
)
178 cp
$(UBOOT_SCR
).
$(PROJECT
) $(TARGET_ATMEL_COPYTO
)
180 $(MKIMAGE
): $(MKIMAGE_BINLOC
)
181 cp
-f
$(MKIMAGE_BINLOC
) $(MKIMAGE
)
183 uboot
: $(MKIMAGE
) uboot-bin
$(UBOOT_SCR
).
$(PROJECT
)
185 uboot-source
: $(DL_DIR
)/$(UBOOT_SOURCE
)
188 rm -fr
$(UBOOT_BUILD_DIR
)
189 rm -fr
$(UBOOT_PATCHES
)
190 rm -f
$(BINARIES_DIR
)/$(UBOOT_BIN
)
193 rm -f
$(UBOOT_SCR
).
$(PROJECT
)
194 # -$(MAKE) -C $(UBOOT_DIR)/uboot-tools clean
196 uboot-dirclean
: uboot-clean
200 rm -fr
$(UBOOT_BUILD_DIR
)/u-boot
201 rm -fr
$(UBOOT_BUILD_DIR
)/u-boot.gz
202 rm -fr
$(UBOOT_BUILD_DIR
)/u-boot.bin
203 rm -fr
$(TARGET_ATMEL_COPYTO
)/$(UBOOT_BIN
)
204 rm -fr
$(BINARIES_DIR
)/$(UBOOT_BIN
)
207 #############################################################
209 # Build the uboot root filesystem image
211 #############################################################
213 UBOOT_TARGET
:=$(IMAGE
).uboot
215 ubootroot
: host-fakeroot makedevs uboot
216 -@find
$(TARGET_DIR
) -type f
-perm
+111 | xargs
$(STRIPCMD
) 2>/dev
/null || true
217 @
rm -rf
$(TARGET_DIR
)/usr
/man
218 @
rm -rf
$(TARGET_DIR
)/usr
/info
219 -/sbin
/ldconfig
-r
$(TARGET_DIR
) 2>/dev
/null
220 # Use fakeroot to pretend all target binaries are owned by root
221 rm -f
$(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
222 touch
$(STAGING_DIR
)/.fakeroot
.00000
223 cat
$(STAGING_DIR
)/.fakeroot
* > $(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
224 echo
"chown -R root:root $(TARGET_DIR)" >> $(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
225 # Use fakeroot to pretend to create all needed device nodes
226 echo
"$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
227 >> $(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
228 # Use fakeroot so mkuboot believes the previous fakery
229 echo
"$(UBOOT_DIR)/uboot-tools/mkuboot " \
230 "$(TARGET_DIR) $(UBOOT_TARGET) " \
231 "-noappend $(UBOOT_ENDIANNESS)" \
232 >> $(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
233 chmod a
+x
$(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
234 $(HOST_DIR
)/usr
/bin
/fakeroot
-- $(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
235 -@
rm -f
$(STAGING_DIR
)/_fakeroot.
$(notdir $(UBOOT_TARGET
))
237 ubootroot-source
: uboot-source
240 -$(MAKE
) -C
$(UBOOT_DIR
) clean
245 #############################################################
247 # Toplevel Makefile options
249 #############################################################
250 ifeq ($(BR2_TARGET_UBOOT_AT91
),y
)
255 -@echo source
=$(DL_DIR
)/$(UBOOT_SOURCE
)
256 -@ls
$(DL_DIR
)/$(UBOOT_SOURCE
)
257 -@echo patch
=$(DL_DIR
)/$(UBOOT_PATCH_SOURCE
)
258 -@ls
$(DL_DIR
)/$(UBOOT_PATCH_SOURCE
)
259 -@echo unpacked
=$(UBOOT_PATCHES
)/.unpacked
260 -@ls
$(UBOOT_PATCHES
)/.unpacked
261 -@echo patch-unpacked
=$(UBOOT_PATCHES
)/.unpacked
262 -@ls
$(UBOOT_PATCHES
)/.unpacked
263 -@echo patched-source
=$(UBOOT_DIR
)/.patched.
$(UBOOT_PATCH_SOURCE
)
264 -@ls
$(UBOOT_DIR
)/.patched.
$(UBOOT_PATCH_SOURCE
)
265 -@echo configured
=$(UBOOT_BUILD_DIR
)/.configured
266 -@ls
$(UBOOT_BUILD_DIR
)/.configured
267 -@echo mkimage
=$(MKIMAGE_BINLOC
)
268 -@ls
$(MKIMAGE_BINLOC
)
269 -@echo u-boot.bin
=$(UBOOT_BUILD_DIR
)/u-boot.bin
270 -@ls
$(UBOOT_BUILD_DIR
)/u-boot.bin
271 -@echo binaries-u-boot.bin
=$(BINARIES_DIR
)/$(UBOOT_BIN
)
272 -@ls
$(BINARIES_DIR
)/$(UBOOT_BIN
)
273 -@echo tftpboot
=$(TARGET_ATMEL_COPYTO
)/$(UBOOT_BIN
)
274 -@ls
$(TARGET_ATMEL_COPYTO
)/$(UBOOT_BIN
)
275 -@echo
"mkimage = $(MKIMAGE)"
277 -@echo
"u-boot script=$(UBOOT_SCR).$(PROJECT)"
278 -@ls
$(UBOOT_SCR
).
$(PROJECT
)
279 -@echo
"u-boot script (ASCII)=$(UBOOT_SCR)"
281 -@echo
"mkimage binary=$(MKIMAGE_BINLOC)"
282 -@ls
$(MKIMAGE_BINLOC
)