• Simon Glass's avatar
    Add an I/O tracing feature · aa53233a
    Simon Glass authored
    
    
    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: default avatarSimon Glass <sjg@chromium.org>
    aa53233a