[PATCH] arm: mediatek: mt7988: restore full DRAM bank reporting

David Lechner dlechner at baylibre.com
Fri Jun 5 16:30:46 CEST 2026


On Fri, Jun 5, 2026 at 3:07 PM <rmandrad at gmail.com> wrote:
> > On Tue, Jun 2, 2026 at 6:24 PM Rudy Andram <rmandrad at gmail.com> 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);
}

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.


More information about the U-Boot mailing list