On 6/12/26 7:52 PM, Sam Edwards wrote:
On Fri, Jun 12, 2026 at 10:32 AM David Lechner <[email protected]> wrote:Add 64-bit Mediatek ARM SoCs to the default y setting of LMB_LIMIT_DMA_BELOW_RAM_TOP. These platforms have a 4GiB DMA limit, e.g. for the SD/MMC controller.Hi David, Is the 4GiB DMA limit due to the interconnect itself or are there merely a few blocks that can't speak 64-bit?
It is a mix of both, depending on the SoC. Old 32bit IPs are reused in 64bit SoCs, sometimes old 32bit interconnect is reused in 64bit SoCs.
If the latter, I think it'd be clearer to associate the setting with the culprit driver(s) rather than the whole platform, so that it can be removed if/when those drivers begin to use bounce buffers. Marek: I fear that a lot of things are going to depend on this config option being 'true' in the very near future, and with a lot of still-unidentified drivers with bugs unveiled by this LMB change (e.g. I spent much of last weekend chasing down a failure on RK3588 because U-Boot's SDHCI-SDMA impl. assumes 32-bit addresses) would it be better to make this setting default true for 2026.07 to buy us more time to find those cases?
We could do either that, or add more SoCs to this list. What do others think ?
I'm not very familiar with the rationale behind the
original change ("lmb: Reinstate access to memory above ram_top") but
it sounds like only some users need that access currently?
With LMB_LIMIT_DMA_BELOW_RAM_TOP disabled, TFTP above 4 GiB is not allowed, LMB will block that. If you have a lot of DRAM above 4 GiB and you want to TFTP large payloads there, it won't work, which is unfortunate (perfectly valid DRAM is wasted).
-- Best regards, Marek Vasut

