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

Alexey Brodkin alexey.brodkin at synopsys.com
Mon Dec 3 12:54:51 UTC 2018


Hi Philipp,

On Mon, 2018-12-03 at 13:38 +0100, Philipp Tomsich wrote:
Alexey,

On 03.12.2018, at 13:35, Alexey Brodkin <alexey.brodkin at synopsys.com<mailto:alexey.brodkin at synopsys.com>> wrote:
Hi Philipp,

On Mon, 2018-12-03 at 13:32 +0100, Philipp Tomsich wrote:
Alexey,

On 03.12.2018, at 12:17, Alexey Brodkin <alexey.brodkin at synopsys.com<mailto:alexey.brodkin at synopsys.com>> wrote:
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<mailto: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.

In this patch, moveconfig has moved the selction this into the respective _defconfig files
for the  AXS10x boards.

But still if CONFIG_BOUNCE_BUFFER is gone shouldn't we remove a relevant comment as well?


Hm... are you sure axs101_defconfig & axs103_defconfig were updated in this patch?
I didn't see them there.

You are right: my ARC toolchain wasn’t configured …
I’ll need to debug my toolchain configs and rerun my moveconfig.

You may want to see how ARC toolchain is retrieved by TravisCI job:
http://git.denx.de/?p=u-boot.git;a=blob;f=.travis.yml#l78

-Alexey


More information about the U-Boot mailing list