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

Issue 651860 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 655176



Sign in to add a comment

servo v4 does not power on uServo on init

Project Member Reported by kevcheng@chromium.org, Sep 30 2016

Issue description

The latest fw with the latest servo v4 build doesn't power on the uServo on init, but when initialized with servod, will then power on the uServo.

This will cause problems during deployment since none of the uServo controls will be available until servod is restarted (causing deployment to fail).  A new servo v4 fw will be needed to fix this. 

The workaround if we can't fix this before the deployment is to run the initial deployment script, watch it fail, run the following command on the labstationand then rerun the deployment:

# ssh root@<labstation hostname>
# for PORT in $(ls /var/lib/servod/config_* | cut -d _ -f 2); do restart servod PORT=$PORT; done

All of the config files should be created and servod started on the v4s so the uServo will get powered on but not detected in time, a restart of servod should then properly initialize the uServo with the v4.


I'll take a first pass to see why the uServo isn't powered on since the fw should be doing it.  Nick might have an idea of what might be the issue though.
 
Cc: -kevcheng@chromium.org nsanders@chromium.org
Owner: kevcheng@chromium.org
This might be a one-off actually, this only happens consistently on one servo v4 (ND00001).  I'll take this bug to confirm.
nevermind, it's not a one-off, all the servo v4s exhibit this (plugging all servo v4s into a guado, only see 18d1:501b in lsusb, after running servod for the servo v4, then 18d1:501a pops up).
Project Member

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

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

commit 155b8d6100b92921efe185c101cd2f90072e0b2f
Author: Nick Sanders <nsanders@chromium.org>
Date: Fri Oct 07 03:55:41 2016

servo_v4: update uservo port init for tca6416

Make sure that ioexpander is set to output,
and that the uservo usb power enable is set.

BUG= chromium:651860 
TEST=check that servo micro is initialized properly
BRANCH=None

Change-Id: Iff994c63cd333933d51db38202a41b7b6fc86d66
Signed-off-by: Nick Sanders <nsanders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/395186
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>

[modify] https://crrev.com/155b8d6100b92921efe185c101cd2f90072e0b2f/board/servo_v4/board.c

Status: Verified (was: Untriaged)
Flashed ToT on servo v4 and uServo comes up, will be writing up a script to update the fw on the v4 (to retain the serial) and giving instructions to lab.
flashing script is here
update_v4.py
2.0 KB View Download
I'd recommend not using dfu for update since you will need to plug and unplug it with the OTG cable.. You can use the ec usb updater (in ec/extras/usb_updater) which will preserve the serial number. You'll need to update RO and RW in two steps.
Blocking: 655176

Sign in to add a comment