Why do SD/eMMC operations fail in U-Boot socfpga_v2025.10 and earlier when acting on physical memory address ranges above 4GB in devices with DW‑MMC controller in DMA mode? - Why do SD/eMMC operations fail in U-Boot socfpga_v2025.10 and earlier when acting on physical memory address ranges above 4GB in devices with DW‑MMC controller in DMA mode?
Description Due to a limitation in the DW-MMC DMA engine to handle memory address ranges above the 32-bit address space (4GB), the SD/eMMC U-Boot operations acting on these memory ranges may fail, returning an error. The DMA mode was the default mode in the U-Boot socfpga_v2025.10 and earlier. An example of this problem can be observed in the Agilex™ 7 FPGA device when you try to read a file that is too large to be loaded in the low SDRAM memory region (0x00000000 - 0x80000000), so it needs to be loaded in the high region (0x2_80000000 - 0x4_00000000): SOCFPGA # mmc read 0x280000000 0 1000 MMC read: dev # 0, block # 0, count 4096 ... 0 blocks read: ERROR This problem affects all devices that integrate the DW-MMC controller, including Agilex™ 7 FPGA, Arria® 10 FPGA , N5X™, and Stratix® 10 FPGA devices. This problem is only observed when the DW-MMC controller is used in DMA mode. Resolution To workaround this problem, the DW-MMC controller needs to be configured in FIFO PIO mode through the device tree configuration as shown next: &mmc { fifo-mode; }; This problem will be fixed in a future release for all affected devices.
Custom Fields values:
['novalue']
Troubleshooting
14027065259
novalue
['novalue']
['FPGA Dev Tools Quartus® Prime Software Pro']
novalue
25.3.1
['Agilex™ 7 FPGAs and SoCs', 'Arria® 10 FPGAs and SoCs', 'Stratix® 10 FPGAs and SoCs']
['novalue']
['novalue']
['novalue'] - 2026-02-26
external_document