[U-Boot] [PATCH 40/47] Convert CONFIG_CMD_IOTRACE to Kconfig

Simon Glass
2017-05-15T10:57:55Z

This converts the following to Kconfig:
CONFIG_CMD_IOTRACE

Signed-off-by: Simon Glass <sjg@chromium.org>
---

arch/Kconfig | 1 +
cmd/Kconfig | 34 ++++++++++++++++++++++++++++++++++
include/configs/sandbox.h | 1 -
scripts/config_whitelist.txt | 1 -
4 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index 493b1831c1..c6ea37fd46 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -70,6 +70,7 @@ config SANDBOX
select DM_MMC
imply CMD_HASH
imply CMD_IO
+ imply CMD_IOTRACE

config SH
bool "SuperH architecture"
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 0f54ae35f9..c1e271d329 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -501,6 +501,40 @@ config CMD_IO
checking the state of devices during boot when debugging device
drivers, etc.

+config CMD_IOTRACE
+ bool "iotrace - Support for tracing I/O activity"
+ help
+ Provides an 'iotrace' command which supports recording I/O reads and
+ writes in a trace buffer in memory . It also maintains a checksum
+ of the trace records (even if space is exhausted) so that the
+ sequence of I/O accesses can be verified.
+
+ When debugging drivers it is useful to see what I/O accesses were
+ done and in what order.
+
+ Even if the individual accesses are of little interest it can be
+ useful to verify that the access pattern is consistent each time
+ an operation is performed. In this case a checksum can be used to
+ characterise the operation of a driver. The checksum can be compared
+ across different runs of the operation to verify that the driver is
+ working properly.
+
+ In particular, when performing major refactoring of the driver, where
+ the access pattern should not change, the checksum provides assurance
+ that the refactoring work has not broken the driver.
+
+ This works by sneaking into the io.h heder for an architecture and
+ redirecting I/O accesses through iotrace's tracing mechanism.
+
+ For now no commands are provided to examine the trace buffer. The
+ format is fairly simple, so 'md' is a reasonable substitute.
+
+ Note: The checksum feature is only useful for I/O regions where the
+ contents do not change outside of software control. Where this is not
+ suitable you can fall back to manually comparing the addresses. It
+ might be useful to enhance tracing to only checksum the accesses and
+ not the data read/written.
+
config CMD_LOADB
bool "loadb"
default y
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 8973494f9b..d640949dd9 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -18,7 +18,6 @@

#ifndef CONFIG_SPL_BUILD
#define CONFIG_IO_TRACE
-#define CONFIG_CMD_IOTRACE
#endif

#ifndef CONFIG_TIMER
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 2f15e8c5d7..457e81645e 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -384,7 +384,6 @@ CONFIG_CM922T_XA10
CONFIG_CMDLINE_EDITING
CONFIG_CMDLINE_PS_SUPPORT
CONFIG_CMDLINE_TAG
-CONFIG_CMD_IOTRACE
CONFIG_CMD_IRQ
CONFIG_CMD_JFFS2
CONFIG_CMD_KGDB
--
2.13.0.rc2.291.g57267f2277-goog