summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJack Rosenthal <jrosenth@chromium.org>2019-07-11 18:17:34 -0600
committerCommit Bot <commit-bot@chromium.org>2019-07-17 21:45:18 +0000
commitf8d6179a26bf512c43638d0916fde0fc966cc3fb (patch)
treed4df87ff4a738060d20f874eaa75cc3b2d24cdb9 /docs
parent21a255ea953e8ac64d05147ad7f11491db126cf4 (diff)
downloadchrome-ec-f8d6179a26bf512c43638d0916fde0fc966cc3fb.tar.gz
common: add i2c tracing functionality
crbug.com/982442 requests a way for developers to enable tracing of i2c commands when debugging. This adds a new debug feature, the i2ctrace command, which provides that. The command is guarded by CONFIG_I2C_DEBUG. BUG=chromium:982442 BRANCH=none TEST=enabled CONFIG_I2C_DEBUG on arcada_ish, made sure that command functioned as it says on the tin Change-Id: I9c762271237cbf131e5ef7c0f605c89af4f209fd Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1699347 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'docs')
-rw-r--r--docs/i2c-debugging.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/i2c-debugging.md b/docs/i2c-debugging.md
new file mode 100644
index 0000000000..a1a56db285
--- /dev/null
+++ b/docs/i2c-debugging.md
@@ -0,0 +1,48 @@
+I²C Debugging Tips
+==================
+
+The EC codebase has functionality to help you debug I²C errors without
+pulling out the scope. Some of the debug functionality is disabled by
+default to save space, but can be enabled with the `CONFIG_I2C_DEBUG`
+option.
+
+Tracing
+-------
+
+You can use the `i2ctrace` command to monitor (ranges of) addresses:
+
+ i2ctrace [list
+ | disable <id>
+ | enable <port> <address>
+ | enable <port> <address-low> <address-high>]
+
+For example:
+
+ > i2ctrace enable 0 0x10 0x30
+ > i2ctrace enable 0 0x40 0x50
+ > i2ctrace list
+ id port address
+ -- ---- -------
+ 0 0 0x10 to 0x30
+ 1 0 0x40 to 0x50
+ ... debug spam may follow ...
+ i2c: write 0:0x50 A8
+ i2c: read 0:0x50 00 02 00 06 00 44
+ ...
+ > i2ctrace disable 1
+ > i2ctrace list
+ id port address
+ -- ---- -------
+ 0 0 0x10 to 0x30
+
+A maximum of 8 debug entries are supported at a single time.
+
+Note that `i2ctrace enable` will merge debug entries when possible:
+
+ > i2ctrace enable 0 0x10 0x30
+ > i2ctrace enable 0 0x40 0x50
+ > i2ctrace enable 0 0x31 0x3f
+ > i2ctrace list
+ id port address
+ -- ---- -------
+ 0 0 0x10 to 0x50