On 4/3/20 10:28 AM, Patrick Delaunay wrote: > Add protection in dram_bank_mmu_setup() to avoid access to bd->bi_dram > before relocation. > > This patch allow to use the generic weak function dram_bank_mmu_setup > to activate the MMU and the data cache in SPL or in U-Boot before > relocation, when bd->bi_dram is not yet initialized. > > In this cases, the MMU must be initialized explicitly with > mmu_set_region_dcache_behaviour function. > > Signed-off-by: Patrick Delaunay <patrick.delau...@st.com> > --- > > arch/arm/lib/cache-cp15.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c > index f8d20960da..54509f11c3 100644 > --- a/arch/arm/lib/cache-cp15.c > +++ b/arch/arm/lib/cache-cp15.c > @@ -91,6 +91,10 @@ __weak void dram_bank_mmu_setup(int bank) > bd_t *bd = gd->bd; > int i; > > + /* bd->bi_dram is available only after relocation */ > + if ((gd->flags & GD_FLG_RELOC) == 0) > + return;
Why not just set the bd->bi_dram correctly before this is called ?