summaryrefslogtreecommitdiff
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* flash_ec: Add 1s delay after turning on SPI VREF.Aseda Aboagye2017-10-181-0/+7
| | | | | | | | | | | | | | | | | On zoombini, we were taking enough power that the voltage dipped for a little bit. This commit adds a 1 second delay after applying SPI VREF but before actually flashing the EC. BUG=b:65694390 BRANCH=None TEST=`./util/flash_ec --board zoombini` still works. Change-Id: I431cbfcc569fd5369971b06dedb85e8d5fdb9a32 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/722354 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* util: let cr50 signer use chroot version of gsctoolVadim Bendebury2017-10-161-2/+3
| | | | | | | | | | | | | | | | | | | Requiring installation of the gsctool locally in the EC tree could collide with debug versions or executables built for wrong architectures. Let's use the version installed in chroot and give user instructions how to install it if it is not there. BRANCH=cr50 BUG=none TEST=verified that create_released_image.sh still works with the chroot version of the tool Change-Id: Ib155e166297d28c1660f7f33bb000b3bb8fe7a15 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/709739 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* util/iteflash.c: make sure that the file is closedPatrick Georgi2017-10-141-1/+1
| | | | | | | | | | | | | | | | | An insignificant bug, but Coverity complains about it. Reduce the cognitive load by making sure that file is closed in time. BUG=none BRANCH=none TEST=none Change-Id: I2efbe136f4991cf829b95568eef22eb7b2d1a8c6 Found-by: Coverity Scan #141758 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/702304 Commit-Ready: Patrick Georgi <pgeorgi@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Chris Ching <chingcodes@chromium.org>
* util/iteflash.c: Handle potential resource leaksPatrick Georgi2017-10-141-0/+2
| | | | | | | | | | | | | | | | | | | They're of really little consequence right now since an error in verify_flash() is only followed by resource tear down and process exit. verify_flash could gain other call-sites though, so better be safe than sorry. BUG=none BRANCH=none TEST=none Change-Id: I5fa8276dc3b3e124dacceca1ea857430982f7567 Found-by: Coverity Scan #141761, #141762 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/702482 Commit-Ready: Patrick Georgi <pgeorgi@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Chris Ching <chingcodes@chromium.org>
* cleanup: Use CONFIG_BATTERY to indicate whether a board has a batteryShawn Nematbakhsh2017-10-131-3/+1
| | | | | | | | | | | | | BUG=b:35528297 BRANCH=None TEST=`make buildall -j` Change-Id: I9e4814b4172f20711f7edd691c9569f9130aec8e Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/713395 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* flash_ec: Save more variables.Aseda Aboagye2017-10-121-3/+6
| | | | | | | | | | | | | | | | | | | It was found on zoombini, when flashing via flash_ec failed, it would prevent the board from booting as certain controls were left in their "flashing" state. This was because these controls were missing from the variables list which is what was used to restore the controls. BUG=b:65694294 BRANCH=None TEST=Attempt to flash zoombini without the flex connected. Attach the servo flex, apply power, verify DUT boots up. Change-Id: Ic2bc74ef1a61d4f10da6d3ceac77fbd373697838 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/714023 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* grunt: initial setup for ecYH Lin2017-10-111-0/+1
| | | | | | | | | | | | | | Initial files for grunt, to be revised later. BUG=b:67187149 TEST=None BRANCH=None Change-Id: I392bb4982fea0c9374ba8d262f8f4288522207d5 Signed-off-by: YH Lin <yueherngl@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/699554 Reviewed-by: Jason Clinton <jclinton@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* g: rename usb_updater into gsctoolVadim Bendebury2017-10-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The usb_updater utility has long been not just an updater, and has long been using other interfaces in addition to USB. gsctool is a much more suitable name. CQ-DEPEND=CL:709776 BRANCH=cr50 BUG=b:67007500 TEST=verified that make -C ./extra/usb_updater generates ./extra/usb_updater/gsctool: $ ./extra/usb_updater/gsctool --help Usage: gsctool [options] <binary image> This updates the Cr50 RW firmware over USB. The required argument is the full RO+RW image. Options: [...] $ Change-Id: I3ab70c28acf3664ddefaa923a87ba1fd5c3c437b Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/709738 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* util/ectool.c: Make sure device_name is NUL terminatedPatrick Georgi2017-10-091-1/+2
| | | | | | | | | | | | | | BRANCH=none BUG=none TEST=none Found-by: Coverity Scan #144116 Change-Id: I9ec030c1a3820af7d08c2a83e3c1f4c3ee7a3f0a Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/702302 Commit-Ready: Patrick Georgi <pgeorgi@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Chris Ching <chingcodes@chromium.org>
* vboot: Modify the parameter offsetJagadish Krishnamoorthy2017-09-271-0/+1
| | | | | | | | | | | | | | | | | For the Host Command vboot hash EC_VBOOT_HASH_GET case, if the input parameter offset and size is 0 then change offset to data_offset to obtain the latest hash value. Else retain the offset to get the hash value at offset. BUG=b:66957716 BRANCH=NONE TEST=On Soraka, ectool echash commands (RO, RW) should result in hash information. Change-Id: Ife17d35b0dfeecb5ec799c9ed722ae48dbec5b5b Signed-off-by: Jagadish Krishnamoorthy <jagadish.krishnamoorthy@intel.com> Reviewed-on: https://chromium-review.googlesource.com/685738 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* update_fw: Store complete touchpad FW hashNicolas Boichat2017-09-151-12/+25
| | | | | | | | | | | | | | | | | | | | | | This will be used by the updater to first check that the touchpad FW on AP side matches the one for which we stored hashes on EC side. This guarantee that we do not accidentally try to flash an incorrect FW, which would render the touchpad non-functional. BRANCH=none BUG=b:63993173 TEST=make TOUCHPAD_FW=SA459C-1211_ForGoogleHammer_3.0.bin \ BOARD=hammer -j TEST=./usb_updater2 -t includes output of sha256sum A459C-1211_ForGoogleHammer_3.0.bin Change-Id: Id30ab2d7c7d7e2d0f25cc893f685d218c44c022e Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/641736 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* util: fix bug in tagbranchVadim Bendebury2017-09-151-1/+2
| | | | | | | | | | | | | | | After mulptiple edits of the script, there is a case when bash variable is not properly quoted, let's fix it. BRANCH=cr50 BUG=b:64698702 TEST=verified proper tag description set by git Change-Id: I5847437cde717bb6e1f4b672fe6008b8e6e6f4e3 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/667917 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* util: move 'dirty' marker to be a prefix, not a suffixVadim Bendebury2017-09-151-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | With longer git SHA1s reported by git commands and longer version strings, the entire SHA1 could be not fitting into the 32 byte version of the VERSION string. So, instead of adding the 'dirty' marker to the end of SHA1 let's replace the prefix dash with it in case the tree is dirty. This way the length of the version string does not change (as long as the 'dirty' marker is one character long). BRANCH=cr50 BUG=b:64698702 TEST=verified output of running getversion.sh with a clean tree $ ./util/getversion.sh | grep VERSION32 #define CROS_EC_VERSION32 "_v1.1.7046-591608e2e" and a 'dirty' tree $ ./util/getversion.sh | grep VERSION32 #define CROS_EC_VERSION32 "_v1.1.7046+591608e2e" Change-Id: I42684522beaff9e9714206cfaddaf97e6cd644be Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/665958 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Makefile: Generate hashes for the touchpad FWNicolas Boichat2017-09-152-0/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on the passed TOUCHPAD_FW parameter to the make command, the build system generates hashes for the touchpad FW. To generate the hashes, gen_touchpad_hash splits the touchpad FW in blocks of CONFIG_UPDATE_PDU_SIZE, that are hashed individually (SHA-256), and then stored in the EC image. This will allow the USB updater code to verify the integrity of the touchpad firmware being flashed. When no FW is provided, zeros are output, which do not match any valid data. BRANCH=none BUG=b:63993173 TEST=make TOUCHPAD_FW=SA459C-1211_ForGoogleHammer_3.0.bin \ BOARD=hammer -j TEST=Using variations of make TOUCHPAD_FW=SA459C-1211_ForGoogleHammer_3.0.bin \ BOARD=hammer -j make TOUCHPAD_FW=SA459C-1211_ForGoogleHammer_4.0.bin \ BOARD=hammer -j make BOARD=hammer -j Check that TPHASH touchpad_fw_hash.h is only regenerated when the parameter changes. Change-Id: Ie347270aa9c00342de13489c9422e45e681b94c2 Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/615321 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* utils: a script to help creating EC git tagsVadim Bendebury2017-09-141-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The script tries to determine the upstream branch name, and finds out which is the first sha1 of the current branch. Then the script tags the branch and generates a git command strings the operator is supposed to check for sanity and enter to push the new tag to the server. With the new tag set each following run of ./util/getversion.sh would generate version strings including the new tag name and number of patches above the branch point. More implementation details are included in the comments in the script. BRANCH=cr50 BUG=b:64698702 TEST=tried the script in cr50 and gru firmware branches: cr50$ <path to>/tagbranch.sh A new tag 'v1.9308_B.0' has been set. Use the following command to push it to the server git push --tags https://chromium.googlesource.com/chromiumos/platform/ec v1.9308_B.0 Or if you want to delete it: git tag -d v1.9308_B.0 cr50$ ./util/getversion.sh | grep -w VERSION #define VERSION "_v1.9308_B.192-b5c9d0aa7" cr50$ cr50$ cd <path/to>gru gru$ <path to>/tagbranch.sh A new tag 'v1.8785_B.0' has been set. Use the following command to push it to the server git push --tags https://chromium.googlesource.com/chromiumos/platform/ec v1.8785_B.0 Or if you want to delete it: git tag -d v1.8785_B.0 es^o: ~/new_projects/gru-8785/src/platform/ec 175 > ./util/getversion.sh | grep -w VERSION gru$ #define VERSION "_v1.8785_B.218-5d857ed8c" gru$ Change-Id: I0c0067f6b7bb837a0c119bc14ff48cb9223a3fa5 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/656575 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* cr50: generate self signed images with proper header valuesVadim Bendebury2017-09-133-3/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | The self signed images generated when running 'make BOARD=cr50' use constant default values for the epoch, major and minor image header fields. For the purposes of continuous testing we need the generated images have sensible values in those header fields. Since adding a full blown C++ based parser to the signer image is too much trouble, let's just have a very basic Python based parser, which pays attention only to the required fields from the current manifest. BRANCH=cr50 BUG=none TEST=built the new image and checked its version: $ make BOARD=cr50 ... $ ./extra/usb_updater/usb_updater -b build/cr50/ec.bin read 524288(0x80000) bytes from build/cr50/ec.bin RO_A:0.0.23 RW_A:0.0.23[00000000:00000000:00000000] RO_B:-1.-1.-1 ... Change-Id: I822475ed0a3c481b08e9268f9c13663b0b132d4a Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/651132 Reviewed-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* cr50: prepare to release 0.0.24Vadim Bendebury2017-09-122-2/+2
| | | | | | | | | | | | | There are upcoming releases from different branches. BRANCH=cr50 BUG=b:65128360 TEST=none Change-Id: I1abf4fe4df90b1b0f93d5d13a8b7e361ba9b2240 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/663425 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* cleanup: Remove lucid and snoball boardsShawn Nematbakhsh2017-09-121-2/+0
| | | | | | | | | | | | | BUG=None TEST=`make buildall -j` BRANCH=None Change-Id: I667e471d4d9187f530da7ae8807c8aa339a17847 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/663817 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* EFS: Add support for early firmware selectionDaisuke Nojiri2017-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chromebox ECs performs EFS: verifying firmware before the AP boots. This patch updates host commands which are required for the EFS. The change includes: * Update EC_CMD_FLASH_REGION_INFO to accept EC_FLASH_REGION_UPDATE * Update EC_CMD_VBOOT_HASH to accept EC_VBOOT_HASH_OFFSET_UPDATE When EC_FLASHS_REGION_UPDATE is specified, EC_CMD_FLASH_REGION_INFO returns the slot which currently is not hosting a running RW copy. When EC_VBOOT_HASH_OFFSET_UPDATE is specified, EC_CMD_VBOOT_HASH computs the hash of the update slot. This hash covers the entire region, including the signature at the end. This patch undefines CONFIG_CMD_USBMUX and CONFIG_CMD_TYPEC for gru to create space. BUG=b:65028930 BRANCH=none CQ-DEPEND=CL:648071 TEST=On Fizz, verify: 1. RW_B is old and updated by soft sync. RW_B is activated and executed after reboot. System continues to boot to OS. 2. RW_A is old and updated by soft sync. RW_A is activated and executed after reboot. System continues to boot to OS. Change-Id: I9ece907b764d07ce94054ba27996e048c665a80a Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/648448
* cleanup: Remove 'ryu' boardShawn Nematbakhsh2017-09-112-3/+2
| | | | | | | | | | | | | | | Remove 'ryu' and related ryu-only code. BUG=None TEST=`make buildall -j` BRANCH=None Change-Id: I19b966ea6964a7ed083724f7de80ae192235a406 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/656314 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* util/build.mk: Fix makefile dependencies of export_taskinfoChe-yu Wu2017-09-061-0/+2
| | | | | | | | | | | | | | | | | export_taskinfo is a utility used by the stack analyzer. This patch makes sure it will be recompiled when the EC code changed. BUG=none BRANCH=none TEST=make BOARD=eve -j && make BOARD=eve analyzestack Add a fake task in board/eve/ec.tasklist make BOARD=eve -j && make BOARD=eve analyzestack The fake task shows in the report Change-Id: I57c2700610680975571d254e0059571556f184fe Signed-off-by: Che-yu Wu <cheyuw@google.com> Reviewed-on: https://chromium-review.googlesource.com/651449 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* ec: Fix missing Makefile dependencies.Che-yu Wu2017-09-051-1/+1
| | | | | | | | | | | | | | | Add the extra dependencies to "deps-y" and include it in "deps". BUG=chromium:761922 BRANCH=none TEST=Add "$(info $(deps))" before "-include $(deps)" in Makefile.rules make BOARD=eve utils | grep "build/eve/util/usb_pd_policy.o.d" There is "build/eve/util/usb_pd_policy.o.d" Change-Id: I77670a8e90a1a913943fcba143402318aaf7d274 Signed-off-by: Che-yu Wu <cheyuw@google.com> Reviewed-on: https://chromium-review.googlesource.com/649455 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* presubmit_check: Check unittests results on extra/stack_analyzerNicolas Boichat2017-08-291-14/+25
| | | | | | | | | | | | BRANCH=none BUG=none TEST=util/presubmit_check.sh Change-Id: I6078377603719de1d633660c69ad3a40b29ffadf Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/640191 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Che-yu Wu <cheyuw@google.com>
* signer: no need to sign dev images any more.Vadim Bendebury2017-08-221-14/+11
| | | | | | | | | | | | | | | | | | | | | The chromeos-cr50 ebuild does not install dev images any more, and chromeos-cr50-scripts do not try updating dev versions of H1 any more. Let's stop releasing dev Cr50 images. BRANCH=Cr50 BUG=none TEST=tried creating a release image in the release branch, got a tarball of the desired contents: $ tar tf cr50.r0.0.10.w0.0.22_ZZAF_ffffffff_00007f80.tbz2 cr50.r0.0.10.w0.0.22_ZZAF_ffffffff_00007f80/ cr50.r0.0.10.w0.0.22_ZZAF_ffffffff_00007f80/cr50.bin.prod Change-Id: Ib2acaf5f31f7067a98c35c0ec83e730736398a7d Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/624193 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* cr50: prepare to release RW 0.0.23Vadim Bendebury2017-08-182-2/+2
| | | | | | | | | | | | | New released images need higher version number. BRANCH=none BUG=none TEST=built and ran an image, verified version number to be right. Change-Id: I0b5b690d84b2f281752ad01b154efdebeba2e136 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/621296 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* stm32: add embryonic support for STM32F76xVincent Palatin2017-08-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | The STM32F76x is really close to the STM32F4 family, so the most concise implementation is just using CHIP_FAMILY_STM32F4 and adding CHIP_VARIANT_F76X. Tune the clock settings to 180 Mhz CPU clock as the goal is performance. (over-drive is not implemented yet to get to 216 Mhz) Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=none TEST=ran on nucleo-f767zi board. 'make BOARD=nucleo-f767 flash', the red LED is on and the green LED turns on/off when pressing the user button, UART console works properly. Change-Id: I1f67df3aec874c965c81188df46c72de210728d9 Reviewed-on: https://chromium-review.googlesource.com/612750 Commit-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* util/genvif.c: Remove duplicated include.Che-yu Wu2017-08-171-1/+0
| | | | | | | | | | | | | The header file "stdint.h" is included twice. BUG=none BRANCH=none TEST=make buildall -j Change-Id: Iba6975b65309be032e0ae040d13a7d06a534fc0d Signed-off-by: Che-yu Wu <cheyuw@google.com> Reviewed-on: https://chromium-review.googlesource.com/620291 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* st32mon: Define SPI_IOC_WR_MODE32 if it's missingStefan Reinauer2017-08-161-0/+8
| | | | | | | | | | | | | | | | | | | On Goobuntu, the uapi copy of spidev.h doesnot contain SPI_IOC_WR_MODE32, however the kernel supports the IOCTL. To be able to build the tool outside of the ChromeOS chroot, define it if it's not available. Signed-off-by: Stefan Reinauer <reinauer@google.com> BRANCH=none TEST=make buildall -j outside of the chroot BUG=b:35567067 Change-Id: I04ec968e221c7d43f1bdb364a195d371370ec886 Reviewed-on: https://chromium-review.googlesource.com/614645 Commit-Ready: Stefan Reinauer <reinauer@google.com> Tested-by: Stefan Reinauer <reinauer@google.com> Reviewed-by: Martin Roth <martinroth@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* ec: Add a task information library for the stack analyzer.Che-yu Wu2017-08-152-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a shared library to export task information. Modified the stack analyzer to get information from the shared library. Show allocated stack sizes of tasks in the stack analyzer. To get the all task information (including the allocated stack size), A shared library is added and compiled with the board to export all configurations of the tasklist. BUG=chromium:648840 BRANCH=none TEST=extra/stack_analyzer/stack_analyzer_unittest.py make BOARD=elm && extra/stack_analyzer/stack_analyzer.py \ --objdump=arm-none-eabi-objdump \ --addr2line=arm-none-eabi-addr2line \ --export_taskinfo=./build/elm/util/export_taskinfo.so \ --section=RW \ ./build/elm/RW/ec.RW.elf make BOARD=${BOARD} SECTION=${SECTION} analyzestack Change-Id: I72f01424142bb0a99c6776a55735557308e2cab6 Signed-off-by: Che-yu Wu <cheyuw@google.com> Reviewed-on: https://chromium-review.googlesource.com/611693 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* charge_manager: Consider port in source PDO.Aseda Aboagye2017-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | When CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT is defined for a board, as its name implies, the board can source a higher current if there is only one port acting as a source. This commit fixes an issue with selecting the right source capability message to advertise. charge_manager_get_source_pdo() was simply checking if there was more than one sink connected, instead of checking if there were any *other* sinks connected. In the event that a sink was connected to a different port, we would advertise the max source PDO. BUG=b:64037926, b:35577509 BRANCH=gru,eve,reef TEST=Connect sink to port 1. Connect a AMA to port 0 that claims that VBUS isn't necessary. Start sending source caps, verify that the max PDO is not being advertised in the source caps. Change-Id: Ie4145ecaf98d5b9070ad3e8b139e5653685fa801 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/610479 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* g: signer: unify order of board ID fieldsVadim Bendebury2017-08-091-3/+3
| | | | | | | | | | | | | | | | | | The board ID fields are displayed by the Cr50 console command 'bid' as follows: <board id>:<board id mask>:<board id flags>. Make sure the user passes them in the same order when invoking the signer to sign a board locked image. BRANCH=none BUG=none TEST=verified proper order of the fields when generating and using a prod signed image. Change-Id: Ia4569c5e9e663b26edaa591bae881c719c4f199c Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/604218 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* ectool: do not try other communication methods for none cros_ec devicesWei-Ning Huang2017-08-082-1/+9
| | | | | | | | | | | | | | | | | | | | | | | There are none cros_ec devices running EC codebase connected to chromebook, which can be accessed by ectool with `cros_ec --name=SOME_DEV ...`. In the case when SOME_DEV is not found, do not fallback to other communication methods such as LPC or I2C, since ectool will instead get the reply of real cros_ec device. BRANCH=none BUG=b:64468324 TEST=on poppy, `ectool --name=cros_tp version` should show: `Unable to establish host communication Couldn't find EC` Change-Id: I2ac232122e0f928703f7607da365d5c1dc6f7194 Signed-off-by: Wei-Ning Huang <wnhuang@google.com> Reviewed-on: https://chromium-review.googlesource.com/604977 Commit-Ready: Wei-Ning Huang <wnhuang@chromium.org> Tested-by: Wei-Ning Huang <wnhuang@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* g: signer: use strings instead of numbers for Board ID fieldsVadim Bendebury2017-08-071-3/+3
| | | | | | | | | | | | | | | Recent signer improvements allow to include hex values into the manifest, this also makes it easier to process values with bid D31 set, let's use strings instead of ints. BRANCH=none BUG=none TEST=verified signing of a prod release Change-Id: Ia05198991bfdd8dfd831545a9edf70f1e06f24f4 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/604217 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* Intel GLK-RVP: Add initial board bringup codeVijay Hiremath2017-08-071-0/+1
| | | | | | | | | | | | | | | | | | Added bare minimum code to bringup the Intel GLK-RVP using Nuvoton AIC. BUG=b:64394037 BRANCH=glkrvp TEST=Intel GLK-RVP2.0 boots to Chrome OS using Nuvoton AIC. Change-Id: I86816d09fe428091438a16f014e23b2e0c0025b7 Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Signed-off-by: Kevin K Wong <kevin.k.wong@intel.com> Reviewed-on: https://chromium-review.googlesource.com/602515 Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com> Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Shawn N <shawnn@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* flash_ec: Make sure die works in ec_uart_pty().Aseda Aboagye2017-08-031-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If flash_ec was run without `servod` running and servod is needed, an error message is printed out. ERROR: Cannot communicate with servo. is servod running ? However, in the case of flashing an stm32 without servod running, execution would continue and would lead to claim_pty freezing and thawing a bunch of unrelated processes. I believe the reason is that the "die" was run in a subshell and therefore execution continued. This commit now changes the way that servo_ec_uart_pty() works. If no PTY is found, then flash_ec exits printing out the error message. Additonally, claim_pty() will now warn if no arguments are passed to it instead of finding random victims. BUG=chromium:751386 BRANCH=maybe some fw branches. TEST=Without servod running, try `./util/flash_ec --board hammer`; Verify that flash_ec exists after the call to die. Change-Id: I50784e0c43bbf0e32d408261cb83029377b576a0 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/598506 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* ectool: add PD_CHIP_ON support.Caveh Jalali2017-08-031-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this adds CLI support for the new PD_CHIP_ON subcommand of ec_pd_control_cmd. TEST=rebuilt ectool to see if "ectool pdcontrol on" does something useful. copied new build to electro: ec> i2cxfer rlen 0 0x50 1 0x10 Unknown error Usage: i2cxfer r/r16/rlen/w/w16 port addr offset [value | len] ec> ap$ /tmp/ectool pdcontrol on 0 ec> i2cxfer rlen 0 0x50 1 0x10 Data: aa2934ad000000000000010000050500 ec> so, "pdcontrol on" had the desired effect of bringing the chip out of sleep mode. BRANCH=none BUG=b:35586895 Change-Id: I5275254fe797dda921a352b72f1683e1967efe58 Signed-off-by: Caveh Jalali <caveh@google.com> Reviewed-on: https://chromium-review.googlesource.com/599361 Reviewed-by: Shawn N <shawnn@chromium.org>
* presubmit_check: Don't include flash_ec.Aseda Aboagye2017-08-031-1/+5
| | | | | | | | | | | | | | | | | | | | | | One of the items that the presubmit check checks is that if any source file has been modified, the unit tests are run again. However, flash_ec is included in the list of files. This commit removes flash_ec from the candidates because it's not run in any unit tests anyways and it's a shell script that is not compiled. Additionally, ignore changes to the presubmit_check.sh itself. BUG=None BRANCH=None TEST=modify flash_ec, verify that presubmit check doesn't complain about not running make buildall. Change-Id: I473f269c7f0bba9be3216fcec39f266d896fb908 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/598505 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* signer: include Board ID fields in the tarball file nameVadim Bendebury2017-08-031-3/+40
| | | | | | | | | | | | | | | | | When an image with non-default board ID fields is released, the generated tarball name should include the Board ID values to allow to tell between images of the same version locked for different boards. BRANCH=none BUG=none TEST=ran create_released_image.sh with and without specifying Board ID fields, observed properly named file generated in both cases Change-Id: I5f60a0e547d93c78caee34a9c307fc93f824b2ae Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/597121 Reviewed-by: Caveh Jalali <caveh@google.com> Reviewed-by: Nick Sanders <nsanders@chromium.org>
* g: stop converting hex device id values to intsVadim Bendebury2017-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | The new signer (version: 1.2 00840c1b6) allows hex values in the manifest, which means there is no need to explicitly convert the values before adding them to the manifest. A nice side effect of this is the fact that there is no need to care about the sign of the values any more, the signer does the right thing. BRANCH=none BUG=none TEST=built an image using the following invocation: $ make BOARD=cr50 H1_DEVIDS='0x12009015 0x90e95664' -j and successfully ran it on a device. Note that the old signer was chocking on hex values exceeding 0x7fffffff, the new one handles them properly. Change-Id: I08c0339f922d287c82d56fb51570bfbf7107531e Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/598728 Reviewed-by: Nick Sanders <nsanders@chromium.org>
* flash_ec: Update method of retrieving serial num.Aseda Aboagye2017-08-021-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | There have been some new methods added to servod to retrieve the serial numbers of the servos attached. Prior to this, with a servo micro connected to a servo v4, retrieving the serial number would always return that of the servo v4. This would cause flashing to fail. This change updates the method to retrieve the serial numbers. CQ-DEPEND=CL:597209 BUG=chromium:740026 BRANCH=maybe some fw branches. TEST=With updated hdctools, flash a kevin using a servo micro connected to a servo v4. TEST=Flash kevin with a servo v2. TEST=Attempt to flash a hammer and verify that the only issue is stm32mon not being able to determine the startup of the monitor mode (since I don't actually have a hammer). Change-Id: I82c2907d689311fe65717a833390b8d0f6e15a94 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/597211 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* signer: do not proceed if usb_updater is not availableVadim Bendebury2017-08-011-1/+7
| | | | | | | | | | | | | | | | | The script assumes that usb_updater is present in the PPATH, but it is not guaranteed to be available. Use the version from the ec tree or stop if it is not available. BRANCH=none BUG=none TEST=verified that the script uses proper instance of usb_updater Change-Id: I3b861953e8d5d509b99131685e86aaf7a0693d23 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/597120 Reviewed-by: Caveh Jalali <caveh@google.com> Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* signer: refactor to use program name variableVadim Bendebury2017-08-011-3/+5
| | | | | | | | | | | | | | | | Instead of invoking $(basename $0) multiple times, cache it in a variable. BRANCH=none BUG=none TEST=verified that the script still reports proper name when printing error messages. Change-Id: Iabdf40592cb4cecc975a48d93169f46614ce84c6 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/597119 Reviewed-by: Caveh Jalali <caveh@google.com> Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* cr50: prepare to release RW 0.0.22Vadim Bendebury2017-07-312-2/+2
| | | | | | | | | | | | | | | This version will be bettter sutied for chip manufacturing environment (no contention with the test rig GPIO settings and formal confirmation of successful certificate installation). BRANCH=cr50 BUG=b:63686091 TEST=none Change-Id: I6d394493b824c9d79bca4785d3d44b33f322b899 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/583990 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* power: Allow host to request higher-power wakeable S3Shawn Nematbakhsh2017-07-281-1/+4
| | | | | | | | | | | | | | | | | | | | Allow host to request a higher-power S3 variant, "wakeable S3", in which more wakeup sources will be enabled by the EC. The actual implementation and list of wake sources is left up to the chipset power driver and/or board code. BUG=b:63037490 BRANCH=gru TEST=With subsequent commit, compile on scarlet w/ power sequencing version = 2. Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Change-Id: I469f0cd969052f173cb176196bb6d05f6f76fdb5 Reviewed-on: https://chromium-review.googlesource.com/572210 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Philip Chen <philipchen@chromium.org>
* genvif: Vendor Name not displayed in PD Compliance SoftwareSam Hurst2017-07-271-1/+1
| | | | | | | | | | | | | | | | | After the USB-C compliance test software loads the VIF, the Vendor Name isn't populated and left blank in the Test Report. BUG=b:64111221 BRANCH=None TEST=`make -j buildall` Signed-off-by: Sam Hurst <shurst@chromium.org> Change-Id: I672345cc950e78ea4eef973a9929e6eb9f9117d9 Reviewed-on: https://chromium-review.googlesource.com/590347 Commit-Ready: Sam Hurst <shurst@google.com> Tested-by: Sam Hurst <shurst@google.com> Reviewed-by: Shawn N <shawnn@chromium.org>
* flash_ec: Add support for zoombini.Aseda Aboagye2017-07-261-0/+1
| | | | | | | | | | | | | | BUG=None BRANCH=None TEST=Run flash_ec and verify that fw_up is used when trying to flash and that the right programmer is selected. Change-Id: I4d345812c5363895a83b1bdd2e3097148d4ae161 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/587392 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* flash_ec: Fix common_stm32_VARS definition.Aseda Aboagye2017-07-241-2/+2
| | | | | | | | | | | | | | | | In the recent change to flash_ec, there was a problem with they way that common_stm32_VARS was defined. This commit fixes the issue. BUG=chromium:740026 BRANCH=potentially some FW branches. TEST=Using servo_v2, flash elm. Change-Id: I2e14f1f45525f494d9912b420d36d02d89b9dc5a Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/583540 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* util/openocd: change the _CHIPNAME of npcx ec to a generic nameCHLin2017-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | The original _CHIPNAME for npcx ec in the openocd configuration file is npcx5m5g. As we introduce more npcx ec SKUs, it is not appropriate to keep using this name. This CL modifies the _CHIPNAME to a generic name(npcx_ec). BRANCH=none BUG=none TEST=./util/flash_ec --board=npcx7_evb; check the openocd log and make sure the _CHIPNAME is npcx_ec now. Signed-off-by: CHLin <CHLIN56@nuvoton.com> Change-Id: I49d298de1e43ac29f3e5535702595ee27225ac23 Signed-off-by: CHLin <CHLIN56@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/576604 Commit-Ready: Jun Lin <riverq@gmail.com> Tested-by: Jun Lin <riverq@gmail.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* flash_ec: Add servo support for Scarlet rev1Philip Chen2017-07-211-2/+1
| | | | | | | | | | | | | | | This will also kill the servo support for Scarlet rev0. BUG=b:62269890 BRANCH=none TEST=none Change-Id: Ibacd8905bf0a07e3787adb7fe1a1daaf2ff98943 Signed-off-by: Philip Chen <philipchen@google.com> Reviewed-on: https://chromium-review.googlesource.com/578927 Commit-Ready: Philip Chen <philipchen@chromium.org> Tested-by: Philip Chen <philipchen@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* flash_ec: add nefario for supportCaesar Wang2017-07-201-0/+3
| | | | | | | | | | | BUG=b:63408169 BRANCH=none TEST=utils/flash_ec --board=nefario Change-Id: Ic13d6257a548d6c759542f3e8e679b0ce2b4de51 Signed-off-by: Caesar Wang <wxt@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/578694 Reviewed-by: Philip Chen <philipchen@chromium.org>