More comments below:
On Mon, Jan 17, 2011 at 5:07 PM, Xiangfu Liu <xiangfu@sharism.cc> wrote:
[...]
>
> +# u-boot
> +uImage: vmlinux.bin FORCE
> + $(Q)$(MAKE) $(build)=arch/mips/boot/u-boot \
> + VMLINUX=$(vmlinux-32) VMLINUXBIN=arch/mips/boot/vmlinux.bin \
> + VMLINUX_LOAD_ADDRESS=$(load-y) arch/mips/boot/u-boot/$@
>
As the comments in my previous reply, we may be possible to add the
uImage target to the line for vmlinuz, then, only one line need to be
changed.
> CLEAN_FILES += vmlinux.32 vmlinux.64
>
> @@ -313,6 +318,7 @@ define archhelp
> echo ' vmlinuz.ecoff - ECOFF zboot image'
> echo ' vmlinuz.bin - Raw binary zboot image'
> echo ' vmlinuz.srec - SREC zboot image'
> + echo ' uImage - U-boot image (gzip)'
If more compression algos added, then, above "(gzip)" can be removed.
and seems we forgot adding uImage to the "install:" and "archclean:"
target ;-)
arch/mips/Makefile:
install:
here....
archclean:
and here ....
If we move arch/mips/boot/u-boot/Makefile to
arch/mips/boot/compressed/Makefile, then, we can simply and uImage to
the last line of that Makefile:
clean-files := .... uImage
> echo
> echo ' These will be default as apropriate for a configured platform.'
> endef
> diff --git a/arch/mips/boot/u-boot/.gitignore
> b/arch/mips/boot/u-boot/.gitignore
> new file mode 100644
> index 0000000..1080c94
> --- /dev/null
> +++ b/arch/mips/boot/u-boot/.gitignore
> @@ -0,0 +1,2 @@
> +vmlinux.bin.gz
> +uImage
If we move the uImage target to arch/mips/boot/compressed/Makefile,
the uImage ignore can be added to arch/mips/boot/.gitignore
> diff --git a/arch/mips/boot/u-boot/Makefile b/arch/mips/boot/u-boot/Makefile
> new file mode 100644
> index 0000000..318dc50
> --- /dev/null
> +++ b/arch/mips/boot/u-boot/Makefile
> @@ -0,0 +1,15 @@
> +targets += vmlinux.bin.gz
> +quiet_cmd_gzip = GZIP $@
> +cmd_gzip = gzip -c9 $(VMLINUXBIN) $(obj)/vmlinux.bin.gz
> +$(obj)/vmlinux.bin.gz: $(obj)/../vmlinux.bin FORCE
> + $(call if_changed,gzip)
If we share the vmlinux.bin.z with vmlinuz, then, the above can be removed.
> +
> +MKIMAGE = mkimage
As your previous reply, the above line can be replaced with
$(srctree)/scripts/mkuboot.sh
> +
> +targets += uImage
> +quiet_cmd_uImage = MKIMAGE $@
> +cmd_uImage = $(MKIMAGE) -A mips -O linux -T kernel -C gzip -a
> $(VMLINUX_LOAD_ADDRESS) \
We can align it with quiet_cmd_uImage above ;-)
quiet_cmd_uImage = ...
cmd_uImage = ...
And we can substitute "$(tool_y)" for the 'hardcoded' gzip above.
> +-e 0x$(shell $(NM) $(VMLINUX) | grep ' kernel_entry' | cut -f1 -d ' ') \
Seems this duplicates the KERNEL_ENTRY calculation of kernel_entry
address, perhaps we can make a common one and share them, here is a
minimal change of the old Makefile:
-KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) \
- -DKERNEL_ENTRY=0x$(shell $(NM) $(objtree)/$(KBUILD_IMAGE)
2>/dev/null | grep " kernel_entry" | cut -f1 -d \ )
+KERNEL_ENTRY=0x$(shell $(NM) $(objtree)/$(KBUILD_IMAGE) 2>/dev/null |
grep " kernel_entry" | cut -f1 -d ' ')
+
+KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS)
-DKERNEL_ENTRY=$(KERNEL_ENTRY)
Then, we can use $(KERNEL_ENTRY) directly.
> +-n MIPS -d $(obj)/vmlinux.bin.gz $(obj)/uImage
Here, $(obj)/vmlinux.bin.z can be replaced with $(obj)/vmlinux.bin.z,
or we can simply use $< to simplify it.
> +$(obj)/uImage: $(obj)/vmlinux.bin.gz FORCE
$(obj)/vmlinux.bin.gz -> $(obj)/vmlinux.bin.z, and perhaps we can use
uImage instead of $(obj)/uImage too ;-)
> + $(call if_changed,uImage)
Regards,
Wu Zhangjin
|