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

Issue 806148 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocking:
issue 760267



Sign in to add a comment

[servo power] build infrastructure for servo V2/V4 to control an attached sweetberry

Project Member Reported by coconutruben@chromium.org, Jan 26 2018

Issue description

We want to build the ability for a sweetberry to be attached to the USB port on V2, and V4, and the servo to control that sweetberry

The reason we want to combine servo with sweetberry is that sweetberry does not have console access, and thus cannot do any of the bootstrapping components, or query information from the DUT.

(1) the first goal here is for the servod instance to know the sweetberry's serialnumber, and know what sweetberry config file to invoke powerlog.py with. That way, when we use measure_power.py, servod can know how to use a sweetberry

(2) long term, we might want to consider if it's advantageous for sweetberry's controls to flow directly through servod, meaning that it exposes individual rails and controls the same way that onboard INAs do.
 
Owner: coconutruben@chromium.org
Status: Started (was: Available)
I'm making an effort here to go with option (2) and surface the sweetberry commands through servod. To that end, there's
(1) Cl to allow powerlog to use addr & port in config instead of channel
crrev.com/c/1051212
(2) Cl to expose i2c over usb for sweetberry
crrev.com/c/1051136
(3) Cl to treat sweetberry as a servod device
crrev.com/c/1051214
(4) Cl to change generate_ina_controls.py to generate powerlog, but also sweetberry-servod configs when config_type=sweetberry
crrev.com/c/1051215
next up will be exposing the sweetberry ec console through uart, and seeing what commands make sense to expose through servod.
Project Member

Comment 3 by bugdroid1@chromium.org, May 10 2018

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

commit 3db5a829b05a90f357fa32729c76a72728787ba4
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Thu May 10 09:27:09 2018

powerlog: allow port & addr in the .board file

Allow board & addr in the board file instead of channel, to make board
file creation and configuration simpler.
This is part of the efforts in the BUG to make sweetberry under chrome
os simpler to use. In that case, we allow now (with crrev.com/c/1051215) to
generate .board files using explicit pin and bank numbers (j2,j3,j4).

BRANCH=None
BUG=chromium:806148
TEST=manual test, works fine.

Change-Id: I6fd3bb1a4a5ffffee08b81625ecb190adceeb2e7
Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1051212
Reviewed-by: Nick Sanders <nsanders@chromium.org>

[modify] https://crrev.com/3db5a829b05a90f357fa32729c76a72728787ba4/extra/usb_power/powerlog.py

Project Member

Comment 4 by bugdroid1@chromium.org, May 22 2018

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

commit cb4338e289389d699f26204c73aede4e24dd296e
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Tue May 22 01:19:29 2018

sweetberry: expose i2c over usb

Expose the i2c interface through usb so that we can read power rails
through servod leveraging the work being done there.

BRANCH=none
BUG=chromium:806148
TEST=manual testing
- powerlog still works
- i2c over usb using servod code works (other CLs needed)

Change-Id: I48876bc4839509a397ce77376b337c37c556ae40
Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1051136
Reviewed-by: Nick Sanders <nsanders@chromium.org>

[add] https://crrev.com/cb4338e289389d699f26204c73aede4e24dd296e/chip/stm32/usb_dwc_i2c.h
[modify] https://crrev.com/cb4338e289389d699f26204c73aede4e24dd296e/chip/stm32/build.mk
[modify] https://crrev.com/cb4338e289389d699f26204c73aede4e24dd296e/board/sweetberry/board.h
[modify] https://crrev.com/cb4338e289389d699f26204c73aede4e24dd296e/common/usb_i2c.c
[modify] https://crrev.com/cb4338e289389d699f26204c73aede4e24dd296e/board/sweetberry/board.c

Project Member

Comment 5 by bugdroid1@chromium.org, May 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/hdctools/+/8c61301a7800c8a76dea0f842c4b36bb7590d2e2

commit 8c61301a7800c8a76dea0f842c4b36bb7590d2e2
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Wed May 23 13:47:26 2018

servod: add sweetberry as servod device.

In crrev.com/c/1051136 we introduce sweetberry to expose its i2c
interface over usb. This change is to leverage that to use sweetberry
as a servod device. It adds the necessary configurations,
and also introduces a sweetberry.py driver, that manages the servod i2c
ports when reading INAs through servod for sweetberry.

BUG=chromium:806148
TEST=sudo servod -c servo_sweetberry_rails.xml
dut-control -p $PORT j2_1_mv
>j2_1_mv:5087.5
CQ-DEPEND=CL:1051212

Change-Id: I06220510e7051bd7c559856a4b5d252e9f723ffc
Reviewed-on: https://chromium-review.googlesource.com/1051214
Commit-Ready: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Tested-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/8c61301a7800c8a76dea0f842c4b36bb7590d2e2/servo/servo_interfaces.py
[add] https://crrev.com/8c61301a7800c8a76dea0f842c4b36bb7590d2e2/servo/data/sweetberry.xml
[add] https://crrev.com/8c61301a7800c8a76dea0f842c4b36bb7590d2e2/servo/drv/sweetberry.py
[add] https://crrev.com/8c61301a7800c8a76dea0f842c4b36bb7590d2e2/servo/data/servo_sweetberry_rails.py
[modify] https://crrev.com/8c61301a7800c8a76dea0f842c4b36bb7590d2e2/servo/ftdi_common.py
[modify] https://crrev.com/8c61301a7800c8a76dea0f842c4b36bb7590d2e2/servo/drv/__init__.py

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/hdctools/+/9967041bb0b800262c4932a89502425601d16c15

