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

Issue 599538 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocking:
issue 599524



Sign in to add a comment

updates to hdctools to support servo v4

Project Member Reported by kevcheng@chromium.org, Mar 31 2016

Issue description

Some of the fw programming tools need to get updated since they assume one servo per servo host.

Comment thread from https://docs.google.com/document/d/1PhWztBn0kmpvRYfGIhJ4nl7DTYom9ub790654AeVUCs/edit#:

Tom:
I am concerned about the tools of programming firmware, e.g. flashrom, flash_ec, openocd.

For example, we currently run:
"flashrom -p linux_spi -r ..."
on servo host to program DUT firmware via servo. It doesn't tell which servo to use as the current setup is only one servo per servo host. The openocd used in the flash_ec script has the same problem. I am not sure how these tools can identify which servo to use.

David:
If there are multiple SPI interfaces, you can use "flashrom -p linux_spi:dev=/dev/spidev1.0 -r ..." or some such. Servos can be identified by USB ID.

Tom:
Some work needs to be done to get the serial number of the servo USB device. For the openocd (flash_ec uses it to program EC), multiple ftdi devices appear on the servo host. There should be some way to modify the openocd config to limit it to program a single fdti device with the particular serial number. The flash_ec script has to be changed.
 

Comment 1 by benhenry@google.com, Apr 26 2016

Components: Infra>Client>ChromeOS
Labels: -Infra-ChromeOS
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 15 2016

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

commit 71a046fa36a69516affb6f56040aaae0744e7517
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Jun 13 23:37:58 2016

servod: Update stm32usb.py to use the serial number to id devices.

BUG= chromium:599538 
TEST=Locally verify with servo v4 and uServo get recognized by their
serial number via the debug logs.

Change-Id: I2fd72b60fc0c070a725e9134be40814814fb7e40
Reviewed-on: https://chromium-review.googlesource.com/352330
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Nick Sanders <nsanders@google.com>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/71a046fa36a69516affb6f56040aaae0744e7517/servo/servo_server.py
[modify] https://crrev.com/71a046fa36a69516affb6f56040aaae0744e7517/servo/stm32usb.py

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 12 2016

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

commit 5e6c56c114cb38462e9f8cc4eb23fd8fdc5003a6
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Jun 06 19:36:43 2016

[hdctools] Add new upstart jobs start_servod.conf and update servod.conf

start_servod.conf
- An init upstart job to look at all the config file in the config file dir and
  call multi_servo on them.  This works for the labstation setting and for
  individuals who start servod manually once and depend on the upstart job
  to store the details for them for subsequent boots.

servod_utils.sh
- A helper script to find unused ports.

servod.conf
- Updated it to take in args BOARD, SERIAL and PORT.  Will save the args
  to a config file (config_$PORT), if the config file exists, will
  update the args in the config file.  No longer will start on init,
  will rely on start_servod.conf to start it with all the config files
  found.

BUG= chromium:599538 
TEST=locally on labstation that servod processes are properly started on
bootup

Change-Id: I3661c04fabbdb1a247fa4b51d12d0ebccd25af1b
Reviewed-on: https://chromium-review.googlesource.com/350091
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[add] https://crrev.com/5e6c56c114cb38462e9f8cc4eb23fd8fdc5003a6/chromeos/start_servod.conf
[modify] https://crrev.com/5e6c56c114cb38462e9f8cc4eb23fd8fdc5003a6/chromeos/servod.conf
[modify] https://crrev.com/5e6c56c114cb38462e9f8cc4eb23fd8fdc5003a6/chromeos/Makefile
[add] https://crrev.com/5e6c56c114cb38462e9f8cc4eb23fd8fdc5003a6/chromeos/servod_utils.sh

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 18 2016

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

commit 5c667218f2cd114e11d4119776b1dd800420e93f
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Thu Jul 07 17:58:04 2016

servo_v4: Update default interfaces to work with servo micro.

To prepare for the work to enable servo v4 and servo micro to be served
by the same servod process, I'll be updating the servo v4 interface to
allow servo micro to use the first 10 servo interfaces so that no
changes need to be done to the existing board interfaces.

