[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