[PATCH] iotrace: Finish migrating this to Kconfig

Tom Rini trini at konsulko.com
Wed Oct 1 22:30:52 CEST 2025


When I migrated this to Kconfig in commit 68e54040ccc3 ("sandbox: Move
CONFIG_IO_TRACE to Kconfig") I didn't look hard enough for other
details. As explained in the README, this is valid for ARM too. So start
by making this be a prompted question and CMD_IOTRACE depend on IO_TRACE
being enabled.  Next, migrate the information out of README and in to
the appropriate help text for existing options in Kconfig. Finally, make
this option be default y on SANDBOX but not selected as it's valid to
build without it.

Signed-off-by: Tom Rini <trini at konsulko.com>
---
 README         | 22 ----------------------
 arch/Kconfig   |  1 -
 cmd/Kconfig    | 11 +++++++++++
 common/Kconfig | 11 ++++++++++-
 4 files changed, 21 insertions(+), 24 deletions(-)

diff --git a/README b/README
index 27cde241bef4..20a73bab802c 100644
--- a/README
+++ b/README
@@ -300,28 +300,6 @@ The following options need to be configured:
 		Note that if the GPIO device uses I2C, then the I2C interface
 		must also be configured. See I2C Support, below.
 
-- I/O tracing:
-		When CONFIG_IO_TRACE is selected, U-Boot intercepts all I/O
-		accesses and can checksum them or write a list of them out
-		to memory. See the 'iotrace' command for details. This is
-		useful for testing device drivers since it can confirm that
-		the driver behaves the same way before and after a code
-		change. Currently this is supported on sandbox and arm. To
-		add support for your architecture, add '#include <iotrace.h>'
-		to the bottom of arch/<arch>/include/asm/io.h and test.
-
-		Example output from the 'iotrace stats' command is below.
-		Note that if the trace buffer is exhausted, the checksum will
-		still continue to operate.
-
-			iotrace is enabled
-			Start:  10000000	(buffer start address)
-			Size:   00010000	(buffer size)
-			Offset: 00000120	(current buffer offset)
-			Output: 10000120	(start + offset)
-			Count:  00000018	(number of trace records)
-			CRC32:  9526fb66	(CRC32 of all trace records)
-
 - Timestamp Support:
 
 		When CONFIG_TIMESTAMP is selected, the timestamp
diff --git a/arch/Kconfig b/arch/Kconfig
index 7e05e0c22634..3133f892f945 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -202,7 +202,6 @@ config SANDBOX
 	select DM_SPI
 	select DM_SPI_FLASH
 	select GZIP_COMPRESSED
-	select IO_TRACE
 	select LZO
 	select MMC
 	select MTD
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 5e5252ef1347..761b126e3271 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1308,12 +1308,23 @@ config CMD_IO
 
 config CMD_IOTRACE
 	bool "iotrace - Support for tracing I/O activity"
+	depends on IO_TRACE
 	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.
 
+	  Example output from the 'iotrace stats' command is below.
+
+		iotrace is enabled
+		Start:  10000000	(buffer start address)
+		Size:   00010000	(buffer size)
+		Offset: 00000120	(current buffer offset)
+		Output: 10000120	(start + offset)
+		Count:  00000018	(number of trace records)
+		CRC32:  9526fb66	(CRC32 of all trace records)
+
 	  When debugging drivers it is useful to see what I/O accesses were
 	  done and in what order.
 
diff --git a/common/Kconfig b/common/Kconfig
index 30bf225362ee..0c25a8fc866e 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1264,4 +1264,13 @@ config VPL_IMAGE_SIGN_INFO
 endif
 
 config IO_TRACE
-	bool
+	bool "Intercept and checksum all I/O accesses"
+	depends on ARM || SANDBOX
+	default y if SANDBOX
+	help
+	  When enabled, U-Boot intercepts all I/O accesses and can checksum
+	  them or write a list of them out to memory. See the 'iotrace' command
+	  for details. This is useful for testing device drivers since it can
+	  confirm that the driver behaves the same way before and after a code
+	  change. To add support for your architecture, add '#include
+	  <iotrace.h>' to the bottom of arch/<arch>/include/asm/io.h and test.
-- 
2.43.0



More information about the U-Boot mailing list