commit 9967041bb0b800262c4932a89502425601d16c15
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Thu Aug 02 20:53:49 2018

servod: refresh generate for new sweetberry through servod

By exposing sweetberry as a servod device, generating configs for
sweetberry now needs to geneate both: powerlog, and servod
configurations. This is CL does just that.
Additionally, since sweetberry has non-trivial pin to i2c port mapping,
this CL introduces the ability to define an INA configuration by
specifying the pins and the (white) bank on the sweetberry board,
instead of the raw i2c address and port.

CQ-DEPEND=CL:1051212

BUG=chromium:806148
TEST=manual testing, powerlog works fine (CQ-depend) and servod also
works

Change-Id: I2bdde650b0b4d2b84827fa21cec9354e563f9f61
Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1051215
Reviewed-by: Mengqi Guo <mqg@chromium.org>

[delete] https://crrev.com/9548333e016102204eb0d46714acecd5d65b66fc/servo/data/atlas_rev0.py
[modify] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/README.INA.md
[add] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/servo_sweetberry_rails_pins.py
[modify] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/drv/power_tools.py
[add] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/servo_config_generator.py
[modify] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/drv/sweetberry.py
[add] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/sweetberry.png
[modify] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/generate_ina_controls.py
[modify] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/make_ina_skeleton.py
[add] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/README.sweetberry.md
[add] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/sweetberry_preprocessor.py
[delete] https://crrev.com/9548333e016102204eb0d46714acecd5d65b66fc/servo/data/servo_sweetberry_rails.py
[add] https://crrev.com/9967041bb0b800262c4932a89502425601d16c15/servo/data/servo_sweetberry_rails_addr.py

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/hdctools/+/7035f9b188ab52ee2e2f16b1a031c86d3d78a707

commit 7035f9b188ab52ee2e2f16b1a031c86d3d78a707
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Thu Aug 23 14:37:16 2018

servod: system config map & input_type

This CL reshuffles the logic inside resolve_val in system_config to
allow for mapped values to also leverage input_type.
This means that if for
dut-control random_ctrl:val
|val| maps to "1.2" then the float 1.2 will be passed to the set method.

It also starts the process of adding unittests to system_config.py

BUG=chromium:806148, chromium:812152
TEST=manual testing

Change-Id: I1a4590b22b8d7003454d51b040cfa4ba5105c7c7
Reviewed-on: https://chromium-review.googlesource.com/1168270
Commit-Ready: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Tested-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/7035f9b188ab52ee2e2f16b1a031c86d3d78a707/servo/system_config.py
[add] https://crrev.com/7035f9b188ab52ee2e2f16b1a031c86d3d78a707/servo/system_config_unittest.py

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 12

Labels: merge-merged-firmware-cr50-9308.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/f80329391b72a04371bc0d5b7523d723dbcbfc2f

commit f80329391b72a04371bc0d5b7523d723dbcbfc2f
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Fri Oct 12 18:20:16 2018

sweetberry: expose i2c over usb

Expose the i2c interface through usb so that we can read power rails
through servod leveraging the work being done there.

 Conflicts:
	board/sweetberry deleted in this branch

BRANCH=none
BUG=chromium:806148
TEST=manual testing
- powerlog still works
- i2c over usb using servod code works (other CLs needed)

Change-Id: I48876bc4839509a397ce77376b337c37c556ae40
Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1051136
Reviewed-by: Nick Sanders <nsanders@chromium.org>
(cherry picked from commit cb4338e289389d699f26204c73aede4e24dd296e)
Reviewed-on: https://chromium-review.googlesource.com/c/1278026
Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>

[add] https://crrev.com/f80329391b72a04371bc0d5b7523d723dbcbfc2f/chip/stm32/usb_dwc_i2c.h
[modify] https://crrev.com/f80329391b72a04371bc0d5b7523d723dbcbfc2f/chip/stm32/build.mk
[modify] https://crrev.com/f80329391b72a04371bc0d5b7523d723dbcbfc2f/common/usb_i2c.c

Components: Tools>ChromeOSDebugBoards
Project Member

Comment 10 by bugdroid1@chromium.org, Dec 7

Labels: merge-merged-firmware-cr50-mp-release-9308.87.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/58e86851a61dd06870de0015c4cb1e6fa679a018

commit 58e86851a61dd06870de0015c4cb1e6fa679a018
Author: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Date: Fri Dec 07 00:25:47 2018

sweetberry: expose i2c over usb

Expose the i2c interface through usb so that we can read power rails
through servod leveraging the work being done there.

 Conflicts:
	board/sweetberry deleted in this branch

BRANCH=none
BUG=chromium:806148
TEST=manual testing
- powerlog still works
- i2c over usb using servod code works (other CLs needed)

Change-Id: I48876bc4839509a397ce77376b337c37c556ae40
Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1051136
Reviewed-by: Nick Sanders <nsanders@chromium.org>
(cherry picked from commit cb4338e289389d699f26204c73aede4e24dd296e)
Reviewed-on: https://chromium-review.googlesource.com/c/1278026
Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
(cherry picked from commit f80329391b72a04371bc0d5b7523d723dbcbfc2f)
Reviewed-on: https://chromium-review.googlesource.com/c/1366967

[add] https://crrev.com/58e86851a61dd06870de0015c4cb1e6fa679a018/chip/stm32/usb_dwc_i2c.h
[modify] https://crrev.com/58e86851a61dd06870de0015c4cb1e6fa679a018/chip/stm32/build.mk
[modify] https://crrev.com/58e86851a61dd06870de0015c4cb1e6fa679a018/common/usb_i2c.c

Sign in to add a comment