On Wed, Oct 14, 2026 at 10:38:12PM +0200, Andreas Henriksson wrote:
> On Wed, Oct 14, 2026 at 11:49:57AM -0600, Tom Rini wrote:
> > On Wed, Oct 14, 2026 at 09:46:44AM +0200, Andreas Henriksson wrote:
> > > On boards with >3GiB ram, we can end up with transfers above 4GiB
> > > which is not allowed by SDHC driver.
> > >
> > > fsl_esdhc_imx.c: esdhc_setup_dma():
> > > if (upper_32_bits(priv->dma_addr))
> > > printf("Cannot use 64 bit addresses with SDMA\n");
> > >
> > > Tested on Toradex Verdin i.MX8M Plus SoM, where bootefi would not work
> > > (with systemd-boot as efi application) and print the above message.
> >
> > Is this a driver limitation which should be fixed, or a hardware
> > limitation that needs to be enforced by this Kconfig option?
>
> As far as I understand it, this is a limitation in the (S)DMA design
> of the SoC.
See also commit e27bddff4b97598baaa7186196ebfb28075f702c which contains:
/*
* Some IPs have their accessible address space restricted by
* the interconnect. Let's make sure U-Boot only ever uses the
* space below the 4G address boundary (which is 3GiB big),
* even when the effective available memory is bigger.
*/
(This is only in arch/arm/mach-imx/imx8m/soc.c and none of the
other arch/arm/mach-imx/imx*/soc.c has the board_get_usable_ram_top
function.)
Regards,
Andreas Henriksson
https://git.u-boot-project.org/u-boot/u-boot/-/commit/e27bddff4b97598baaa7186196ebfb28075f702c