Was just about to reply on that... happy to drop this patch and let you work on 
a solution just thought to report my findings but would suggest in the meantime 
to revert 
bddd6bbef3dc ("arm: mediatek: mt7988: drop dram_init_banksize()")

-----Original Message-----
From: David Lechner <[email protected]> 
Sent: 05 June 2026 15:48
To: [email protected]
Cc: [email protected]; [email protected]; [email protected]; 
[email protected]; [email protected]; 
[email protected]; [email protected]; 
[email protected]; [email protected]
Subject: Re: [PATCH] arm: mediatek: mt7988: restore full DRAM bank reporting

On Fri, Jun 5, 2026 at 4:30 PM David Lechner <[email protected]> wrote:
>
> On Fri, Jun 5, 2026 at 3:07 PM <[email protected]> wrote:
> > > On Tue, Jun 2, 2026 at 6:24 PM Rudy Andram <[email protected]> wrote:
> > > >
> > > > MT7988 detects the full installed DRAM in dram_init(), but after 
> > > > commit bddd6bbef3dc ("arm: mediatek: mt7988: drop
> > > > dram_init_banksize()") it fell back to the generic dram_init_banksize() 
> > > > implementation.
> > > >
> > > > That generic path populates bd->bi_dram[0].size with 
> > > > get_effective_memsize(), which is capped by CFG_MAX_MEM_MAPPED. 
> > > > On
> > > > MT7988 this limits the exported DRAM bank to 3 GiB even when 8 
> > > > GiB is installed.
> > >
> > > Can we just remove the #define CFG_MAX_MEM_MAPPED (and the header file 
> > > that contains it)? Or is it used somewhere else?
> > >
> >
> > Not the header file as   TARGET_MT7988 sets SYS_CONFIG_NAME="mt7988" in 
> > arch/arm/mach-mediatek/Kconfig
>
> We could drop that config too since the header will be empty.
>
> >
> > In the mt7988 I don't see CFG_MAX_MEM_MAPPED used elsewhere than 
> > just in common/memsize.c where it limits get_effective_memsize()
> >
> > Unsetting/removing CFG_MAX_MEM_MAPPED would take u-boot above 4gb... 
> > Some MediaTek ARM64 ports may keep U-Boot below 4 GiB because 
> > peripherals such as MMC need DMA buffers below 4 GiB ... so, it may 
> > work on my setup but not others. Also, not an expert on u-boot  I 
> > would suggest for others to comment/review
> >
>
> What I've done on the other MediaTek platforms for now is add this to 
> init.c to take care of the 4GB DMA limit.
>
> phys_size_t get_effective_memsize(void) {
>        /*
>         * Limit gd->ram_top not exceeding SZ_4G. Because some peripherals like
>         * MMC requires DMA buffer allocated below SZ_4G.
>         */
>         return min(SZ_4G - gd->ram_base, gd->ram_size); }

Meh... I've just realized that this probably doesn't fix the issue as it does 
basically the same thing as CFG_MAX_MEM_MAPPED. I will have to come back to 
this next week when I have more time.

>
> There has been some ongoing discussion of a better way to handle this 
> in general though, the last few weeks. I need to check the mailing 
> list to see if any progress was made since then.
>
> If there isn't something yet, I would still propose to drop 
> CFG_MAX_MEM_MAPPED and add this function so that everything is the 
> same.

Reply via email to