Also delete the existing servod._init_dummy() method since it's not
needed anymore since I look for dummy interfaces in the interface init
loop and deal with them explicitly.

BUG= chromium:599538 
TEST=start servod and can still access servo console

Change-Id: I984d23f7e8db3a46c7205952fd535ffd742f7465
Reviewed-on: https://chromium-review.googlesource.com/358881
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[modify] https://crrev.com/5c667218f2cd114e11d4119776b1dd800420e93f/servo/data/servo_v4_p0.xml
[modify] https://crrev.com/5c667218f2cd114e11d4119776b1dd800420e93f/servo/servo_server.py
[modify] https://crrev.com/5c667218f2cd114e11d4119776b1dd800420e93f/servo/data/servo_v4_inas.py
[modify] https://crrev.com/5c667218f2cd114e11d4119776b1dd800420e93f/servo/servo_interfaces.py
[modify] https://crrev.com/5c667218f2cd114e11d4119776b1dd800420e93f/servo/data/servo_v4.xml

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 21 2016

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

commit 16304d1903c7455fb78197711252c717dc121d5b
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Fri Jul 08 18:56:55 2016

[servod] Add in post_init functionality for servod.

We need a way to detect on a servo v4 if a servo micro is present and is
connected to the servo v4.  This adds in the scaffolding to do all of
that, the remaining worklist:

- detect if servo micro is behind servo v4
- init servo micro interfaces

BUG= chromium:599538 
TEST=locally start servod on a servo_host for servo v4 and can properly
initialize all interfaces on servo v4.

Change-Id: Ifeba67a7a0dc532e127244fe6c16ad96f96c79c3
Reviewed-on: https://chromium-review.googlesource.com/359982
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[add] https://crrev.com/16304d1903c7455fb78197711252c717dc121d5b/servo/servo_postinit.py
[modify] https://crrev.com/16304d1903c7455fb78197711252c717dc121d5b/servo/servo_server.py

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 22 2016

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

commit dc3befde8b11be3d3b457f66526fdddf905f25e6
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Fri Jul 15 19:34:00 2016

servod: Refactor servod init to be reusable in other methods.

Add in a init_servo_interfaces method to Servod so that other callers
can init different devices with different interfaces on the Servod
object.  That required updating all the _init_* methods to also take in
a vendor, product, and serialname arg since they all used the object
attribute.

This change makes it easier to init multiple types of servo interfaces
for one Servod object (servo v4 object that also has servo micro
interfaces).

BUG= chromium:599538 
TEST=Started up servod on a servo v2, v3, v4 and servo micro and was
able to warm_reset a DUT and reach the servo console.

Change-Id: I394173e892b658f08edab0daa255d51754ac9e0b
Reviewed-on: https://chromium-review.googlesource.com/361568
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[modify] https://crrev.com/dc3befde8b11be3d3b457f66526fdddf905f25e6/servo/servo_server.py

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 29 2016

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

commit df5092d4b844d324151de118c3f925b88b150487
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Fri Jul 22 20:33:44 2016

servod: Implement servo v4 post init servo micro init method.

BUG= chromium:599538 
TEST=locally on servo host that servo micro got properly initialized
with servo v4.

Change-Id: Icbbb51b9b7f70e4a97d763db063b070991ce8d9b
Reviewed-on: https://chromium-review.googlesource.com/362615
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/df5092d4b844d324151de118c3f925b88b150487/servo/servo_postinit.py

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 3 2016

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

commit e7e0dbf90b2ca9b34c8c19b2df799cef7a639d22
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Fri Jul 08 18:56:55 2016

servod: Implement servo_micro_behind_v4.

Implement the method that will check if a given servo micro is behind a
given servo v4.

BUG= chromium:599538 
TEST=Locally on a servo host with multiple servo v4/servo Micros, was
able to properly pair the right servo micro to the servo v4.

Change-Id: I8aae23ee7868997fa0d89ec1b56f43e5696c9ef7
Reviewed-on: https://chromium-review.googlesource.com/362353
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/e7e0dbf90b2ca9b34c8c19b2df799cef7a639d22/servo/servo_postinit.py

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 3 2016

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

