On 07.05.19 15:51, Kever Yang wrote: > Some DMA which inside peripheral controller can only access space in > DRAM area, the target address outside DRAM is not available. > eg. Rockchip MMC contrller's internal DMA can only access DRAM area. > > Add Kconfig option and driver for people who need it.
Hi Kever, I've addressed this in a different way: https://lists.denx.de/pipermail/u-boot/2019-May/368307.html https://lists.denx.de/pipermail/u-boot/2019-May/368305.html https://lists.denx.de/pipermail/u-boot/2019-May/368306.html BR Christoph > > Signed-off-by: Kever Yang <[email protected]> > --- > > common/bouncebuf.c | 9 +++++++++ > drivers/mmc/Kconfig | 6 ++++++ > 2 files changed, 15 insertions(+) > > diff --git a/common/bouncebuf.c b/common/bouncebuf.c > index a7098e2caf..7ff2f488a4 100644 > --- a/common/bouncebuf.c > +++ b/common/bouncebuf.c > @@ -10,6 +10,8 @@ > #include <errno.h> > #include <bouncebuf.h> > > +DECLARE_GLOBAL_DATA_PTR; > + > static int addr_aligned(struct bounce_buffer *state) > { > const ulong align_mask = ARCH_DMA_MINALIGN - 1; > @@ -26,6 +28,13 @@ static int addr_aligned(struct bounce_buffer *state) > return 0; > } > > +#ifdef MMC_BUF_IN_DRAM > + if (((ulong)state->user_buffer < CONFIG_SYS_SDRAM_BASE) || > + ((ulong)state->user_buffer > gd->ram_top)) { > + debug("Not support buffer address %p\n", state->user_buffer); > + return 0; > + } > +#endif > /* Aligned */ > return 1; > } > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig > index c23299ea96..e852ee6175 100644 > --- a/drivers/mmc/Kconfig > +++ b/drivers/mmc/Kconfig > @@ -671,6 +671,12 @@ config FSL_ESDHC > This selects support for the eSDHC (enhanced secure digital host > controller) found on numerous Freescale/NXP SoCs. > > +config MMC_BUF_IN_DRAM > + bool "Only buffer in DRAM is available" > + help > + This selects support those controller whose internal DMA can only > + access SDRAM spaces and other spaces are not available. > + > endmenu > > config SYS_FSL_ERRATUM_ESDHC111 > _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

