On Wed, 3 Jun 2026 at 12:26, Ilias Apalodimas <[email protected]> wrote: > > On Wed, 3 Jun 2026 at 14:20, Peter Robinson <[email protected]> wrote: > > > > On Wed, 3 Jun 2026 at 12:12, Marek Vasut <[email protected]> wrote: > > > > > > On 6/3/26 1:02 PM, Peter Robinson wrote: > > > > On Sat, 30 May 2026 at 16:06, Marek Vasut <[email protected]> > > > > wrote: > > > >> > > > >> On 5/30/26 4:45 PM, Marek Vasut wrote: > > > >>> Some architectures can not DMA above 4 GiB boundary, > > > >>> limit available memory to memory below 4 GiB boundary. > > > >>> > > > >>> Signed-off-by: Marek Vasut <[email protected]> > > > >>> --- > > > >>> Cc: Andrew Goodbody <[email protected]> > > > >>> Cc: David Lechner <[email protected]> > > > >>> Cc: Heiko Schocher <[email protected]> > > > >>> Cc: Heinrich Schuchardt <[email protected]> > > > >>> Cc: Holger Brunck <[email protected]> > > > >>> Cc: Ilias Apalodimas <[email protected]> > > > >>> Cc: Peter Robinson <[email protected]> > > > >>> Cc: Quentin Schulz <[email protected]> > > > >>> Cc: Simon Glass <[email protected]> > > > >>> Cc: Sughosh Ganu <[email protected]> > > > >>> Cc: Tom Rini <[email protected]> > > > >>> Cc: [email protected] > > > >>> --- > > > >>> lib/Kconfig | 8 ++++++++ > > > >>> lib/lmb.c | 20 +++++++++++++++++++- > > > >>> 2 files changed, 27 insertions(+), 1 deletion(-) > > > >>> > > > >>> diff --git a/lib/Kconfig b/lib/Kconfig > > > >>> index 77ebc79e1db..29911068a69 100644 > > > >>> --- a/lib/Kconfig > > > >>> +++ b/lib/Kconfig > > > >>> @@ -1295,6 +1295,14 @@ config SPL_LMB_ARCH_MEM_MAP > > > >>> memory map. Enable this config in such scenarios which allow > > > >>> architectures and boards to define their own memory map. > > > >>> > > > >>> +config LMB_LIMIT_DMA_BELOW_4G > > > >>> + bool > > > >>> + depends on LMB > > > >>> + default y if ARCH_BCM283X > > > >>> + help > > > >>> + Some architectures can not DMA above 4 GiB boundary, > > > >>> + limit available memory to memory below 4 GiB boundary. > > > >>> + > > > >>> config PHANDLE_CHECK_SEQ > > > >>> bool "Enable phandle check while getting sequence number" > > > >>> help > > > >>> diff --git a/lib/lmb.c b/lib/lmb.c > > > >>> index 8f12c6ad8e5..a8a988eedc0 100644 > > > >>> --- a/lib/lmb.c > > > >>> +++ b/lib/lmb.c > > > >>> @@ -611,6 +611,7 @@ static __maybe_unused void > > > >>> lmb_reserve_common_spl(void) > > > >>> static void lmb_add_memory(void) > > > >>> { > > > >>> int i; > > > >>> + phys_addr_t bank_end; > > > >>> phys_size_t size; > > > >>> u64 ram_top = gd->ram_top; > > > >>> struct bd_info *bd = gd->bd; > > > >>> @@ -625,8 +626,25 @@ static void lmb_add_memory(void) > > > >>> for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { > > > >>> size = bd->bi_dram[i].size; > > > >>> > > > >>> - if (size) > > > >>> + if (size) { > > > >>> lmb_add(bd->bi_dram[i].start, size); > > > >>> + if (IS_ENABLED(CONFIG_LMB_LIMIT_DMA_BELOW_4G)) > > > >> > > > >> This conditional should be inverted. > > > >> > > > >> Peter Robinson , can you test this change on RPi ? > > > > > > > > That doesn't fix the problem for me on a RPi4 4GB or a RPi5 8Gb. > > > Did you invert the if (IS_ENABLED...) conditional ? > > > > > > Was CONFIG_LMB_LIMIT_DMA_BELOW_4G enabled in your config (maybe the > > > Kconfig entry "default y" part needs to be tweaked to cover these > > > devices?) > > > > > > If both conditions are met, that should behave like the old code. > > > > I dropped my revert and applied the patch, checked the new config > > option was in the generated .config (I mean you could test that with a > > "make rpi_arm64_defconfig" and checking the output). > > You need to invert the logic of IS_ENABLED() for this patch to work. > Marek obviously missed a !
Ah, I missed that bit in grabbing the patch, it seems to work on the RPi4 4Gb, not tested a RPi5 yet.