commit 958011778abaafb68bd40f67121c201a2df63529
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Aug 01 21:58:29 2016

servod: Add autodetection of servo v4 and servo micro.

BUG= chromium:599538 
TEST=locally on workstation with servo v4 and servo micro.

Change-Id: I8bbd09318fd56fe170f5282f8149b953c9625a1b
Reviewed-on: https://chromium-review.googlesource.com/365150
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/958011778abaafb68bd40f67121c201a2df63529/servo/ftdi_common.py

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/a06d01f26ce727e74b413cf3032f04b7cce5e8b8

commit a06d01f26ce727e74b413cf3032f04b7cce5e8b8
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Thu Aug 25 19:29:51 2016

labsstation: Add in creation of usb lock file.

Since we'll have multiple servos running on this labstation, we'll need
to enable servod to safely detect their usb key without interference
from other servod processes.

CL:373560 enables servod to use a lock file to block other servod
processes to probe their usb devices at the same time.  Presence of
the lock file is optional, if it does not exist, no blocking will occur.

BUG= chromium:599538 
TEST=None

Change-Id: I305d920bb38bdcef52b403a4cc59555ff79a15de
Reviewed-on: https://chromium-review.googlesource.com/376081
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>

[rename] https://crrev.com/a06d01f26ce727e74b413cf3032f04b7cce5e8b8/project-labstation/chromeos-base/chromeos-bsp-labstation/chromeos-bsp-labstation-0.0.1-r5.ebuild
[add] https://crrev.com/a06d01f26ce727e74b413cf3032f04b7cce5e8b8/project-labstation/chromeos-base/chromeos-bsp-labstation/files/init/servod-usb-lock-file.conf

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 2 2016

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

commit 719b66ed94579397cf4133bd21df0f6eee0ebb1c
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Aug 08 19:20:51 2016

servo_postinit: Update init_servo_micro for ServoV4PostInit.

Originally when initializing a servo micro with a servo v4, I would just
tack on the servo micro control file at the end.  That doesn't work well
when some of the controls in servo_micro.xml should be overridden by the board
control files.  I've updated the method to re-initialize the
SystemConfig object with servo_micro.xml at top so that its controls are
properly overridden by the specified board control file.

BUG= chromium:599538 
TEST=start 'servod -b veyron_mighty' doesn't fail with spi1_vref not
being clobber'able.

Change-Id: I828d357da7e17f16d3340e890d2ddbec15887cdb
Reviewed-on: https://chromium-review.googlesource.com/367110
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/719b66ed94579397cf4133bd21df0f6eee0ebb1c/servo/servo_postinit.py
[modify] https://crrev.com/719b66ed94579397cf4133bd21df0f6eee0ebb1c/servo/system_config.py

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 2 2016

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

commit 719b66ed94579397cf4133bd21df0f6eee0ebb1c
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Aug 08 19:20:51 2016

servo_postinit: Update init_servo_micro for ServoV4PostInit.

Originally when initializing a servo micro with a servo v4, I would just
tack on the servo micro control file at the end.  That doesn't work well
when some of the controls in servo_micro.xml should be overridden by the board
control files.  I've updated the method to re-initialize the
SystemConfig object with servo_micro.xml at top so that its controls are
properly overridden by the specified board control file.

BUG= chromium:599538 
TEST=start 'servod -b veyron_mighty' doesn't fail with spi1_vref not
being clobber'able.

Change-Id: I828d357da7e17f16d3340e890d2ddbec15887cdb
Reviewed-on: https://chromium-review.googlesource.com/367110
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/719b66ed94579397cf4133bd21df0f6eee0ebb1c/servo/servo_postinit.py
[modify] https://crrev.com/719b66ed94579397cf4133bd21df0f6eee0ebb1c/servo/system_config.py

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 2 2016

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

commit c99d71ef956afc0b3900a1699453e06ee194eaaf
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Aug 08 23:30:06 2016

servo_micro: Enable uart capture for stm32uart.

BUG= chromium:599538 
TEST=ran firmware_FAFTSetup and {cpu,ec}_uart logs were properly
captured.

