All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@nxp.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] bouncebuf: add feature to support buffer only available in DRAM
Date: Wed, 8 May 2019 05:26:47 +0000	[thread overview]
Message-ID: <AM0PR04MB448149F8BA077A1009407D1088320@AM0PR04MB4481.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20190507135122.29680-1-kever.yang@rock-chips.com>

Hi Kever,

> Subject: [PATCH] bouncebuf: add feature to support buffer only available in
> DRAM
> 
> 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@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
> +	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.
> +

I think introduce a new GEN_BB_FORCE flags might be better, no need to
introduce new kconfig entry, and it will be easier for others to use, if
there are other controllers has same limitation.

Regards,
Peng.

>  endmenu
> 
>  config SYS_FSL_ERRATUM_ESDHC111
> --
> 2.20.1

  parent reply	other threads:[~2019-05-08  5:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-07 13:51 [U-Boot] [PATCH] bouncebuf: add feature to support buffer only available in DRAM Kever Yang
2019-05-07 14:10 ` Simon Goldschmidt
2019-05-07 14:12 ` Christoph Müllner
2019-05-08  5:26 ` Peng Fan [this message]
2019-05-08 10:52   ` Marek Vasut
2019-05-08 10:59     ` Christoph Müllner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM0PR04MB448149F8BA077A1009407D1088320@AM0PR04MB4481.eurprd04.prod.outlook.com \
    --to=peng.fan@nxp.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.