ipq40xx: meraki: define DTB load address
authorRobert Marko <robimarko@gmail.com>
Mon, 14 Aug 2023 11:50:47 +0000 (13:50 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 15 Aug 2023 15:16:05 +0000 (17:16 +0200)
It seems that the Meraki bootloader does not respect the kernel ARM booting
specification[1] that requires that address where DTB is located needs to
be 64-bit aligned and often places the DTB on a non 64-bit aligned address
and then kernel fails to find the DTB magic and fails to boot.
Even worse, there is no prints until early printk is enabled and then its
visible that kernel is trying to find the ATAG-s as DTB was not found or
is invalid.

Unifi 6 devices had the same issue and it can be solved by passing the
load adress as part of the FIT image.
It seems that the vendor was aware of the issue and is always relocating
the DTB to 0x89000000, so lets just do the same.

Now that booting is reliable, reenable default images for the Meraki MR33
and MR74 devices.

Reviewed-by: Lech Perczak lech.perczak@gmail.com
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f1c80445bd7e3b2f7fc3e4c8136402b30834d4e9)

target/linux/ipq40xx/image/generic.mk

index 78fa22c2345a09ce1d5338bf310d59a1adfa9232..907558302c70ddc06a9c51631ad718e1337b090d 100644 (file)
@@ -762,13 +762,13 @@ define Device/meraki_common
        SOC := qcom-ipq4029
        BLOCKSIZE := 128k
        PAGESIZE := 2048
+       DEVICE_DTS_LOADADDR := 0x89000000
        DEVICE_PACKAGES := ath10k-firmware-qca9887-ct
 endef
 
 define Device/meraki_mr33
        $(call Device/meraki_common)
        DEVICE_MODEL := MR33
-       DEFAULT := n
 endef
 TARGET_DEVICES += meraki_mr33
 
@@ -776,7 +776,6 @@ define Device/meraki_mr74
        $(call Device/meraki_common)
        DEVICE_MODEL := MR74
        DEVICE_DTS_CONFIG := config@3
-       DEFAULT := n
 endef
 TARGET_DEVICES += meraki_mr74