[U-Boot] [PATCH v3 1/5] Kconfig: Migrate BOUNCE_BUFFER

Alexey Brodkin alexey.brodkin at synopsys.com
Mon Dec 3 11:17:34 UTC 2018


Hi Philipp,

On Fri, 2018-11-30 at 22:13 +0100, Philipp Tomsich wrote:
> The bounce buffer is used by a few drivers (most of the MMC drivers)
> to overcome limitations in their respective DMA implementation.
> 
> This moves the configuration to Kconfig and makes it user-selectable
> (even though it will be a required feature to make those drivers
> work): the expected usage is for drivers depending on this to 'select'
> it unconditionally from their respective Kconfig (see follow-up
> patches).
> 
> This commit includes a full migration using moveconfig.py to ensure
> that each commit compiles; successive commits will introduce
> individual dependencies for drivers and then undo some of the changes
> to the defconfig files.
> 
> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> 
> ---

[snip]

> diff --git a/common/Kconfig b/common/Kconfig
> index 57bd16d..5bbd00a 100644
> --- a/common/Kconfig
> +++ b/common/Kconfig
> @@ -645,6 +645,17 @@ config DISPLAY_BOARDINFO_LATE
>  	  the relocation phase. The board function checkboard() is called to do
>  	  this.
>  
> +config BOUNCE_BUFFER
> +	bool "Include bounce buffer API"
> +	help
> +	  Some peripherals support DMA from a subset of physically
> +	  addressable memory only.  To support such peripherals, the
> +	  bounce buffer API uses a temporary buffer: it copies data
> +	  to/from DMA regions while managing cache operations.
> +
> +	  A second possible use of bounce buffers is their ability to
> +	  provide aligned buffers for DMA operations.
> +

Here you only add BOUNCE_BUFFER option and yet it is not dependent
on anything, right?

> diff --git a/include/configs/axs10x.h b/include/configs/axs10x.h
> index 1b2966f..8febe09 100644
> --- a/include/configs/axs10x.h
> +++ b/include/configs/axs10x.h
> @@ -85,6 +85,5 @@
>  /*
>   * Misc utility configuration
>   */
> -#define CONFIG_BOUNCE_BUFFER
>  
>  #endif /* _CONFIG_AXS10X_H_ */

...

> diff --git a/include/configs/emsdp.h b/include/configs/emsdp.h
> index 385d59e..a77f262 100644
> --- a/include/configs/emsdp.h
> +++ b/include/configs/emsdp.h
> @@ -19,7 +19,6 @@
>  #define CONFIG_SYS_LOAD_ADDR		CONFIG_SYS_SDRAM_BASE
>  
>  /* Required by DW MMC driver */
> -#define CONFIG_BOUNCE_BUFFER
>  
>  /*
>   * Environment

...
 
> diff --git a/include/configs/hsdk.h b/include/configs/hsdk.h
> index cdf4fdd..bafd8d0 100644
> --- a/include/configs/hsdk.h
> +++ b/include/configs/hsdk.h
> @@ -119,7 +119,6 @@ setenv core_iccm_3 0x6; setenv core_dccm_3 0x6;\0"
>  /*
>   * Misc utility configuration
>   */
> -#define CONFIG_BOUNCE_BUFFER
>  
>  /* Cli configuration */
>  #define CONFIG_SYS_CBSIZE		SZ_2K
> diff --git a/include/configs/iot_devkit.h b/include/configs/iot_devkit.h
> index 4ffe114..1f40d61 100644
> --- a/include/configs/iot_devkit.h
> +++ b/include/configs/iot_devkit.h
> @@ -72,7 +72,6 @@
>  					CONFIG_ENV_SIZE
>  
>  /* Required by DW MMC driver */
> -#define CONFIG_BOUNCE_BUFFER
>  
>  /*
>   * Environment

And here in xxx.h files you unconditionally remove CONFIG_BOUNCE_BUFFER
which breaks MMC on these boards.

I understand that you're fixing that in the subsequent commit but
I'd prefer all changes to be bisectable, i.e. have normally working system
on each and every commit.

Moreover IMHO it doesn't look logical to remove "#define CONFIG_BOUNCE_BUFFER" here
while remove comment which is clearly bounded to CONFIG_BOUNCE_BUFFER in the next commit.

So maybe we need to split this first commit in 3 parts and
squash it with 2, 3 and 4.

-Alexey


More information about the U-Boot mailing list