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

Weijie Gao weijie.gao at mediatek.com
Wed Jun 10 03:05:39 CEST 2026


On Fri, 2026-06-05 at 17:00 +0200, David Lechner wrote:
> > 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.

The NETSYS DMA of all filogic platform chips can only use DRAM below
4GiB and that's why we added CFG_MAX_MEM_MAPPED to limit the usable
memory in U-Boot.

> 
> [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