2010-08-31 10:24:28

by Shmulik Ladkani

[permalink] [raw]
Subject: [PATCH] MIPS: Calculate VMLINUZ_LOAD_ADDRESS based on the length of vmlinux.bin

Fix VMLINUZ_LOAD_ADDRESS calculation to be based on the length of vmlinux.bin,
the actual uncompressed kernel binary.

Previously it was based on the length of KBUILD_IMAGE (the unstripped ELF
vmlinux), which is bigger than vmlinux.bin.
As a result, vmlinuz was loaded into a memory address higher then actually
needed - a problem for small memory platforms.

Signed-off-by: Shmulik Ladkani <[email protected]>
---
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index ed9bb70..5fd7f7a 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -59,7 +59,7 @@ $(obj)/piggy.o: $(obj)/dummy.o $(obj)/vmlinux.bin.z FORCE
hostprogs-y := calc_vmlinuz_load_addr

VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \
- $(objtree)/$(KBUILD_IMAGE) $(VMLINUX_LOAD_ADDRESS))
+ $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS))

vmlinuzobjs-y += $(obj)/piggy.o

--
Shmulik Ladkani


2010-08-31 15:11:21

by wu zhangjin

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Calculate VMLINUZ_LOAD_ADDRESS based on the length of vmlinux.bin

Hi,

This is a very good fix:

$ ls -sh arch/mips/boot/compressed/vmlinux.bin vmlinux
5.4M arch/mips/boot/compressed/vmlinux.bin 6.9M vmlinux

Thanks very much.

Acked-by: Wu Zhangjin <[email protected]>

Regards,
Wu Zhangjin

On 8/31/10, Shmulik Ladkani <[email protected]> wrote:
> Fix VMLINUZ_LOAD_ADDRESS calculation to be based on the length of
> vmlinux.bin,
> the actual uncompressed kernel binary.
>
> Previously it was based on the length of KBUILD_IMAGE (the unstripped ELF
> vmlinux), which is bigger than vmlinux.bin.
> As a result, vmlinuz was loaded into a memory address higher then actually
> needed - a problem for small memory platforms.
>
> Signed-off-by: Shmulik Ladkani <[email protected]>
> ---
> diff --git a/arch/mips/boot/compressed/Makefile
> b/arch/mips/boot/compressed/Makefile
> index ed9bb70..5fd7f7a 100644
> --- a/arch/mips/boot/compressed/Makefile
> +++ b/arch/mips/boot/compressed/Makefile
> @@ -59,7 +59,7 @@ $(obj)/piggy.o: $(obj)/dummy.o $(obj)/vmlinux.bin.z FORCE
> hostprogs-y := calc_vmlinuz_load_addr
>
> VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \
> - $(objtree)/$(KBUILD_IMAGE) $(VMLINUX_LOAD_ADDRESS))
> + $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS))
>
> vmlinuzobjs-y += $(obj)/piggy.o
>
> --
> Shmulik Ladkani
>