On Fri, 2026-06-05 at 17:00 +0200, David Lechner wrote: > > 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. > > > > On Fri, Jun 5, 2026 at 4:53 PM <[email protected]> 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/[email protected]/ > > [2]: > https://lore.kernel.org/u-boot/[email protected]/ >