Change-Id: Ic239b867dcd7f2caedee92af0733d68b66e13597
Reviewed-on: https://chromium-review.googlesource.com/367887
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Nick Sanders <nsanders@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/c99d71ef956afc0b3900a1699453e06ee194eaaf/servo/stm32uart.py
[modify] https://crrev.com/c99d71ef956afc0b3900a1699453e06ee194eaaf/servo/ftdiuart.py
[modify] https://crrev.com/c99d71ef956afc0b3900a1699453e06ee194eaaf/servo/data/servo_micro.xml

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 2 2016

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

commit c49494e1cd5061b7b74ff0a0a2a1badc81f43545
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Jul 25 19:13:38 2016

servod: Make usb detection safe against multiple servod instances.

Also expose probe_host_usb_dev as a public RPC so autotest can use this
as well.

BUG= chromium:599538 
TEST=Locally with a servo v4 and servo v2 checking for usb devices at
the same time.  Both properly detected their own usb devices.

Change-Id: I92efa09c8bcf900baf6fedf1aa8884a3eb254f80
Reviewed-on: https://chromium-review.googlesource.com/373560
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/c49494e1cd5061b7b74ff0a0a2a1badc81f43545/servo/servo_server.py

Project Member

Comment 15 by bugdroid1@chromium.org, Sep 13 2016

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

commit 3931cbc14c2f991bb2115c432570e2dd2b1ca02b
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Mon Aug 08 23:30:06 2016

servo_v4: Add in missing controls used for USB detection/activation.

Added in the missing controls as aliases or new controls:
- usb_mux_oe1
- prtctl4_pwren
- usb_mux_sel1

BUG= chromium:599538 
TEST=passed platform_ServoPowerStateController and could successfully
probe for correct usb device.

Change-Id: I4673145d7502ce03c159506b4bceb3cc88669b2c
Reviewed-on: https://chromium-review.googlesource.com/367953
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Nick Sanders <nsanders@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[modify] https://crrev.com/3931cbc14c2f991bb2115c432570e2dd2b1ca02b/servo/data/servo_v4.xml

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 22 2016

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

commit 168b140a1df295c9e35657fc7ece4ddc118bf93b
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Wed Sep 21 18:48:47 2016

start_servod.conf: Create servod config dir if it doesn't exist.

BUG= chromium:599538 
TEST=locally on a labstation

Change-Id: Ia0496caf53d1876f85b766447f71e78d401d16d7
Reviewed-on: https://chromium-review.googlesource.com/387712
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>

[modify] https://crrev.com/168b140a1df295c9e35657fc7ece4ddc118bf93b/chromeos/start_servod.conf

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 28 2016

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

commit 4371108d81aeb43a4f555382ca4c9791055cfe8d
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Tue Sep 27 19:17:08 2016

start_servod.conf: Fix CONFIG_DIR to be an env.

BUG= chromium:599538 
TEST=locally on labstation

Change-Id: Ifd0a69a3e98db3dd097a44be78c9331a56131d8b
Reviewed-on: https://chromium-review.googlesource.com/389958
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>

[modify] https://crrev.com/4371108d81aeb43a4f555382ca4c9791055cfe8d/chromeos/start_servod.conf

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 1 2016

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

commit 7907a883de1bc104b28cbe518050c09ac9c34abc
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Fri Sep 30 05:47:02 2016

servo v4: Remove init from usb_mux_oe1, prtctl4_pwren and usb_mux_sel.

servod's hwinit gets invoked quite a bit (especially during deployment)
which can cause havoc during usb key probing.  Servo v2/v3 don't init
these controls, I understand why now. Time to get servo v4 on the same
page.

BUG= chromium:599538 
TEST=Ran updated controls on servo v4, firmware_FAFTSetup still passes.

Change-Id: I76e43d6b4852f92fd9428906290d461e93f096d8
Reviewed-on: https://chromium-review.googlesource.com/391235
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/7907a883de1bc104b28cbe518050c09ac9c34abc/servo/data/servo_v4.xml

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 1 2016

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

commit 5595b34430872f0705710dc2d0e25d579cfe2b42
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Thu Sep 29 22:51:01 2016

