[PATCH] lmb: Add the Rockchip architecture as requiring DMA below 4G
Peter Robinson
pbrobinson at gmail.com
Sat Jun 13 20:17:41 CEST 2026
On Sat, 13 Jun 2026 at 18:43, Heiko Stuebner <heiko at sntech.de> wrote:
>
> Loading EFI parts like a Debian-Installer on Rockchip SoCs creates
> interesting results, in that on some boards the Grub bootloader can't
> find any partitions on a USB-Stick, or loading a kernel from Grub spews
> EHCI fail timeout STS_IAA set
> messages before failing and on others the loading something like efivars
> from an eMMC creates read errors and making the MMC vanish from U-Boot.
>
> This only affected boards with at least 4GB of RAM.
>
> These boards have at least 256MB of memory placed above the actual 4GB
> address space (due to the iomem being in between) and while kernel,
> initramfs, dt are generally loaded to predefined addresses, additional
> EFI parts (efivars, etc) are likely just loaded "somewhere" and it seems
> this always landed in that higher up memory part.
>
> Also in the Linux-kernel peripherals like EMMC, USB, etc already run
> with a 32bit dma-mask set.
>
> So far, I've seen this on RK3568 and RK3588, but as the same peripherals
> are used on most Rockchip SoCs, it makes sense to limit this on all.
>
> So add ARCH_ROCKCHIP to the default-y list of LMB_LIMIT_DMA_BELOW_RAM_TOP.
>
> Signed-off-by: Heiko Stuebner <heiko at sntech.de>
Reviewed-by: Peter Robinson <pbrobinson at gmail.com>
> ---
> lib/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/Kconfig b/lib/Kconfig
> index cf13ac1bdad..9e0f0ad7d06 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -1298,7 +1298,7 @@ config SPL_LMB_ARCH_MEM_MAP
> config LMB_LIMIT_DMA_BELOW_RAM_TOP
> bool
> depends on LMB
> - default y if ARCH_BCM283X
> + default y if ARCH_BCM283X || ARCH_ROCKCHIP
> help
> Some architectures can not DMA above ram_top boundary,
> which is after 4 GiB or 32-bit boundary too. Limit the
> --
> 2.47.3
>
More information about the U-Boot
mailing list