diff options
| -rw-r--r-- | README | 22 | ||||
| -rw-r--r-- | arch/Kconfig | 1 | ||||
| -rw-r--r-- | cmd/Kconfig | 11 | ||||
| -rw-r--r-- | common/Kconfig | 11 |
4 files changed, 21 insertions, 24 deletions
@@ -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 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 + <iotrace.h>' to the bottom of arch/<arch>/include/asm/io.h and test. |
