From: Tom Rini Date: Wed, 1 Oct 2025 20:30:52 +0000 (-0600) Subject: iotrace: Finish migrating this to Kconfig X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=16bbc225fed7931988616ba4e223954ae5ccc06b;p=thirdparty%2Fu-boot.git iotrace: Finish migrating this to Kconfig 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 --- diff --git a/README b/README index 07cfded6be5..b95c72bb367 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 ' - to the bottom of 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 7e05e0c2263..3133f892f94 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 dcf63f423fd..5fcf37e67b9 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 30bf225362e..0c25a8fc866 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 + ' to the bottom of arch//include/asm/io.h and test.