ipq40xx: meraki: define DTB load address

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 f1c80445bd)
This commit is contained in:
Robert Marko 2023-08-14 13:50:47 +02:00 committed by Hauke Mehrtens
parent 5cecf9aec8
commit 4956ff40c5

View File

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