apm821xx: add size check for initramfs kernel for the Meraki MR24
authorChristian Lamparter <chunkeey@googlemail.com>
Fri, 2 Sep 2016 20:35:03 +0000 (22:35 +0200)
committerJohn Crispin <john@phrozen.org>
Mon, 5 Sep 2016 05:28:52 +0000 (07:28 +0200)
Russell Senior reported an issue with the MR24 initramfs kernels:
> ## Booting kernel from Legacy Image at 00c10000 ...
>   Image Name:   POWERPC LEDE Linux-4.4.19
>   Created:      2016-08-31  11:57:05 UTC
>   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>   Data Size:    2155723 Bytes = 2.1 MiB
>   Load Address: 00000000
>   Entry Point:  00000000
>   Verifying Checksum ... OK
>Wrong Ramdisk Image Format
>Ramdisk image is corrupt or invalid

For the MR24, the kernel is uploaded to 0x10000. The ramdisk starts
at 0x200000. This leaves the kernel with just 0x1f0000 bytes = 1984kb.
This patch adds a size check so the image creation script will abort
instead of producing a unbootable initramfs image. A separate patch
"apm821xx: Fix initramfs image for the Meraki MR24" which fixed the
reported issue was submitted earlier.

Cc: Russell Senior <russell@personaltelco.net>
Cc: Chris Blake <chrisrblake93@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/image/Makefile

index 8edd5780f0a8bb58980ae8b641b493c967cb6e53..f151543b9c05f8b33c05c54e44cfb7ce6d1b88bf 100644 (file)
@@ -72,10 +72,13 @@ define Device/mr24
   BLOCKSIZE := 64512
   IMAGES := sysupgrade.tar
   DTB_SIZE := 64512
-  KERNEL_SIZE := 2048k
+  KERNEL_SIZE := 1984k
   IMAGE_SIZE := 8191k
   KERNEL := kernel-bin | lzma | uImage lzma | MerakiAdd-dtb | MerakiNAND
-  KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux | lzma | uImage lzma | MerakiAdd-dtb | pad-to 2047k | MerakiAdd-initramfs | MerakiNAND
+  KERNEL_INITRAMFS := copy-file $(KDIR)/vmlinux | lzma | uImage lzma | \
+                     check-size $$(KERNEL_SIZE) | \
+                     MerakiAdd-dtb | pad-to 2047k | MerakiAdd-initramfs | \
+                     MerakiNAND
   IMAGE/sysupgrade.tar := sysupgrade-tar
 endef
 TARGET_DEVICES += mr24