summaryrefslogtreecommitdiff
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* Show run time of unit testsVic Yang2013-05-141-2/+7
| | | | | | | | | | | | | This is useful for finding out which test runs for too long. BUG=chrome-os-partner:19235 TEST=Run tests and see run time logged. BRANCH=None Change-Id: I5cb6727b2e1017fce1107e4892c1898e66598492 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/51105 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Redirect emulator output to stderr if a test failsVic Yang2013-05-141-3/+25
| | | | | | | | | | | | | | If a test fails, redirect emulator output to stderr so that it shows up even when V=1 is not set. BUG=chrome-os-partner:19235 TEST=Manual BRANCH=None Change-Id: I6d8e05eaa222ebe043556bfcd3f63ca7e27c2721 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/51097 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Slippy: Changes needed to boot EC without bricking.Bill Richardson2013-05-101-1/+1
| | | | | | | | | | | | | | | | This commits the hacks made during board bringup. Bugs can be filed and fixed based on this starting point. BUG=chrome-os-partner:18825 BRANCH=slippy TEST=manual Try it and see. Change-Id: Ia663eaf9a357633873b1b5d5cc6dbdda63513082 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/50875 Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
* Implement I2C passthru commandRandall Spangler2013-05-091-0/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a revised version of passthru which more closely resembles the kernel interface. It allows multiple read/write messages in a single transaction, and sends back one accumulated result. BUG=chrome-os-partner:18778 BRANCH=none TEST=On link, from root shell: ectool i2cxfer 0 0xb 6 0x21 Read bytes: 0x05 0x41 0x52 0x52 0x4f 0x57 (I did not actually run this with the updated code) On pit, in U-Boot: Read i2c values: Peach # crosec i2c md 48 0 0000: 00 00 3e 00 12 20 4b bf ff ff 20 00 1e 1e 1e 1f ..>.. K... ..... Peach # crosec i2c md 48 0 20 0000: 00 00 3e 00 12 20 4b bf ff ff 20 00 1e 1e 1e 1f ..>.. K... ..... 0010: 1f 1f 1f 1f 1f 1f 20 00 00 07 00 00 00 00 00 00 ...... ......... Update value at offset 10: Peach # crosec i2c mw 48 10 4 Peach # crosec i2c md 48 0 20 0000: 00 00 3e 00 12 00 0b 1f 1f ff 20 00 1e 1e 1e 1f ..>....... ..... 0010: 04 1f 1f 1f 1f 1f 20 00 00 07 00 00 00 00 00 00 ...... ......... Peach # On pit, in kernel: localhost ~ # i2cdetect -y -a -r 20 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- localhost ~ # i2cdump -f -y 20 0x48 No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 00 00 3e 00 12 00 0b 1f 1f ff 20 00 1e 1e 1e 1f ..>.?.???. .???? 10: 1f 1f 0e 1f 1f 0e 20 00 00 07 00 00 00 00 00 00 ?????? ..?...... 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ localhost ~ # i2cset -f -y 20 0x48 0x10 0 localhost ~ # i2cdump -f -y 20 0x48 No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 00 00 3e 00 12 00 0b 1f 1f ff 20 00 1e 1e 1e 1f ..>.?.???. .???? 10: 00 1f 0e 1f 1f 0e 20 00 00 07 00 00 00 00 00 00 .????? ..?...... 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ localhost ~ # i2cset -f -y 20 0x48 0x10 0x1f localhost ~ # i2cdump -f -y 20 0x48 No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 00 00 3e 00 12 00 0b 1f 1f ff 20 00 1e 1e 1e 1f ..>.?.???. .???? 10: 1f 1f 0e 1f 1f 0e 20 00 00 07 00 00 00 00 00 00 ?????? ..?...... Change-Id: I14d47e1712828f726ac5caddc4beede251570ad3 Signed-off-by: Randall Spangler <rspangler@chromium.org> Updated to simplify protocol: Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49958 Commit-Queue: Doug Anderson <dianders@chromium.org> Reviewed-by: Doug Anderson <dianders@chromium.org> Tested-by: Doug Anderson <dianders@chromium.org>
* Pthread-based emulator for unit testingstabilize-4100.38.BVic Yang2013-05-071-0/+26
| | | | | | | | | | | | | | This is the first version of pthread-based RTOS emulator. With this, we will be able to test high-level modules entirely on the host machine. BUG=chrome-os-partner:19325 TEST='make runtests' and see tests passing. BRANCH=None Change-Id: I1f5fcd76aa84bdb46c7d35c5e60ae5d92fd3a319 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49954 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Improved the BUILD_ASSERT macro to work outside of functions.Bill Richardson2013-04-292-7/+2
| | | | | | | | | | | | | | | | | | This will let us check the size of static array initializers. Also moved this macro definition and ARRAY_SIZE into a new "tricks.h" header, so that userspace utils can use it too. BUG=none BRANCH=none TEST=manual Built everything, tested on Link. Tried various assertions. Change-Id: I612891108ea37dbca3572e0f25ab54a7bc0ed860 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49417 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Add pit support to flash_ecRandall Spangler2013-04-261-1/+1
| | | | | | | | | | | | | Pit flashes the same way daisy does. BUG=chrome-os-partner:18657 BRANCH=none TEST=./util/flash_ec --board=pit --ro --image=build/pit/ec.bin Change-Id: Id3db86b348963f66e7eb03c38a8efabe3379d21b Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49320 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Allow either libftdi or libftdi1 at compile time.Todd Broch2013-04-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Todd Broch <tbroch@chromium.org> BRANCH=none BUG=chromium:222299 TEST=manual, from chroot: 1. Install libftdi1 (https://gerrit.chromium.org/gerrit/#/c/44731/) 2. cd <path>/ec && make -B - compiles successfully 3. Install libftdi 4. cd <path>/ec && make -B - still compiles successfully Change-Id: I6818d53faa1389937872b0a9826534db4760e448 Reviewed-on: https://gerrit.chromium.org/gerrit/47875 Tested-by: Todd Broch <tbroch@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Commit-Queue: Todd Broch <tbroch@chromium.org>
* flash_ec: add support for flashing with Toad cableVincent Palatin2013-04-161-12/+48
| | | | | | | | | | | | | | | | | | | | Add support for flashing Spring board through the Toad cable (given the Write Protect screw is not on). Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=spring BUG=chrome-os-partner:17570 TEST=with both a Toad cable and a servo v2, flash EC on Spring EVT with the following command: ./util/flash_ec --board=spring and check the state of the servo/toad before and after. Change-Id: Ia4e0d32b062d58b4e906d3f006003fa6097add83 Reviewed-on: https://gerrit.chromium.org/gerrit/48031 Reviewed-by: Todd Broch <tbroch@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
* Strip out old LPC command protocolRandall Spangler2013-04-113-71/+15
| | | | | | | | | | | | | | | | | | | | | | Nothing has used this since link EVT, so it's just dead code at this point. BUG=chrome-os-partner:13213 BRANCH=none TEST=manual - Update ectool but leave old firmware - ectool version -> works - ectool flashread 0 0x10000 foo -> puts the first 64KB of EC flash into foo - Update firmware - ectool version -> works - ectool flashread 0 0x10000 foo -> puts the first 64KB of EC flash into foo - power+esc+refresh -> recovery mode Change-Id: Ib25a705bcd8280d5295c8e7890969d796542b6c9 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/47866 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* spring: Add host command to limit external power currentVic Yang2013-04-021-0/+26
| | | | | | | | | | | | | | This is useful for debugging and the factory. BUG=chrome-os-partner:18530 TEST=On spring, check we can set PWM duty cycle and can go back to automatic control. BRANCH=spring Change-Id: I3da75f0a356cc0f21d748bf135e3b95fbd9c465b Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/47105 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Remove unused EC_SWITCH_KEYBOARD_RECOVERYRandall Spangler2013-04-021-3/+1
| | | | | | | | | | | | | | | | | This was left over from the way we reported keyboard recovery early in link/snow, before we had host events. No shipping EC ever reported it. Coreboot and u-boot look for this flag, so we can't repurpose it until they ignore it too. BUG=chrome-os-partner:18512 BRANCH=none TEST=compile link,spring Change-Id: I38fbf0fa7d958c3774c8b293d4be25faaecdadea Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/47058 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Move keyboard dimension and key constants to keyboard_config.hRandall Spangler2013-03-221-9/+4
| | | | | | | | | | | | | | These were previously duplicated between multiple keyboard_scan.c and board.c files, and there were a bunch of different constants #defined to be 13. BUG=chrome-os-partner:18360 BRANCH=none TEST=compile all boards; test keyboard on spring and link Change-Id: I91bf9d56d2a56ff25ff307ff10883ca87b6937e5 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/46165
* stm32: Force disconnect of UART prior to writing firmware.Todd Broch2013-03-131-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For chromeos devices with the stm32 EC we write the firmware via uart. Often developers are connected to this UART for console I/O which causes flash_ec to fail. This change looks for any pids currently attached to the UART and forcibly kills them prior to attempting to write the firmware. Signed-off-by: Todd Broch <tbroch@chromium.org> BRANCH=spring BUG=none TEST=manual, ./util/flash_ec --board spring ... Forcibly grabs UART from both: cu -l /dev/pts/<num> minicom -p /dev/pts/<num> Change-Id: Ie2a2b7aaf437c2cedd1d16e399c63068f2b02da3 Reviewed-on: https://gerrit.chromium.org/gerrit/45217 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Commit-Queue: Todd Broch <tbroch@chromium.org> Tested-by: Todd Broch <tbroch@chromium.org>
* Update lbplay.c with correct cooperative locking.Bill Richardson2013-03-131-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | BUG=none BRANCH=none TEST=manual Build it manually, copy lbplay to DUT, run lbplay & ectool simultaneously. cd /mnt/stateful_partition mount -o remount,exec . scp USER@SOMEWHERE:/SOME/PATH/TO/lbplay . ./lbplay & ectool lightbar params ectool lightbar params ectool lightbar params The lbplay program should cause the lightbar to slowly ramp up to green and down to red. Meanwhile, the ectool command should work and not hang. Change-Id: I4f26b0530ceaacbc18f8b9f38d7cbdfdabf78015 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/45257 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* temp_metrics: use iotools wrmsr instead of wrmsrSameer Nanda2013-02-261-3/+3
| | | | | | | | | | | | | | | | | Use the "iotools wrmsr" command instead of the wrmsr alias since iotools ebuild no longer installs the symlinks by default. BUG=chromium-os:39180 TEST=On a Pixel issue "sudo start temp_metrics" and check /var/log/messages to ensure that no new messages such as "init: temp_metrics main process ended, respawning" show up. BRANCH=none Change-Id: I46cd8770c7e6c1af1affe8e2100033a29b9a90bb Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/44073 Reviewed-by: Luigi Semenzato <semenzato@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org>
* spring: Add host command to read power infoVic Yang2013-02-191-0/+21
| | | | | | | | | | | | | | Getting voltage and current can be handy when verifying hardware design. Let's add host command to do this. BUG=chrome-os-partner:17880 TEST=Manual on Spring BRANCH=none Change-Id: I4d4f6a42a9d0f917292d092e132ccd9ce3367fd6 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43508 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Unify dut-control command.Todd Broch2013-02-131-3/+5
| | | | | | | | | | | | | | | | | | | | Previous CL included --port but I neglected one invocation. Better to just unify how dut-control is called with a global. BRANCH=none BUG=none TEST=manual, ./util/flash_ec --board spring - device connected to servod @ port 9999 is successfully flashed ./util/flash_ec --board spring --port 9902 - device connected to servod @ port 9902 is successfully flashed Change-Id: I9cf57d0ddd94cf825d3015f9768effffca94eaf2 Signed-off-by: Todd Broch <tbroch@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43222 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Allow flashing of EC binary from host with multiple servod invocations.Todd Broch2013-02-131-4/+7
| | | | | | | | | | | | | | | | | | | | Adds argument --port to provide ability to flash from host that has multiple servos running. BRANCH=none BUG=none TEST=manual, ./util/flash_ec --board spring - device connected to servod @ port 9999 is successfully flashed ./util/flash_ec --board spring --port 9902 - device connected to servod @ port 9902 is successfully flashed Signed-off-by: Todd Broch <tbroch@chromium.org> Change-Id: Iecc4b8df51236a1f21be5feca8bb87f5a1d03e97 Reviewed-on: https://gerrit.chromium.org/gerrit/43182 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Rename and document battery constantsRandall Spangler2013-02-121-8/+0
| | | | | | | | | | | | | | | | | | | | | In preparation for cleaning up low-battery logic. Make clear what comparison operator is used for each constant (<=, <, >=, >). Also remove hard-coded and unused display of design warning/low battery levels from ectool. Verified via code search that these are not used anywhere. Even if we later care about these levels, they should be battery-specific and not hard-coded as a platform-independent percentage of full capacity when ectool is compiled. BUG=chrome-os-partner:17124 BRANCH=link TEST=compile link; 'ectool battery' from root shell prints valid info Change-Id: I3650e27a08f4cc77067beb0685ee1488cc56d02f Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43119 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* stm32mon: add back flashing progressionVincent Palatin2013-02-061-8/+9
| | | | | | | | | | | | | | | | | | | As we no longer have the low-tech dots to show the progression of the on-going flashing, display a completion percentage to give the user a hint of the ETA. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=none TEST=./util/flash_ec --board=spring and see accurate progression percentage reported. Change-Id: I75ccbe3433acd6c94d03a08bf462ea4516e4ce02 Reviewed-on: https://gerrit.chromium.org/gerrit/42733 Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* Modify stm32mon to better suite autotest useVadim Bendebury2013-02-051-17/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces the following modifications: When used outside chroot on Goobuntu the serial interface fails to initialize if parity enable bit is set (for a reason not clearly understood). On top of that the tcsetattr() return value of zero is not a guarantee of success. To be sure that the settings came through one is supposed to read back the driver config and compare it with the desired config. To add insult to injury, gPrecise driver rejects attempts to enable parity. Parity setting is not essential in many cases, this is why we check the actual config and if the only missing setting is parity we print a warning message and continue. In case an operation fails, the exit value should reflect that (so that the autotest suite using the utility could report failure). Often when the programming attempt is undertaken soon after reset, this utility gets overwhelmed with the console output generated by the EC on resets. Consume the output before proceeding. Instead of printing a long set of dots (one per written/read block), print a spinning wheel instead. BRANCH=None BUG=chrome-os-partner:15610 TEST=manual . used the utility to program Snow EC both inside and outside chroot, it succeeded. Observed the failing attempt to set parity when running outside chroot. Observed spinning characters instead of stream of dots. Change-Id: Id25595d35a2a3ca578639cebd508f599e618787c Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42310 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* stm32mon: add ID for stm32f102r8stabilize-3658.0.0David Hendricks2013-01-301-0/+1
| | | | | | | | | | | | | | | | | | This adds a table entry for stm32f102r8. BRANCH=none BUG=none TEST=ran flash_ec successfully on an stm32f102r8 (see notes below) ChipID 0x410 : STM32F102R8 Bootloader v2.2, commands : 00 01 02 11 21 31 43 63 73 82 92 Flash erased. Writing 65536 bytes at 0x08000000 ... (many more dots) ...Done. Signed-off-by: David Hendricks <dhendrix@chromium.org> Change-Id: I1f4af0413a4df2c09a1043bdc78a429b79c28533 Reviewed-on: https://gerrit.chromium.org/gerrit/42270 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* temp_metrics: set GPU min frequency to 450Sameer Nanda2013-01-171-5/+1
| | | | | | | | | | | | | | | | Removed the check for modem device and now unconditionally setting the GPU min frequency to 450. BUG=chrome-os-partner:16439 TEST="cat /sys/kernel/debug/dri/0/i915_min_freq" and verify that it returns 450 for systems with and without modem device. BRANCH=none Change-Id: I34d176e65420834a85a02755bad11124432ac33f Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/41564 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
* Add 'unprotect' flag for flashing link ec.Dave Parker2013-01-171-4/+15
| | | | | | | | | | | | | | | BRANCH=link BUG=chromium-os:37967 TEST=Remove write protect, reflash without 'unprotect', flag and verify the write protect flag is stil enabled with flashrom -p internal:bus=lpc --wp-status. Power down, then reflash with the --unprotect flag. Now verify the write protect status flag is disabled. Change-Id: Ie05b5dc85dd31d29ab43a392fe948a52d547fff3 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/41477 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* spring: Add a host command for USB mux switchingVic Yang2013-01-081-0/+31
| | | | | | | | | | | | | | To make test and bring-up easier, adds a host command for USB mux switching. BUG=chrome-os-partner:17111 TEST=manual BRANCH=none Change-Id: I9da43fe934881ce24f326275ef312c4e6a474f11 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/40586 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* temp_metrics: Set GPU min freqSameer Nanda2012-11-281-4/+19
| | | | | | | | | | | | | | | | | | On systems with modems, a harmonic of the lowest GPU frequency of 350Mhz interferes with the cellular signal. Set the minimum GPU frequency for such systems to 450Mhz. BUG=chrome-os-partner:16439 TEST="cat /sys/kernel/debug/dri/0/i915_min_freq". On systems without this modem, it should read back 350. On systems with the modem, it should read back 450. BRANCH=none Change-Id: I103a55af11955aed2f3e8c945904444475c63865 Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/38826 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org>
* link: allow to decrease maximum battery charging currentVincent Palatin2012-11-071-0/+26
| | | | | | | | | | | | | | | | | | | | | Add an interface to allow the CPU to cap the maximum battery charging current. The maximum is removed every time the machine goes to S3 or S5. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=link BUG=chrome-os-partner:16041 TEST=on Link, plug AC to charge the battery, then run "ectool chargecurrentlimit 1200" and see the charging current in "power-supply-info" decreasing to 1.2 A. Change-Id: I10900e1c264d2db67809638ec0dcb836d721fa75 Reviewed-on: https://gerrit.chromium.org/gerrit/37532 Reviewed-by: Sameer Nanda <snanda@chromium.org> Reviewed-by: Rong Chang <rongchang@chromium.org> Commit-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
* Fix the ec flash programming script to properly handle errorsVadim Bendebury2012-11-071-17/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When a nonexisting file is specified as the EC image, the ec flash programming script reports the error, but continues running and returns zero status (success) after completion. With this change the exit status on some errors gets communicated to the caller. The openocd script is edited to drop the unused parameter of the flash_lm4() function and the flash_ec script is edited not to require EC images to be executable. BRANCH=none BUG=chrome-os-partner:15610 TEST=manual . run flash_ec with nonexisting or nonreadable file as a parameter, observe it to report proper return status. Run it with a proper image file name and observe it succeed. . run the command again, while the device is being programmed enter 'ctl-c', observe programming stepped but the 'Restoring servo settings..." message still showing up. Change-Id: Iac0b233fe579b0d5a84cf5a9acf85ed8bf10422e Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/37363 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* ectool: Add keyscan test featuresSimon Glass2012-11-014-2/+719
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a way of easily setting up keyscan tests using a simple text file format. The steps to run a test are as follows: - read the test file - read the key matrix information - translate the ascii characters from tests into keyscan codes - send the keyscan codes to the EC - tell the EC to start the test - wait for the required time, then collect what input we have received - check that the input matches the expected input BUG=chrome-os-partner:12179 BRANCH=none TEST=manual for now: On snow: ./ectool keyscan 10000 key_sequence.txt See that the test passes. Change-Id: I7de646205803a99443503a1b4bbf32f5fe89c534 Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35119 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* snow: fail battery command on unsupported systemRong Chang2012-11-011-0/+6
| | | | | | | | | | | | | | | | | GEC exports battery information to host via mapped memory. This change fails ectool battery command on unsupported system. Signed-off-by: Rong Chang <rongchang@chromium.org> BUG=chrome-os-partner:15272 BRANCH=none TEST=manual, type ectool battery under VT2 Change-Id: I260921eaa679cd3f20fc390472a7e7d64d181a7f Reviewed-on: https://gerrit.chromium.org/gerrit/37011 Commit-Ready: Rong Chang <rongchang@chromium.org> Reviewed-by: Rong Chang <rongchang@chromium.org> Tested-by: Rong Chang <rongchang@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* temp_metrics: tmp006 calibration updateSameer Nanda2012-10-231-4/+3
| | | | | | | | | | | | | | | | | | | Updated S0 calibration settings based on DVT3 systems. De-activate the PCH sensor in the thermal loop as its accuracy is poor. BUG=chrome-os-partner:9599 TEST=run "for i in {0..3}; do echo $i: && ectool tmp006cal $i; done" and make sure the S0 values are the same as those programmed by temp_metrics.conf. BRANCH=none Change-Id: I2b4395d3c74ce4610f57ee90f6cd3f0d7467d31b Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/36000 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
* Fix help message for ectoolRandall Spangler2012-10-221-1/+1
| | | | | | | | | | | | | | Not all of the options for reboot_ec were listed. This fixes the text; there are no code changes. BUG=none BRANCH=none TEST=run ectool with no options to print help Change-Id: I65275a007febbd3583f157cc7f8df5634d6eeeda Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/36257 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Make S3 red-light flash adjustable.Bill Richardson2012-10-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the timing for the S3 low-power indicator adjustable without reflashing. BUG=chrome-os-partner:8039 BRANCH=Link TEST=manual Boot, log in, run this to put the lightbar into demo mode: ectool lightbar demo 1 ectool lightbar seq s3s0 The lightbar should act as though the system is asleep. Then press the left arrow a couple of times and the down-arrow four or five times. You should see the red light pulse every 5 seconds or so. Now run ectool lightbar params > /tmp/w Edit /tmp/w to change the timing lines to this: 100 # .s3_ramp_up 100 # .s3_ramp_down Then run ectool lightbar params /tmp/w After a cycle or two, you should see the lightbar flash instead of pulse. Change-Id: If815ff2fb9a158c0e1f4dbb6a269ad07e122d84c Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35839 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Fix lightbar bug, add more tweaks.Bill Richardson2012-10-151-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I introduced a glitch in the parameterization CL. This fixes it, and makes the choice between the gentle throbbing and occasional pulse something that can be selected as a parameter. Default is the new pulsey style. BUG=chrome-os-partner:8039 BRANCH=Link TEST=manual Using the ectool that's part of this change, run these commands to flip between suspend and active displays: ectool lightbar seq s3s0 ectool lightbar seq s0s3 Change the "new_s0" value (0/1) and reload the params with ectool lightbar params | tee /tmp/w vi /tmp/w ectool lightbar params /tmp/w In each case you'll see some pretty patterns. Pass/Fail is an artistic decision. No QA required. Change-Id: I8de0b1b3cc77f65879befe95e110bbbce18846d9 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35620 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* temp_metrics: disable ACPI thermal zone 1Sameer Nanda2012-10-151-0/+6
| | | | | | | | | | | | | | | | | | ACPI thermal zone 0 is used for critical thermal events while thermal zone 1 is used for asserting (internal) prochot and duty cycling. Since the equivalent of thermal zone 1 functionality exists in temp_metrics, disable ACPI's thermal zone 1 in order to prevent conflicts between ACPI and temp_metrics. BUG=chrome-os-partner:9193 TEST='cat /sys/class/thermal/thermal_zone1/mode' and check that it is disabled. BRANCH=none Change-Id: I689e8e5c1747c5f259f4a72a9f86396f4aa5c0b2 Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35593 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* temp_metrics: tmp006 calibration and fan loop updatesSameer Nanda2012-10-151-22/+74
| | | | | | | | | | | | | | | | | | | | | | With the recent changes that have gone into the EC, the TMP006 calibration data is no longer present in the EC by default. Push it down to the EC via the newly added ectool tmp006cal command. Also added couple of changes to the fan loop: - hand back fan control loop to the EC if none of the TMP006 sensors report valid temperatures. - handle S0->S3->S0 transition where the EC sets the fan to 0 RPM. BUG=chrome-os-partner:9193 TEST=run "ectool tmp006cal" command for sensors 0, 1, 2 and 3 and ensure that they return non-zero calibration values. BRANCH=none Change-Id: Iaf91216a4d3353f15489b39aba9acb34055551cf Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35469 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org>
* Set minimum brightness to 35%, variable osc settings.Bill Richardson2012-10-141-2/+25
| | | | | | | | | | | | | BUG=chrome-os-partner:8039 BRANCH=Link TEST=none More cosmetic changes. Signed-off-by: Bill Richardson <wfrichar@chromium.org> Change-Id: I1fd9318131ce55541d845ac8be5faa9334c3953f Reviewed-on: https://gerrit.chromium.org/gerrit/35484 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Parameterize the lightbar behavior as much as possible.Bill Richardson2012-10-112-2/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change replaces most of the hard-coded lightbar constants with values that can be updated at run-time, so that if we change our minds about colors and timing we can tweak some of the values without requiring an EC/BIOS update. It also adds the "ectool lightbar params" command to get and set those values from the host. You can see the values from the EC console ("lightbar params"), but there's no way to set them. BUG=chrome-os-partner:8039 BRANCH=Link TEST=manual From the EC console, run lightbar params It should display the current values that can be changed. Log in to the host and run this to see the same values: ectool lightbar params Or edit and change them with this: ectool lightbar params > /tmp/vals.txt vi /tmp/vals.txt ectool lightbar params /tmp/vals.txt The updated parameters are persistent across EC jumps (RO->RW), but are lost when/if the EC reboots (as it will after the AP is off for 24 hours, for example). Change-Id: Ic2a3fd6f8062673432b48904933e0c7239b8658b Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35289 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* link: Added sensor-not-calibrated error for TMP006Randall Spangler2012-10-111-0/+7
| | | | | | | | | | | | | | BUG=chrome-os-partner:15174 BRANCH=link TEST=manual, from root shell - ectool temps all -> prints all temps - ectool tmp006cal 1 0 0 0 0 - ectool temps all -> sensor 3 not calibrated Change-Id: I16ee818c948fe90ac7c18b230c5d9f9a0ec83ded Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35288 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Add host command to get/set TMP006 calibration dataRandall Spangler2012-10-111-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for host-based thermal control and tweaking. BUG=chrome-os-partner:14955 BRANCH=link TEST=manual From a root shell, ectool tmp006cal 0 3.5e-14 -2.8e-5 -5.5e-7 4.5e-9 ectool tmp006cal 2 3.6e-14 -2.9e-5 -5.6e-7 4.6e-9 ectool tmp006cal 0 S0: 3.500000e-14 b0: -2.800000e-05 b1: -5.500000e-07 b2: 4.500000e-09 ectool tmp006cal 2 S0: 3.600000e-14 b0: -2.900000e-05 b1: -5.600000e-07 b2: 4.600000e-09 At the ec console, "t6cal" should show the settings took effect as well. Change-Id: If43b11e1e827483f0a20db1a2e5644f3475fd95e Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35215
* temp_metrics: remove prochot and TCC modificationsSameer Nanda2012-10-101-14/+0
| | | | | | | | | | | | | | | | | | | External prochot input was disabled due to board issues. Re-enable it since those board issues are now fixed. Remove modification of TCC offset. Changes to TCC offset from this script are ineffective since they need to happen before the BIOS sets the BIOS_RESET_CPL bit way early in the initialization sequence. BUG=chrome-os-partner:9193 TEST=from shell run "rdmsr 0 0x1fc" and check that bit 0 is set to 1. BRANCH=link Change-Id: Ida2a090539d7e074794e13a90f251babb6c4ade9 Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/35067 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org>
* stm32: Implement keyscan configuration commandSimon Glass2012-10-051-0/+151
| | | | | | | | | | | | | | | | | | | | | Implement a command to allow getting and setting the keyboard configuration. BUG=chrome-os-partner:12179 TEST=manual - use ectool to read all keyscan paramters - use ectool to update flags to 0, see that keyboard stops working, then set flags to 1 and see that it starts working again. - use ectool to update scanning period to 100ms, see that it drops lots of keys when typing - use ectool to set fifo size to 1, see that the fifo no longer fills up Change-Id: I5afb3b48b1262a1570d7411ffd8b2e6ea3a65f6b BRANCH=snow,link Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34635 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* link: add hibernate option to ectool reboot_ecRandall Spangler2012-10-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This enables the OS to request the EC drop into its lowest-power shutdown state. Targeted at end of factory flow, where the at-shutdown variant is the desired variant because it allows the main processor to shut down cleanly first. BUG=chrome-os-partner:14838 BRANCH=link TEST=from root shell, ectool reboot_ec hibernate at-shutdown shutdown -h now System should shut down, and EC console should be unresponsive (since it's hibernating). Press power button, and system should power back on. ectool reboot_ec hibernate System should shut down immediately. Press power button, and system should power back on. Change-Id: I8084a3a1bca6b7c201e090552b193fe1568708a2 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34569 Reviewed-by: Vic Yang <victoryang@chromium.org>
* Fine tuning of temp_metrics thermal loopSameer Nanda2012-10-021-18/+33
| | | | | | | | | | | | | | | | Fine tuned temperature thresholds and added watermark concept to the thermal loop. BUG=chrome-os-partner:9193 TEST=Vary CPU and GPU load on the system. The fan speed and CPU/GPU limits should change as the skin temperature responds to changes in the load. BRANCH=link Change-Id: I43739097e699bc4e724e395c6e830c7c694704cc Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34454 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* link: Add more info to 'ectool battery'Randall Spangler2012-10-021-0/+29
| | | | | | | | | | | | | Now prints the rest of the memory-mapped battery info. BUG=chrome-os-partner:14630 BRANCH=link TEST=ectool battery, then compare with 'battery' at ec console Change-Id: I3f5222d898bbcb8b79774a5848f9aed0067a0d49 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34424 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Update temp_metrics to look at skin temperaturesSameer Nanda2012-10-011-30/+127
| | | | | | | | | | | | | | | | | | Updated temp_metrics to take the skin temperature into account instead of PECI CPU temperature for controlling fan speed as well as Ivy Bridge throttling. BUG=chrome-os-partner:9193 TEST=Vary CPU and GPU load on the system. The fan speed and CPU/GPU limits should change as the skin temperature responds to changes in the load. BRANCH=link Change-Id: Ie3d85112de1043cf5b12a78ca1fc50f5eb6c0497 Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34221 Reviewed-by: Todd Broch <tbroch@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Clean up reboot host commandRandall Spangler2012-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Only send the host response immediately for commands which won't return. This prevents double-sending a response for the disable-jump command. 2) Remove references to the POWER_ON flag. This was never implemented or used, since with EC software sync the EC always powers on after rebooting. 3) Fix help text for reboot_ec command. (Both "A" and "RW" still do the same thing, but "RW" is now the preferred option string.) BUG=chrome-os-partner:12635 BRANCH=link (also applies to snow, but don't pick unless needed) TEST=from a root shell, flashrom -p internal:bus=lpc -r /tmp/ec.bin flashrom -p internal:bus=lpc -w /tmp/ec.bin ectool reboot_ec RW ectool reboot_ec RO ectool disable-jump All commands should succeed. Change-Id: Ibf5b4fb88d93e64fc7361a9f962ec7aa1df0cf3c Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34051 Reviewed-by: Yung-Chieh Lo <yjlou@chromium.org>
* Refactor lightbar host command to pass messages the new way.Bill Richardson2012-09-212-112/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | We recently changed the way host messages are passed to the EC to make it work nicer across I2C. When we did, we updated all the internal structs except those used for lightbar commands. This CL updates the lightbar commands too. BUG=chrome-os-partner:11277 BRANCH=all TEST=manual This shouldn't change anything, but you can ensure that by poking at the lightbar manually. On Link, run this from a root shell: ectool lightbar seq stop ectool lightbar 4 ff 00 ff ectool lightbar seq run With the first command, the lightbar pattern should freeze. With the second command, it should turn magenta. With the third command, it should resume pulsing as before. Change-Id: Ic5dc4c827b3b4459288d7d9bd7d06af8a5176b3c Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/33798 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Add Spring board configurationVincent Palatin2012-09-201-1/+1
| | | | | | | | | | | | | | | | | | Assign GPIOs and board specific peripheral/pin mux configurations. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BUG=chrome-os-partner:14313 TEST=make BOARD=spring run spring binary on snow for basic sanity checking. BRANCH=none Change-Id: I6384024a0f27af67744e98a55b66d08f587bffa0 Reviewed-on: https://gerrit.chromium.org/gerrit/33631 Reviewed-by: David Hendricks <dhendrix@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Vic Yang <victoryang@chromium.org> Commit-Ready: Vincent Palatin <vpalatin@chromium.org>