[U-Boot] [PATCH] bouncebuf: add feature to support buffer only available in DRAM
Simon Goldschmidt
simon.k.r.goldschmidt at gmail.com
Tue May 7 14:10:01 UTC 2019
On Tue, May 7, 2019 at 3:53 PM Kever Yang <kever.yang at rock-chips.com> 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.
>
> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
> ---
>
> 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
That again seems misplaced here. Why do we need MMC
things in such a central file?
Regards,
Simon
> + 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
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
More information about the U-Boot
mailing list