On 3/9/25 03:05, Marek Vasut wrote: > On STM32MP15xx with 1 GiB of DRAM, the gd->ram_top becomes 0, > because DRAM base 0xc0000000 + DRAM size 0x40000000 leads to > gd->ram_top overflow which resets it to 0. Handle this special > case simply by checking for gd->ram_top being zero, and if it > is, assume there is no addr >= gd->ram_top . > > This fixes boot hang on STM32MP15xx with 1 GiB of DRAM. > > Fixes: 25fb58e88aba ("ARM: stm32mp: Fix dram_bank_mmu_setup() for LMB located > above ram_top") > Signed-off-by: Marek Vasut <ma...@denx.de> > --- > Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> > Cc: Lukasz Majewski <lu...@denx.de> > Cc: Marek Vasut <ma...@denx.de> > Cc: Patrice Chotard <patrice.chot...@foss.st.com> > Cc: Patrick Delaunay <patrick.delau...@foss.st.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Sughosh Ganu <sughosh.g...@linaro.org> > Cc: Tom Rini <tr...@konsulko.com> > Cc: u-boot@lists.denx.de > Cc: uboot-st...@st-md-mailman.stormreply.com > --- > arch/arm/mach-stm32mp/stm32mp1/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/mach-stm32mp/stm32mp1/cpu.c > b/arch/arm/mach-stm32mp/stm32mp1/cpu.c > index cb1b84c9af9..d5eaf6711b6 100644 > --- a/arch/arm/mach-stm32mp/stm32mp1/cpu.c > +++ b/arch/arm/mach-stm32mp/stm32mp1/cpu.c > @@ -82,7 +82,7 @@ void dram_bank_mmu_setup(int bank) > option = DCACHE_DEFAULT_OPTION; > if (use_lmb && > (lmb_is_reserved_flags(i << MMU_SECTION_SHIFT, LMB_NOMAP) || > - addr >= gd->ram_top) > + (gd->ram_top && addr >= gd->ram_top)) > ) > option = 0; /* INVALID ENTRY in TLB */ > set_section_dcache(i, option); Hi Marek Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com> Thanks Patrice