diff mbox series

[OpenWrt-Devel] ath79: image: fix initramfs for safeloader devices

Message ID 20200619093215.28273-1-ynezz@true.cz
State Accepted
Delegated to: Petr Štetiar
Headers show
Series [OpenWrt-Devel] ath79: image: fix initramfs for safeloader devices | expand

Commit Message

Petr Štetiar June 19, 2020, 9:32 a.m. UTC
Currently it's not possible to tftpboot initramfs image on archer-c7-v5
as the image contains tplink-v1-header which leads to:

 ath> bootm
 ## Booting image at 81000000 ...
 Bad Magic Number

as U-Boot expect uImage wrapped image. This is caused by following
inheritance issue:

  define Device/Init
    KERNEL_INITRAMFS = $$(KERNEL)

  define Device/tplink-v1
    KERNEL := kernel-bin | append-dtb | lzma
    KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v1-header

  define Device/tplink-safeloader
    $(Device/tplink-v1)

  define Device/tplink-safeloader-uimage
    $(Device/tplink-safeloader)
    KERNEL := kernel-bin | append-dtb | lzma | uImageArcher lzma

  define Device/tplink_archer-c7-v5
    $(Device/tplink-safeloader-uimage)

where tplink-v1 defines KERNEL_INITRAMFS with tplink-v1-header and it's
then used by all devices inheriting from tplink-safeloader. Fix this by
overriding KERNEL_INITRAMFS to KERNEL variable again.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
 target/linux/ath79/image/common-tp-link.mk | 3 +++
 1 file changed, 3 insertions(+)

Comments

Adrian Schmutzler June 19, 2020, 9:36 a.m. UTC | #1
Hi Petr,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of Petr Štetiar
> Sent: Freitag, 19. Juni 2020 11:32
> To: openwrt-devel@lists.openwrt.org
> Cc: Petr Štetiar <ynezz@true.cz>
> Subject: [OpenWrt-Devel] [PATCH] ath79: image: fix initramfs for safeloader
> devices
> 
> Currently it's not possible to tftpboot initramfs image on archer-c7-v5 as the
> image contains tplink-v1-header which leads to:
> 
>  ath> bootm
>  ## Booting image at 81000000 ...
>  Bad Magic Number
> 
> as U-Boot expect uImage wrapped image. This is caused by following
> inheritance issue:
> 
>   define Device/Init
>     KERNEL_INITRAMFS = $$(KERNEL)
> 
>   define Device/tplink-v1
>     KERNEL := kernel-bin | append-dtb | lzma
>     KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v1-header
> 
>   define Device/tplink-safeloader
>     $(Device/tplink-v1)
> 
>   define Device/tplink-safeloader-uimage
>     $(Device/tplink-safeloader)
>     KERNEL := kernel-bin | append-dtb | lzma | uImageArcher lzma
> 
>   define Device/tplink_archer-c7-v5
>     $(Device/tplink-safeloader-uimage)
> 
> where tplink-v1 defines KERNEL_INITRAMFS with tplink-v1-header and it's
> then used by all devices inheriting from tplink-safeloader. Fix this by
> overriding KERNEL_INITRAMFS to KERNEL variable again.

So, I wonder whether that's specific to the C7 v5 then or whether it would apply to the other tplink-safeloader-uimage devices as well?

Best

Adrian

> 
> Signed-off-by: Petr Štetiar <ynezz@true.cz>
> ---
>  target/linux/ath79/image/common-tp-link.mk | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/target/linux/ath79/image/common-tp-link.mk
> b/target/linux/ath79/image/common-tp-link.mk
> index 328eaaed3056..81a557df4871 100644
> --- a/target/linux/ath79/image/common-tp-link.mk
> +++ b/target/linux/ath79/image/common-tp-link.mk
> @@ -78,6 +78,7 @@ define Device/tplink-safeloader
>    $(Device/tplink-v1)
>    TPLINK_HWREV := 0x0
>    KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
> +  KERNEL_INITRAMFS := $$(KERNEL)
>    IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
>  	append-metadata | check-size
>    IMAGE/factory.bin := append-rootfs | tplink-safeloader factory @@ -86,6
> +87,7 @@ endef  define Device/tplink-safeloader-uimage
>    $(Device/tplink-safeloader)
>    KERNEL := kernel-bin | append-dtb | lzma | uImageArcher lzma
> +  KERNEL_INITRAMFS := $$(KERNEL)
>  endef
> 
>  define Device/tplink-safeloader-okli
> @@ -96,4 +98,5 @@ define Device/tplink-safeloader-okli
>    COMPILE/loader-$(1).elf := loader-okli-compile
>    KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \
>  	loader-okli $(1) 12288
> +  KERNEL_INITRAMFS := $$(KERNEL)
>  endef
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Petr Štetiar June 19, 2020, 9:42 a.m. UTC | #2
mail@adrianschmutzler.de <mail@adrianschmutzler.de> [2020-06-19 11:36:44]:

Hi,

> So, I wonder whether that's specific to the C7 v5 then or whether it would
> apply to the other tplink-safeloader-uimage devices as well?

nope, archer-c7-v5 is just a device I've found it on. It applies to all
safeloader devices which inherit from tplink-v1 and define custom kernel image
commands.

-- ynezz
diff mbox series

Patch

diff --git a/target/linux/ath79/image/common-tp-link.mk b/target/linux/ath79/image/common-tp-link.mk
index 328eaaed3056..81a557df4871 100644
--- a/target/linux/ath79/image/common-tp-link.mk
+++ b/target/linux/ath79/image/common-tp-link.mk
@@ -78,6 +78,7 @@  define Device/tplink-safeloader
   $(Device/tplink-v1)
   TPLINK_HWREV := 0x0
   KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
+  KERNEL_INITRAMFS := $$(KERNEL)
   IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
 	append-metadata | check-size
   IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
@@ -86,6 +87,7 @@  endef
 define Device/tplink-safeloader-uimage
   $(Device/tplink-safeloader)
   KERNEL := kernel-bin | append-dtb | lzma | uImageArcher lzma
+  KERNEL_INITRAMFS := $$(KERNEL)
 endef
 
 define Device/tplink-safeloader-okli
@@ -96,4 +98,5 @@  define Device/tplink-safeloader-okli
   COMPILE/loader-$(1).elf := loader-okli-compile
   KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \
 	loader-okli $(1) 12288
+  KERNEL_INITRAMFS := $$(KERNEL)
 endef