[PATCH] arm: mediatek: mt7988: restore full DRAM bank reporting
David Lechner
dlechner at baylibre.com
Fri Jun 5 17:00:42 CEST 2026
> On Fri, Jun 5, 2026 at 4:30 PM David Lechner <dlechner at baylibre.com> wrote:
> >
> > 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); }
>
> 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.
>
On Fri, Jun 5, 2026 at 4:53 PM <rmandrad at gmail.com> wrote:
>
> 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()")
I just saw [1] that has a new config option to address the DMA address
limit and [2] that renames the config option. [1] has already been
applied to master, so perhaps we could still drop CFG_MAX_MEM_MAPPED
and use this new option instead? Otherwise, yes, I will consider the
revert.
[1]: https://lore.kernel.org/u-boot/20260603141814.12672-1-marek.vasut+renesas@mailbox.org/
[2]: https://lore.kernel.org/u-boot/20260604173330.8586-1-marek.vasut+renesas@mailbox.org/
More information about the U-Boot
mailing list