ar71xx: Ubiquiti Airmax M: add relocate-kernel to invalidate cache
authorMatthias Schiffer <mschiffer@universe-factory.net>
Thu, 26 Apr 2018 18:04:48 +0000 (20:04 +0200)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Thu, 26 Apr 2018 18:42:42 +0000 (20:42 +0200)
Some Ubiquiti U-boot versions, in particular the "U-Boot 1.1.4.2-s956
(Jun 10 2015 - 10:54:50)" found with AirOS 5.6, do not correctly flush the
caches for the whole kernel address range after decompressing the kernel
image, leading to hard to debug boot failures, depending on kernel version
and configuration.

As a workaround, prepend the relocate-kernels loader, which will invalidate
the caches after moving the kernel to the correct load address.

Reported-by: Andreas Ziegler <dev@andreas-ziegler.de>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
target/linux/ar71xx/image/ubnt.mk

index 65ed708..899d5d0 100644 (file)
@@ -47,6 +47,7 @@ define Device/ubnt-xm
   UBNT_TYPE := XM
   UBNT_BOARD := XM
   UBNT_CHIP := ar7240
+  KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma | uImage lzma
   IMAGES := sysupgrade.bin factory.bin
   IMAGE/factory.bin = $$(IMAGE/sysupgrade.bin) | mkubntimage-split
   IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)