servod: Update safe usb probing and add 2 additional RPCs.

Added the following rpcs to enable safe usb probing.
- safe_switch_usbkey_power
- safe_switch_usbkey

Autotest toggles the power and mux direction for the usb key prior to
probing for it.  I added a safe option for them so that the
power/direction can be toggled without screwing with another servod's
probing.

I also refactored the blocking to be a bit more foolproof and easier to
use.

BUG= chromium:599538 
TEST=locally on a servo host with 3 servo v4s probing simultaneously and
all found their usb devices.

Change-Id: I4e35f102286015856b58bb0c6c6174c85e201120
Reviewed-on: https://chromium-review.googlesource.com/391236
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/5595b34430872f0705710dc2d0e25d579cfe2b42/servo/servo_server.py

Project Member

Comment 20 by bugdroid1@chromium.org, Oct 1 2016

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

commit 7907a883de1bc104b28cbe518050c09ac9c34abc
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Fri Sep 30 05:47:02 2016

servo v4: Remove init from usb_mux_oe1, prtctl4_pwren and usb_mux_sel.

servod's hwinit gets invoked quite a bit (especially during deployment)
which can cause havoc during usb key probing.  Servo v2/v3 don't init
these controls, I understand why now. Time to get servo v4 on the same
page.

BUG= chromium:599538 
TEST=Ran updated controls on servo v4, firmware_FAFTSetup still passes.

Change-Id: I76e43d6b4852f92fd9428906290d461e93f096d8
Reviewed-on: https://chromium-review.googlesource.com/391235
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/7907a883de1bc104b28cbe518050c09ac9c34abc/servo/data/servo_v4.xml

Project Member

Comment 21 by bugdroid1@chromium.org, Oct 1 2016

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

commit 5595b34430872f0705710dc2d0e25d579cfe2b42
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Thu Sep 29 22:51:01 2016

servod: Update safe usb probing and add 2 additional RPCs.

Added the following rpcs to enable safe usb probing.
- safe_switch_usbkey_power
- safe_switch_usbkey

Autotest toggles the power and mux direction for the usb key prior to
probing for it.  I added a safe option for them so that the
power/direction can be toggled without screwing with another servod's
probing.

I also refactored the blocking to be a bit more foolproof and easier to
use.

BUG= chromium:599538 
TEST=locally on a servo host with 3 servo v4s probing simultaneously and
all found their usb devices.

Change-Id: I4e35f102286015856b58bb0c6c6174c85e201120
Reviewed-on: https://chromium-review.googlesource.com/391236
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/5595b34430872f0705710dc2d0e25d579cfe2b42/servo/servo_server.py

Project Member

Comment 22 by bugdroid1@chromium.org, Oct 14 2016

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

commit 8fcf06c1be7ddb3a9672fdda8761a84a7569225e
Author: Kevin Cheng <kevcheng@chromium.org>
Date: Wed Oct 12 15:02:44 2016

servod: Update safe switch usbkey mux direction and power to default 0.

I'm changing the RPC to default to 0 (wait forever) since these are
'safe' versions of what they're trying to do.  If the caller wants to
limit the safety, then they can pass in a specific timeout.

BUG= chromium:599538 
TEST=locally on servo host with 8 servo v4s running firmware_FAFTSetup
simultaneously, all test passes.

Change-Id: I0cb8ece16d37ef1bade348b085566d6923eb1894
Reviewed-on: https://chromium-review.googlesource.com/397298
Commit-Ready: Kevin Cheng <kevcheng@chromium.org>
Tested-by: Kevin Cheng <kevcheng@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[modify] https://crrev.com/8fcf06c1be7ddb3a9672fdda8761a84a7569225e/servo/servo_server.py

Comment 23 by dchan@chromium.org, Oct 26 2016

Labels: servov4
Project Member

Comment 24 by bugdroid1@chromium.org, Nov 8 2016

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

commit 21a4f3cfe65a776f45a7f74dab7340b151a3e79f
Author: Wai-Hong Tam <waihong@google.com>
Date: Fri Oct 07 17:26:25 2016

servo_postinit: Factor out UsbHierarchy and reduce instance variables

