Convert CONFIG_CMD_IOTRACE to Kconfig

This converts the following to Kconfig:
   CONFIG_CMD_IOTRACE

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/arch/Kconfig b/arch/Kconfig
index a8a13b7..c1b47b4 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -70,6 +70,7 @@
 	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 0f54ae3..c1e271d 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -501,6 +501,40 @@
 	  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 be05843..905fcd9 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 7b9b21b..5cebf2c 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -383,7 +383,6 @@
 CONFIG_CMDLINE_EDITING
 CONFIG_CMDLINE_PS_SUPPORT
 CONFIG_CMDLINE_TAG
-CONFIG_CMD_IOTRACE
 CONFIG_CMD_IRQ
 CONFIG_CMD_JFFS2
 CONFIG_CMD_KGDB