summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* docs: add an overview of AP to EC communicationstabilize-12560.BHarry Cutts2019-10-022-0/+154
| | | | | | | | | | | | | | | | | | | | This document is intended to replace the existing AP / EC communication page on the wiki [0]. (I'll link to it from there once this CL is submitted.) It's basically a write-up of what I learned while working on supporting host commands over I2C with the MAX32660, so it's probably missing various details, but I believe it's an improvement on the current page. [0]: https://sites.google.com/a/chromium.org/dev/chromium-os/ec-development/ap-ec-communication BRANCH=none BUG=none TEST=Check the rendering in Gitiles Change-Id: Ic62c98b41a5bf69ab10dee9143e7c45957f01bf2 Signed-off-by: Harry Cutts <hcutts@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1807964 Reviewed-by: Alexandru M Stan <amstan@chromium.org>
* battery: add precharge voltageTing Shen2019-10-014-3/+13
| | | | | | | | | | | | | | | Add a precharge_voltage field to batt_info in case we need its value differ from voltage_min, and set precharge_voltage = 3.4V according to battery spec. BUG=b:139012899 TEST=observe the charging curve (see issue link above for test result) BRANCH=master Change-Id: I2e4b240a12cd023ed90aaeda922e10b262508624 Signed-off-by: Ting Shen <phoenixshen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1795491 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* Makefile.rules: LDFLAGS comes lastStefan Reinauer2019-10-011-2/+2
| | | | | | | | | | | | | | When compiling host utilities on standard Ubuntu 19.04, linking will fail if LDFLAGS is not specified after the object files. Signed-off-by: Stefan Reinauer <reinauer@chromium.org> BUG=none BRANCH=none TEST=Run make outside of chroot and see it succeed. Change-Id: I3330edf247aa109d5fbaa0e08cb7b4cfefc96a09 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1818149 Reviewed-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* Unify #! use in python scriptsStefan Reinauer2019-10-0132-32/+32
| | | | | | | | | | | | | | | | | | Right now we have several different versions of #! in our python scripts. Unify them all and specify that we are using python2. Signed-off-by: Stefan Reinauer <reinauer@chromium.org> BUG=none BRANCH=none TEST=make buildall Change-Id: Iab33a3f5d4b827451a55542bcee8837b00da7867 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1817948 Commit-Queue: Stefan Reinauer <reinauer@chromium.org> Tested-by: Stefan Reinauer <reinauer@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* chip/npcx: fix cprints argumentsCaveh Jalali2019-10-011-2/+2
| | | | | | | | | | | | | | | this fixes the format string used in cprints. the intent was clearly string concatenation, but instead 2 strings were passed to cprints. BUG=none BRANCH=none TEST=buildall passes, boots on atlas Change-Id: I8942c4f5fd99b490a3da8a6a289d23454509e69d Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1826177 Reviewed-by: Mulin Chao <mlchao@nuvoton.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* utils: Add strstrDaisuke Nojiri2019-10-013-0/+50
| | | | | | | | | | | | | | | | | | The strstr API searches for s2 in s1 and returns the pointer to the substring found in s1. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=none BRANCH=none TEST=make run-utils_str Change-Id: I30f5e8d03e304d28dd6e9bfeebfcaeee2e79ea85 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1818727 Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Commit-Queue: Jett Rink <jettrink@chromium.org>
* bq25710: Update ICO mode feature for charger hw rampScott Collyer2019-10-012-18/+33
| | | | | | | | | | | | | | | | | | | | | This CL makes some modifications to how ICO mode is utilized to support the input current hw ramp feature. ICO mode can't be used when there is no battery present, so a check has been added for battery presence. In addition, the input current limit should have been read from the IIN_DPM register. BRANCH=none BUG=b:126229130 TEST=Tested variaous legacy chargers and verfied that ICO mode completes and gives the expected current limit. Tested that when no battery is present, ICO mode is not enabled. Change-Id: Ib2dcff4c7bddea52c267d678b17c50daf1356b44 Signed-off-by: Scott Collyer <scollyer@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1827255 Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Commit-Queue: Scott Collyer <scollyer@chromium.org>
* cr50: nvmem: fix list_index after erased header at page endAndrey Pronin2019-10-011-3/+3
| | | | | | | | | | | | | | | | | Before this CL, if the last 4 bytes of the last page were not written, after reading those bytes to check if they contain a header, the mt was rewinded to the end of the previous container, but list_index stayed pointing to the next page. Which could lead to skipping pages when creating the next container. This CL fixes it. BRANCH=none BUG=b:140139297 TEST=running test_nvmem with CL:1828184 applied doesn't lead to error 14 Change-Id: Icc8d1b8eb5cfc0f0230706ed386c2ef9b4936cae Signed-off-by: Andrey Pronin <apronin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1830372 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* cr50: nvmem: fix total vars overflow checkAndrey Pronin2019-10-011-1/+1
| | | | | | | | | | | | | | | | | | | Before this CL, when changing an already existing variable, setvar_() was ensuring that the new size of *all* variables is smaller than the limit for one variable. This CL fixes the check: now it checks that the new size of all variables is smaller than the total variables size limit. BRANCH=none BUG=b:141774726 TEST=running test_nvmem with CL:1828184 applied doesn't lead to overflows in setvar. Change-Id: Icc70d728a2d6986d98b686980081e1cbba132195 Signed-off-by: Andrey Pronin <apronin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1829292 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Jason Clinton <jclinton@chromium.org>
* cr50: nvmem: release var buf in setvar overflow caseAndrey Pronin2019-10-011-1/+3
| | | | | | | | | | | | | | | | | Before this CL, if overflow condition was detected for an existing variable, the buffer allocated by find_var() was not released. This CL fixes this issue. BRANCH=none BUG=b:141774483 TEST=running test_nvmem with CL:1828184 applied doesn't lead to memory leaks. Change-Id: Ie09561232a613fb1f90f9a9456af73106ceb44ff Signed-off-by: Andrey Pronin <apronin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1829291 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Jason Clinton <jclinton@chromium.org>
* cr50: debounce successive TPM reset pulsesVadim Bendebury2019-10-011-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Some platforms generate more than one pulse when resetting, many Intel SOCs generate two pulses, some other chips could go even higher. TPM reset on Cr50 is processed asynchronously, repetitive pulses result in multiple reset processing cycles.In case pulses are coming too soon one after another this could cause some race conditions. Let's ignore repetitive reset pulses unless there has been an attempt by the host to read a register (which is usually the very first action of the AP when booting up). BRANCH=cr50, cr50-mp BUG=none TEST=observed that only one reset is happening on an Octopus device, while there are two pulses present on the PLT_RST_L line. Verified proper reboot multiple times in a row. Change-Id: Ie1b124d41be0388bd8e12d0084827782de62cfa0 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1755059 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* drallion: Update Accel and Gyro I2C slave addressBernardo Perez Priego2019-10-011-2/+2
| | | | | | | | | | | | | BUG=b:141831203 BRANCH=master TEST=System boots and accel and gyro should be accessible Change-Id: I0c3bddfc55fbb157aff358871fe8389e81254a7d Signed-off-by: Bernardo Perez Priego <bernardo.perez.priego@intel.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1832342 Reviewed-by: Mathew King <mathewk@chromium.org> Commit-Queue: Mathew King <mathewk@chromium.org> Tested-by: Mathew King <mathewk@chromium.org>
* util/comm-i2c: return response length from `ec_command`Harry Cutts2019-10-011-1/+1
| | | | | | | | | | | | | | | | | | In my original implementation I returned the response code (possibly because I was confused by `ec_command_servo_spi` returning something like that), but `do_i2c_xfer` (used for all I2C passthrough stuff) breaks in that case. Changing it to return response length (consistent with the `ec_command` doc comment) fixes that problem. BRANCH=none BUG=chromium:1008568 TEST=Use `ectool i2cwrite ...` to write to one of the EC's I2C slaves (should report success instead of "Truncated read response"). Change-Id: I341c3907ac44c6c3d1086ae10b31e81062215f20 Signed-off-by: Harry Cutts <hcutts@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1830099 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* cleanup: fix byte access and ifdefs for BBRAM_PD2Jett Rink2019-09-306-17/+10
| | | | | | | | | | | | | | Ensure that PD2 is accessed as a single byte instead of 4 bytes and remove unnecessary ifdef guards in all chip implementations. BRANCH=none BUG=none TEST=builds Change-Id: I319d8d6a8456662235ab4d8dcda6bda7e8ed7c15 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1809938 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* krane: change sensor-ref point to default device orintationYilun Lin2019-09-301-1/+1
| | | | | | | | | | | | | | | Switch from display scanout orientation to device default orientation. (go/chromeos-tablet-orientation) TEST=Ensure the display acts normal with UI patch. BUG=b:133201004 BRANCH=None Change-Id: If7a1632f3fcc03b381411b46d7b5441f8de5847d Signed-off-by: Yilun Lin <yllin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1826360 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Commit-Queue: Nicolas Boichat <drinkcat@chromium.org>
* hammer: Use different KB scanning matrix for masterballNicolas Boichat2019-09-301-0/+26
| | | | | | | | | | | | | | ODM/OEM decided to change pinout. BRANCH=none BUG=b:140596094 TEST=make BOARD=masterball TEST=Check that there is not interrupt conflict in gpio.inc Change-Id: I45adaf77faecfb4fb99122abe146691c9c77098b Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1830539 Reviewed-by: Ting Shen <phoenixshen@chromium.org>
* volteer: Add RTC resetKeith Short2019-09-2911-46/+13
| | | | | | | | | | | | | | | Add support for the RTC reset on Volteer. This change also deduplicates the board_rtc_reset() function which was identical on boards that enabled CONFIG_BOARD_HAS_RTC_RESET. BUG=b:141321096 BRANCH=none TEST=make buildall Change-Id: Ifc6959f8271400174fd4999a3c70800b03b9c2d0 Signed-off-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1816869 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* volteer: Configure EC wake sourcesKeith Short2019-09-291-0/+4
| | | | | | | | | | | | | | Configure EC chip hibernation wake sources. BUG=b:141323588 BRANCH=none TEST=make buildall Change-Id: I5fec9b97ebcac4382c1b4317b15b0ddb87d2068b Signed-off-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1816868 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
* automation: move create_variant to dev/contribPaul Fagerburg2019-09-281-63/+0
| | | | | | | | | | | | | | | | | Most of the scripts to automate creating a new variant are moving to platform/dev/contrib/variant for maintenance reasons. Keeping them in one place makes it easier to coordinate changes in the scripts, instead of having them spread across different repos. It also allows keeping documentation close to the scripts. BUG=b:140261109 BRANCH=None TEST=N/A, script is being removed Change-Id: Idd9ad328d2fab34a9bd9e42c360219b75018d3af Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1829398 Reviewed-by: Jett Rink <jettrink@chromium.org>
* fpsensor: Deinit the sensor before clearing the contextTom Hughes2019-09-289-12/+65
| | | | | | | | | | | | | | | | | | | | The opaque context contains sensor state that we can't nuke from underneath the sensor library. Calling fp_sensor_deinit will release this context and allow us to safely clear the context. BRANCH=none BUG=b:124773209 TEST="fpenroll" followed by "fpclear" in the FP console TEST=On nocturne, in the UI, enroll finger, log out, and log in => then lock and unlock with finger TEST=make buildall -j Change-Id: I3e25bdf7eaaf99f3801547e11a6c524f924f4726 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1647294 Reviewed-by: Nicolas Norvez <norvez@chromium.org> Commit-Queue: Yicheng Li <yichengli@chromium.org> Tested-by: Yicheng Li <yichengli@chromium.org>
* servo_v4: Disable CCD (monitoring SBU) when DTS-mode disabled by a userWai-Hong Tam2019-09-282-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | The SBU monitoring logic is used for muxing the correct polarity for CCD. If the DTS-mode is disabled by a user, meaning that CCD is supposed not being used, the SBU monitoring logic can be disabled. For DP alt-mode, the SBU lines are used for AUX channel. This SBU monitoring logic affects the AUX channel, due to the strong pull-up on the USB D+ line. It should be disabled. Remove the original calls of ccd_enable(), which is called when supplying power and detecting DUT Rd/Rd or Rp/Rp. This requires PD comm. We don't want CCD depends on PD comm. BRANCH=servo BUG=b:137219603 TEST=The default role "cc srcdts", CCD works on both phyical polarity. TEST=Called "cc src", checked GPIO SBU_MUX_EN 0. Change-Id: I8f2f7bda88426e6097f0f4efd811114b7a1135c3 Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1815557 Reviewed-by: Nick Sanders <nsanders@chromium.org>
* kohaku: Enable multiple DPTF profileSeunghwan Kim2019-09-271-0/+3
| | | | | | | | | | | | | | This change enables multiple DPTF profile in EC. BUG=b:138395625 BRANCH=none TEST=Verified multiple DPTF profile works with test coreboot. Change-Id: I8742205fd7b4c5eb511cce934eb425499ca13244 Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1773025 Reviewed-by: Philip Chen <philipchen@chromium.org> Commit-Queue: Tim Wawrzynczak <twawrzynczak@chromium.org>
* g: avoid locked up flash after denied operationVadim Bendebury2019-09-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | It looks like the flash controller requires the user to explicitly clear the command field if the command fails. Not clearing the command field prevents error status from clearing on read. BRANCH=cr50, cr50-mp BUG=b:141203977 TEST=with the latest RO locking out INFO1 erases, it is possible to keep accessing flash after failing 'eraseflashinfo' invocation: > eraseflashinfo do_flash_op:274 errors 1000 fsh_pe_control 40720004 do_flash_op:265 Failed to erase info space! Unknown error Usage: eraseflashinfo > bid Board ID: 0001e240, flags 00000000 > Change-Id: I4dd14e1e5f974bb30e2ca5beb9e43e2974ace179 Signed-off-by: Marius Schilder <mschilder@chromium.org> Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1812175 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* Makefile.rules: use patsubst instead of substCaveh Jalali2019-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | the patsubst function is a better function for removing a path prefix as it is anchored at the beginning of the search space. the original "subst" function can match everywhere in the path which leads to weird transformations. patsubst is anchored at the beginning of the string which better suits the intent here. BRANCH=none BUG=none TEST=make buildall passes, $(out) now only removed at beginning of output paths. Change-Id: Ic5fe7aeb5eb8c87aa8bb49ea0865dc07327cb3e5 Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1803178 Commit-Queue: Caveh Jalali <caveh@google.com> Reviewed-by: Caveh Jalali <caveh@google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* Kindred:Disable tablet mode depends on sku id defineben.chen2@quanta.corp-partner.google.com2019-09-271-0/+3
| | | | | | | | | | | | | Fix sku id define convertible and clamshell only. BUG=b:141597200 BRANCH=Master TEST=check ec console log, tablet mode disabled message Change-Id: I0df7b893504f7cfafb2068c1bad4f4cc5f67aa70 Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1826698 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* volteer: Configure the GPIOs connected to the AP/PCHKeith Short2019-09-272-6/+27
| | | | | | | | | | | | | | This change also corrects the SYS_RESET_L signal. BUG=b:141265267 BRANCH=none TEST=make buildall Change-Id: I9661521ccc0296924840e1a0de02439800c9ca15 Signed-off-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1816867 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
* Makefile: Ignore -Waddress-of-packed-member for GCCJacob Garber2019-09-271-7/+4
| | | | | | | | | | | | | | | GCC 9 enabled the -Waddress-of-packed-member warning by default, which causes the build to fail. This is already ignored for Clang, so do the same for GCC. Tidy up the organization of the flags while we're at it. BUG=none BRANCH=none TEST=make buildall -j Change-Id: I8796b268503c9fef2be9336ee01beaf5309024f6 Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1826289 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* common: Refactor motion_sense_fifoYuval Peress2019-09-277-208/+617
| | | | | | | | | | | | | | | This change refactors the motion_sense_fifo to uniformly prefix all the functions to avoid collisions. It also adds several unit tests and fixes a few bugs with the fifo logic. BUG=b:137758297 BRANCH=None TEST=buildall & run CTS on arcada Change-Id: I7aae45382b07d6c8858e07215c33e710c7ed27ec Signed-off-by: Yuval Peress <peress@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1704166 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* i2c-pseudo: Minor documentation fixes and clarifications.Matthew Blecker2019-09-271-8/+12
| | | | | | | | | | | BRANCH=none BUG=none TEST=Viewed the updated file in Gitiles. Change-Id: Icd10a54500a2521e4d598997385916d59dd38ab3 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1827239 Reviewed-by: Justin TerAvest <teravest@chromium.org>
* max32660: add I2C master and slaveJerry Bradshaw2019-09-268-69/+2953
| | | | | | | | | | | | | | BRANCH=none BUG=none TEST=slave tested with EC CMDs sent from a custom written EC HOST using another MAX32660 device as an I2C Master Change-Id: Icdd3ac4bacbc6536a4165f63d155760d4013a8cc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1716928 Reviewed-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Harry Cutts <hcutts@chromium.org> Tested-by: Harry Cutts <hcutts@chromium.org> Commit-Queue: Harry Cutts <hcutts@chromium.org>
* Revert "baseboard/kukui: use BASE_STATE_SWITCH instead"Ikjoon Jang2019-09-262-54/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 92b3e86b23b59ebec3e59132cae2b32288fcf1b4. Reason for revert: Kernel side driver not yet prepared. BUG=b:141518464 TEST=Booting, entering tablet mode Original change's description: > baseboard/kukui: use BASE_STATE_SWITCH instead > > tablet mode will also depend on BASE_ATTACHED_SWITCH. > > TEST=see EC sends BASE_ATTACHED event when keyboard attach/detach > BUG=b:140608847 > BRANCH=none > > Change-Id: Ib7d9bd0e8cf0efb5d0a3808f4649e0d9eb69b6d8 > Signed-off-by: Yilun Lin <yllin@chromium.org> > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1806178 > Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Change-Id: Ic05a7a4d9b237bff15379d2d10167521e5613d62 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1826105 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Ikjoon Jang <ikjn@chromium.org> Commit-Queue: Nicolas Boichat <drinkcat@chromium.org> Commit-Queue: Ikjoon Jang <ikjn@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org>
* tcpci: add missing CPRINTS argumentCaveh Jalali2019-09-261-1/+1
| | | | | | | | | | | | | this adds the missing "port" argument to a CPRINTS. BUG=none BRANCH=none TEST=buildall passes, boots on atlas Change-Id: I9308a4beea716441912aaa06eb206e9d17186cd9 Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825876 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* usb_pd_protocol: add missing CPRINTF argumentCaveh Jalali2019-09-261-1/+1
| | | | | | | | | | | | | This adds the missing "port" argument to a printf. BUG=none BRANCH=none TEST=buildall passed, boots on atlas Change-Id: Ia0e27b323bf6f274efbd3498c8e7e5c7d7b81a1a Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825875 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* dratini/dragonair: implement ledsDevin Lu2019-09-263-43/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clone from CL:1557844 1. dratini/dragonair have the same design as bloog, there are two set charging leds on system (right side and left side), each side has two colors amber and white. 2. dragonair have a power led indicate to power state suspend/off. The led behavior define as following: 1. Charging led: led on with charging port active, other port is off. Charging: Amber. Discharging: Off. Battery Error: Blinking white (0.4 sec on, 0.4 sec off) Fuel < 10%: Blinking white on right side port (1 sec on, 1 sec off) Force idle for factory: Blinking amber (1 sec on, 1 sec off) 2. Power led: System is S0: White System is suspend/S0ix: Blinking white (1 sec on, 1 sec off) System is S5: Off BUG=none BRANCH=none TEST=make sure led behavior intended. make sure ectool led power white/off/auto work correctly. make sure ectool led left white/amber/off/auto work correctly. make sure ectool led right white/amber/off/auto work correctly. Change-Id: I6bfb66f1ad5f57074c880af69a2fdb8dcba9c38d Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1786463 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* util/comm-i2c: upgrade to host command protocol v3Harry Cutts2019-09-262-104/+139
| | | | | | | | | | | | | | | | | | | | | We can remove the v2 code, as any boards still using it have reached end-of-life, with the exception of Samus's PD, which we only communicate with via the Kernel driver, as far as I can tell. (I verified that an `ectool` built with this change can still be used to communicate with the Samus PD.) BRANCH=none BUG=none TEST=Checked various commands (hello, version, inventory...) with `--interface=i2c` and `comm_init_i2c` modified to hard-code the I2C bus to use (as the board I tested with is not yet in sysfs). The test board is using a MAX32660, so https://crrev.com/c/1716928 was patched in for testing. Change-Id: I1e014c6f747ce29d9bf1541be51c519af98e7f45 Signed-off-by: Harry Cutts <hcutts@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1803977 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* cleanup: remove copy of pd_cc_state enumJett Rink2019-09-266-52/+46
| | | | | | | | | | | | | | | | | | | | | The EC command interface created a separate copy of the enum pd_cc_state. Remove the EC command version and move the pd_cc_state definition to the command interface. Also remove PD_CC_NO_UFP option as there is no difference between that value and PD_CC_NONE. Split PD_CC_DEBUG_ACC into separate UFP and DFP values for clarity. BRANCH=none BUG=none TEST=builds Change-Id: Ic8c4c5ac4dd340b1e605100e35acb147c226a455 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825503 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Sam Hurst <shurst@google.com>
* iteflash.md: Update link to CrOS EC development docMatthew Blecker2019-09-251-1/+1
| | | | | | | | | | | BRANCH=none BUG=none TEST=Used Gitiles to view and follow the updated link. Change-Id: I5be72babb69e4c76b4f38f8370448bf9ab795ba0 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1825501 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* Akemi: Remove the run-time selection for en_pp5000_aPhilip Chen2019-09-243-42/+1
| | | | | | | | | | | | | | | | | The run-time selection for en_pp5000_a is only needed for Hatch rev0. Akemi doesn't need it. BUG=b:141399038 BRANCH=none TEST=boot akemi Change-Id: Ibd26b85b69cbcd4e7c9c6b39fa453399246fcefc Signed-off-by: Philip Chen <philipchen@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1817024 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Commit-Queue: Philip Chen <philipchen@chromium.org> Tested-by: Philip Chen <philipchen@chromium.org>
* trembyle: enable new PD state machineDenis Brockus2019-09-232-0/+15
| | | | | | | | | | | BUG=b:138599955 BRANCH=none TEST=make buildall -j Change-Id: I607ae5cd77809fbcf3dc09a73a1feb814be690f2 Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1809245 Reviewed-by: Jett Rink <jettrink@chromium.org>
* pd: Add Fast role swap to the PE state machineDenis Brockus2019-09-231-30/+145
| | | | | | | | | | | | | | Optimized code to use PRS path when possible in FRS execution. Added super state for shared path to default PRS path for debug. Unit tests will be created after the state machine changes are completed. BUG=b:138599955 BRANCH=none TEST=make buildall -j Change-Id: Ic9098dba6b86f161df9e6636194476aac5ecba56 Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1809385
* USB-PD: SOP'/SOP" packet header fieldRuibin Chang2019-09-231-8/+20
| | | | | | | | | | | | | | | | | | | | SOP'/SOP" message header bit field: bit5:should reserved bit8:0b Message originated from a DFP or UFP 1b Message originated from a Cable Plug. reference: PD3.0 v2.0 spec table 6-1 message header. BUG=None BRANCH=None TEST=test on baord: reef_it8320 SRC connects to SNK via E-mark cable, sources Vconn successfully, check SOP' header bit field by Lecroy analyzer. Change-Id: Ie9b9d8507d84d5b4c694cc906eb7da8715b88a5f Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1725379 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* cr50: Refactor access to U2F stateLouis Collard2019-09-232-54/+112
| | | | | | | | | | | | | | | | | | | | This moves U2F state from global variables to a struct that must be accessed through a function, which will load that state if it is not already loaded. This is to protect against accidental use of uninitialized global state. BRANCH=none BUG=b:140361043 TEST=flash to soraka, U2FTest, generate key, wait for deep sleep, authenticate using key Change-Id: I4681c00fbcfac71f4e178af52461f75a635cced5 Signed-off-by: Louis Collard <louiscollard@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1786885 Reviewed-by: Andrey Pronin <apronin@chromium.org>
* usb_pd: Send SOP' DiscIdent messages on SOP NAKsPrashant Malani2019-09-232-3/+20
| | | | | | | | | | | | | | | | | | | | | | Currently, the only scenario where an SOP' message is sent is when we receive a SOP DiscIdentity Response from the UFP. However, we should be able to query the cable characteristics even if the UFP responds with a NAK. So, add handling to send a SOP' DiscIdentity even if we receive a NAK. This will not otherwise disrupt the PD connection flow. Note that there may be other situations where SOP' messages can be sent, but aren't currently being sent. BUG=chromium:1005941 BRANCH=None TEST=make -j buildall; Test on a hatch with a Pixel 2 DUT. Cable correctly responds with Cable information even after the EC receives a UFP DiscIdentity NAK. Change-Id: Ia856f2eb1547f09ae1dc0318021ad9f2458fc25a Signed-off-by: Prashant Malani <pmalani@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1808057 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* touchpad_gt7288: support touch width and heightHarry Cutts2019-09-212-3/+10
| | | | | | | | | | | | | GT7288 firmware version 4 supports these dimensions. BRANCH=none BUG=none TEST=check output of `gt7288_rep` command, comparing palms and fingers. Change-Id: I9094d8f86f34e4f319a9743c246461853d0382cf Signed-off-by: Harry Cutts <hcutts@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1815403 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* version: Make ver_get_num_commits work for on-flash imagesDaisuke Nojiri2019-09-215-20/+43
| | | | | | | | | | | | | | | | | | | | | | EFS needs to check whether a RW version on flash is equal to or newer for rollback protection before jumping to a RW copy. Currently, ver_get_numcommits works only for the running image. This makes it work for images on flash as well. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=chromium:998135 BRANCH=none TEST=Boot Nami. Verify version numbers are read from RAM and flash. Change-Id: I94475e40f89dc4c3173d83cb1d9d4ad38d6fab79 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1450816 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
* ec: improvements in automation scriptPaul Fagerburg2019-09-211-34/+33
| | | | | | | | | | | | | | | | | | | | | | | | | Make style changes (upper case for variable names, uniform exit codes, don't need to popd when exiting) and error handling improvements in the create_variant.sh script. Add optional parameter to specify the bug number for creating the new variant. BUG=b:140261109, chromium:999705 BRANCH=none TEST=``./create_variant.sh hatch sushi && git show`` Compare board/hatch/* to board/sushi/* Also run the script with an existing board name to verify that you can't create a variant that already exists. Also run the script with a non-existent base board to verify that you can't clone something that doesn't exist. Cq-Depend: chromium:1782686 Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org> Change-Id: I7bad4e3f2b368dc4baf71a9ffd5460e05fd17d63 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1814396 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* docs: change docs finding EC consoleMary Ruthven2019-09-201-1/+1
| | | | | | | | | | | BUG=none BRANCH=none TEST=none Change-Id: I62b04adf970abf5534d5ce6c7630f6b09749222c Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1816305 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* kodama: Keep max charging voltage when remove batteryxiong2019-09-202-2/+29
| | | | | | | | | | | | | | | | | | With adapter plugged in S0, the system will set charging current and voltage as 0V/0A once removing battery. Vsys drop to lower voltage (Vsys < 2.5V) since Vsys's loading, then system will shutdown. Keep max charging voltage as 4.4V when remove battery in S0 to not let the system to trigger under voltage (Vsys < 2.5V). BUG=b:138978212 BRANCH=master TEST=system will stay S0 state when remove battery Change-Id: I8356ee01826ad981e2701cd3674eb7cef87da0a9 Signed-off-by: Xiong Huang <xiong.huang@bitland.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1763899 Reviewed-by: Yilun Lin <yllin@chromium.org>
* pd: Chunked TX State Machine changesDenis Brockus2019-09-192-43/+67
| | | | | | | | | | | | | | | | | Comment when TCH states are embedded. TCH_Message_Sent and TCH_Report_Error states were redundantly implemented inline. I added these states so it would match the spec more closely. BUG=none BRANCH=none TEST=make buildall -j Change-Id: Ib911aa8ac99be5eb0372e55b658a0542c02596fd Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1773132 Reviewed-by: Jett Rink <jettrink@chromium.org>
* pd: RCH_Processing_Extended_Message cleanupDenis Brockus2019-09-191-19/+13
| | | | | | | | | | | | | | | Change first chunk processing to be handled embedded in RCH_Wait_For_Message_From_Protocol_Layer run to get the actual first chunk and don't rely on the chunk headers to indicate the first chunk BUG=none BRANCH=none TEST=make buildall -j Change-Id: Iadb606dfaca7b3f4d3ff6528dcfbd3e6aad196a4 Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1773118