Add an I/O tracing feature
authorSimon Glass <sjg@chromium.org>
Thu, 12 Jun 2014 05:29:41 +0000 (23:29 -0600)
committerSimon Glass <sjg@chromium.org>
Fri, 20 Jun 2014 17:54:29 +0000 (11:54 -0600)
commitaa53233a15e22ae207436e4015a69d24f06c2703
treeead5e91a877e1c68f5129836a4bd7f4ba05807c4
parent9e546ee9c90fc0a888423fa3269020fe736df7a3
Add an I/O tracing feature

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.

Add an I/O tracing feature and associated commands to provide this facility.
It works by sneaking into the io.h heder for an architecture and redirecting
I/O accesses through its 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.

Signed-off-by: Simon Glass <sjg@chromium.org>
README
common/Makefile
common/cmd_iotrace.c [new file with mode: 0644]
common/iotrace.c [new file with mode: 0644]
include/iotrace.h [new file with mode: 0644]