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

Simon Glass sjg at chromium.org
Mon May 15 10:57:55 UTC 2017


This converts the following to Kconfig:
   CONFIG_CMD_IOTRACE

Signed-off-by: Simon Glass <sjg at 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



More information about the U-Boot mailing list