No behavior changes. Some refactoring is made:
 - Factor out the USB sysfs logic to UsbHierarchy from ServoV4PostInit;
 - reduce the use of instance variables;
 - remove unnecessary varaible-caching as only used once.

BUG= chromium:599538 
TEST=Locally run inside chroot:
$ cros_workon --host start hdctools
$ sudo emerge hdctools
$ sudo servod -c servo_v4.xml -v 0x18d1 -p 0x501b
$ dut-control lid_open  # a control only defined in micro-servo

Change-Id: I6bfb7f975c8f33916538cd80d2d4feb70d34e258
Reviewed-on: https://chromium-review.googlesource.com/395579
Commit-Ready: Wai-Hong Tam <waihong@google.com>
Tested-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Wai-Hong Tam <waihong@google.com>

[modify] https://crrev.com/21a4f3cfe65a776f45a7f74dab7340b151a3e79f/servo/servo_postinit.py

Project Member

Comment 25 by bugdroid1@chromium.org, Nov 8 2016

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

commit 4b2359247e1a6250d46cc0fcc1d2846124d4f0b4
Author: Wai-Hong Tam <waihong@google.com>
Date: Fri Oct 07 19:26:22 2016

servo_postinit: Refactor methods to get better reusability

No behavior changes. Improve some methods in servo_postinit.py to
prepare supporting CCD USB device behind servo v4.

BUG= chromium:599538 
TEST=Locally run inside chroot:
$ cros_workon --host start hdctools
$ sudo emerge hdctools
$ sudo servod -c servo_v4.xml -v 0x18d1 -p 0x501b
$ dut-control lid_open  # a control only defined in micro-servo

Change-Id: I5c32f21ab0d350b0ba2c4ee1fece893431531865
Reviewed-on: https://chromium-review.googlesource.com/395580
Commit-Ready: Wai-Hong Tam <waihong@google.com>
Tested-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Wai-Hong Tam <waihong@google.com>

[modify] https://crrev.com/4b2359247e1a6250d46cc0fcc1d2846124d4f0b4/servo/servo_postinit.py
[modify] https://crrev.com/4b2359247e1a6250d46cc0fcc1d2846124d4f0b4/servo/servo_server.py

Project Member

Comment 26 by bugdroid1@chromium.org, Nov 8 2016

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

commit 85b4ced98464609a9816ba75848a81df81e97df4
Author: Wai-Hong Tam <waihong@google.com>
Date: Fri Oct 07 21:15:38 2016

servo_postinit: Support finding CCD behind v4 and initialize it

Iterate all the avaiable CCD endpoint and find one behavior servo v4.
Initialize its config ccd_cr50.xml.

We assume the servo v4 setup is to connect a servo-micro (legacy).
If not, to connect a CCD-capable DUT via the Type-C cable. So only
add the CCD interface iff no servo-micro is detected.

BUG= chromium:599538 ,chrome-os-partner:56835
TEST=Connected CCD DUT and no servo-micro. Locally run inside chroot:
$ cros_workon --host start hdctools
$ sudo emerge hdctools
$ sudo servod -c servo_v4.xml -v 0x18d1 -p 0x501b
$ dut-control cr50_console_pty  # a control only defined in ccd_cr50

Change-Id: I4d1ff71aa653c112ded6cf62ac578c2e31a551a5
Reviewed-on: https://chromium-review.googlesource.com/395581
Commit-Ready: Wai-Hong Tam <waihong@google.com>
Tested-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Wai-Hong Tam <waihong@google.com>

[modify] https://crrev.com/85b4ced98464609a9816ba75848a81df81e97df4/servo/servo_postinit.py
[modify] https://crrev.com/85b4ced98464609a9816ba75848a81df81e97df4/servo/servo_server.py
[modify] https://crrev.com/85b4ced98464609a9816ba75848a81df81e97df4/servo/data/servo_v4_p0.xml
[modify] https://crrev.com/85b4ced98464609a9816ba75848a81df81e97df4/servo/data/servo_v4.xml

Status: Started (was: Untriaged)
Status: Fixed (was: Started)

Comment 29 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 30 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 32 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)

Sign in to add a comment