On Fri, 17 Jun 2016 14:07:39 +0200 Jonas Gorski <jogo@xxxxxxxxxxx> wrote: > Instead of rewriting the arguments, just move the appended dtb to where > the decompressed kernel expects it. This eliminates the need for special > casing vmlinuz.bin appended dtb files. > > Signed-off-by: Jonas Gorski <jogo@xxxxxxxxxxx> > --- > arch/mips/Kconfig | 22 ++-------------------- > arch/mips/boot/compressed/Makefile | 1 + > arch/mips/boot/compressed/decompress.c | 21 +++++++++++++++++++++ > arch/mips/boot/compressed/head.S | 16 ---------------- > 4 files changed, 24 insertions(+), 36 deletions(-) > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ac91939..0d0f71e 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -2885,10 +2885,10 @@ choice > the documented boot protocol using a device tree. > > config MIPS_RAW_APPENDED_DTB > - bool "vmlinux.bin" > + bool "vmlinux.bin or vmlinuz.bin" > help > With this option, the boot code will look for a device tree binary > - DTB) appended to raw vmlinux.bin (without decompressor). > + DTB) appended to raw vmlinux.bin or vmlinuz.bin. > (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb). > > This is meant as a backward compatibility convenience for those > @@ -2900,24 +2900,6 @@ choice > look like a DTB header after a reboot if no actual DTB is appended > to vmlinux.bin. Do not leave this option active in a production kernel > if you don't intend to always append a DTB. > - > - config MIPS_ZBOOT_APPENDED_DTB > - bool "vmlinuz.bin" > - depends on SYS_SUPPORTS_ZBOOT > - help > - With this option, the boot code will look for a device tree binary > - DTB) appended to raw vmlinuz.bin (with decompressor). > - (e.g. cat vmlinuz.bin <filename>.dtb > vmlinuz_w_dtb). > - > - This is meant as a backward compatibility convenience for those > - systems with a bootloader that can't be upgraded to accommodate > - the documented boot protocol using a device tree. > - > - Beware that there is very little in terms of protection against > - this option being confused by leftover garbage in memory that might > - look like a DTB header after a reboot if no actual DTB is appended > - to vmlinuz.bin. Do not leave this option active in a production kernel > - if you don't intend to always append a DTB. > endchoice > > choice > diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile > index 90aca95..f31ec89 100644 > --- a/arch/mips/boot/compressed/Makefile > +++ b/arch/mips/boot/compressed/Makefile > @@ -29,6 +29,7 @@ KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \ > -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \ > -DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS) > > + Could you please remote this extra empty line? > # decompressor objects (linked with vmlinuz) > vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o > > diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c > index 080cd53..e18ab3e 100644 > --- a/arch/mips/boot/compressed/decompress.c > +++ b/arch/mips/boot/compressed/decompress.c > @@ -36,6 +36,12 @@ extern void puthex(unsigned long long val); > #define puthex(val) do {} while (0) > #endif > > +#ifdef CONFIG_MIPS_RAW_APPENDED_DTB Do we really need this '#ifdef' here? > +#include <linux/libfdt.h> > + > +extern char __appended_dtb[]; > +#endif > + -- Best regards, Antony Pavlov