New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 653183 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

eCTS: Implement I2C suite

Project Member Reported by dnojiri@chromium.org, Oct 5 2016

Issue description

(eCTS: https://docs.google.com/document/d/1VFZgGV6uBxOWS7mJHlOAWWmkvqz6ctdgcbCaDo7RYhc/edit)

Umbrella bug for all I2C tests. This suite should test APIs in include/i2c.h.

 
Components: OS>Firmware>EC
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/3afd683d683f482f003405c721800e3ba2ccb637

commit 3afd683d683f482f003405c721800e3ba2ccb637
Author: Daisuke Nojiri <dnojiri@chromium.org>
Date: Mon Oct 03 19:51:52 2016

cts: Add I2C tests for read8/16/32 and write8/16/32

This patch adds tests for i2c_read8/16/32 and i2c_write8/16/32.

BUG=chromium:653183
BRANCH=none
TEST=make buildall. Run cts.py -m i2c for 100kHz with 10k ohms
pull-up registers on SCL and SDA. TH=stm32l476g-eval DUT=nucleo-f072rb.

Change-Id: I8121b1c5dc7542da45141543e35036ef41364c38
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/393331
Reviewed-by: Randall Spangler <rspangler@chromium.org>

[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/board/nucleo-f072rb/board.c
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/board/stm32l476g-eval/board.c
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/board/stm32l476g-eval/gpio.inc
[add] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/cts/i2c/dut.c
[add] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/cts/i2c/th.c
[add] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/cts/i2c/cts_i2c.h
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/board/nucleo-f072rb/board.h
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/board/nucleo-f072rb/gpio.inc
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/board/stm32l476g-eval/board.h
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/chip/stm32/i2c-stm32l4.c
[modify] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/cts/build.mk
[add] https://crrev.com/3afd683d683f482f003405c721800e3ba2ccb637/cts/i2c/cts.testlist

Status: Assigned (was: Untriaged)
Labels: eCTS
With 10k ohm pull-ups on SDL and SDA, all tests pass:

 TEST NAME       TH_RC        DUT_RC     TH_STR DUT_STR RESULT
write8_test        SUCCESS       SUCCESS    YES     YES   PASS
write16_test       SUCCESS       SUCCESS    YES     YES   PASS
write32_test       SUCCESS       SUCCESS    YES     YES   PASS
read8_test         SUCCESS       SUCCESS    YES     YES   PASS
read16_test        SUCCESS       SUCCESS    YES     YES   PASS
read32_test        SUCCESS       SUCCESS    YES     YES   PASS

Without pull-ups (or even with internal pull-ups), read16_test and read32_test fail:
 TEST NAME       TH_RC        DUT_RC     TH_STR DUT_STR RESULT
write8_test        SUCCESS       SUCCESS    YES     YES   PASS
write16_test       SUCCESS       SUCCESS    YES     YES   PASS
write32_test       SUCCESS       SUCCESS    YES     YES   PASS
read8_test         SUCCESS       SUCCESS    YES     YES   PASS
read16_test        SUCCESS       FAILURE    YES     YES   FAIL
read32_test        SUCCESS       FAILURE    YES     YES   FAIL

Screenshot for read16_test is attached.
screenshot.png
79.6 KB View Download
Attached are scopeshots with and without external pull-ups. Without external pull-ups, the edges are too round.
IMG_20170623_155014.jpg
4.9 MB View Download
IMG_20170623_162256.jpg
5.3 MB View Download
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/de36e33ecf8d7e376d36b68c4be0229d306006ad

commit de36e33ecf8d7e376d36b68c4be0229d306006ad
Author: Daisuke Nojiri <dnojiri@chromium.org>
Date: Thu Jun 29 04:50:50 2017

eCTS: Add I2C suite to run_ects.py

This patch adds i2c suite to run_ects.py. It also adds checks for
return values from i2c_read and i2c_write functions.

BUG=chromium:653183
BRANCH=none
TEST=Run run_ects.py and verify all test pass.

Change-Id: Ie3d6e1e6f131235e2b28f39e1546c9cb4c3b92f6
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/547024
Reviewed-by: Randall Spangler <rspangler@chromium.org>

[modify] https://crrev.com/de36e33ecf8d7e376d36b68c4be0229d306006ad/util/run_ects.py
[modify] https://crrev.com/de36e33ecf8d7e376d36b68c4be0229d306006ad/cts/i2c/th.c
[modify] https://crrev.com/de36e33ecf8d7e376d36b68c4be0229d306006ad/cts/i2c/cts.testlist
[modify] https://crrev.com/de36e33ecf8d7e376d36b68c4be0229d306006ad/cts/i2c/cts_i2c.h
[modify] https://crrev.com/de36e33ecf8d7e376d36b68c4be0229d306006ad/cts/i2c/dut.c

Sign in to add a comment