summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tpmtest: added more corner case, make it work again with OpenSSL 1.1Vadim Sukhomlinov2020-08-112-34/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TPM test directory has bitrotted and does not compile any more, leave alone pass tests. This patch updates the tests to match changed EC codebase: test/tpm_test/Makefile - look for include files in more directories test/tpm_test/bn_test.c - 1. add support for OpenSSL 1.1 where BIGNUM structure became opaque and require special functions to access it. 2. added backward compatibility layer for OpenSSL 1.0.2 3. fixed issues with OpenSSL memory allocations 4. added support to print details of failure 5. added more cases for modulo inverse testing 6. added testing for bn_div to increase branch coverage BRANCH=cr50 BUG=none TEST=./test/tpm_test (../../build/tpm_test/bn_test) now passes Change-Id: Ida5fb07277909977f78ad1199e7a0f3677aabdc3 Signed-off-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1764711 Reviewed-by: Andrey Pronin <apronin@chromium.org> Commit-Queue: Andrey Pronin <apronin@chromium.org> (cherry picked from commit fb1d26a58e5511d70f747e8b943096c22dead07c) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2223147 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit 1da8e0dd19cd7e7c16712fbf0deb00c9f4ad5889) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2314110 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 257cadc0e13e4573c4f51d41f64183a32837e9ab) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2350272
* tpmtest.py: update Makefile to correct build of ftdi_spi_tpmVadim Sukhomlinov2020-08-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | make of ftdi_spi_tpm fails: ../../include/config.h:4878:25: fatal error: fuzz_config.h: No such file or directory #include "fuzz_config.h" It seems issue happened after moving fuzzing tests into a fuzz subfolder in https://chromium-review.googlesource.com/1180179 Added include search path to correct issue. BRANCH=none BUG=none TEST=in test/tpm_test/ make successfully builds ftdi_spi_tpm Change-Id: I0c212ba7f84babd5db0c02d553345769de301d00 Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1913325 Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org> Tested-by: Vadim Bendebury <vbendeb@chromium.org> Auto-Submit: Vadim Sukhomlinov <sukhomlinov@chromium.org> (cherry picked from commit 977c1267c00389de296cc7bdcf946badef4601aa) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2314109 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit d40db1ef180589c4a05902c9afba86581512c261) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2350271
* Unify #! use in python scriptsStefan Reinauer2020-08-1124-25/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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> (cherry picked from commit 68c9a2870ead8a3306a2601c4f5689656d49c6a8) Change-Id: I55272c289eaeb24bbaa7024ece7beb4cb14ea9ec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2314108 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit a72597d3bfaed8a602e9db138da23d5fdb7f5e56) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2350270
* tpmtest: Make it work with current cr50Gurleen Grewal2020-08-112-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | A couple of changes are needed to make tpmtests run with the latest cr50: 1. The CRYPTO_TESTS flag turns off the TPM in cr50 build, so no need to initalize TPM. 2. FW_UPGRADE protocol now uses offset into flash instead of absolute memory addresses to perform upgrade. BUG=None TEST=test/tpm_test/tpmtest.py runs and all tests pass Change-Id: I2402ba956e4588a7452128e75fbc82c44f8cf04f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1804068 Tested-by: Gurleen Grewal <gurleengrewal@google.com> Commit-Queue: Gurleen Grewal <gurleengrewal@chromium.org> Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit ad20ea449951e49ecd991ade3a8f3f5a3fd7a227) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2314107 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit d350696c949360a5297a589644d2a6d05e2dc6c4) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2350269
* tpmtest: make the test work againVadim Bendebury2020-08-114-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TPM test directory has bitrotted and does not compile any more, leave alone pass tests. This patch updates the tests to match changed EC codebase: test/tpm_test/Makefile - look for include files in more directories test/tpm_test/bn_test.c - add implementation of always_memset() which for the EC tree now comes from a different tree and provide a plug for watchdog_reload() which is no used by dcrypto code (which in fact is not a good idea, but an issue for another day). test/tpm_test/hash_test.py - update to match new format of return messages test/tpm_test/upgrade_test.py - update to match the new format of return messages and limit the test to installing just 2K worth of data BRANCH=cr50 BUG=none TEST=./test/tpmtest/tpmtest.py now passes Change-Id: Ibcd7fcfba06cd83023e35a2ac4f37ec896492ad4 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/665322 Reviewed-by: Nagendra Modadugu <ngm@google.com> Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 0309b5581713ca4f9bd59dbca5c58bbda4acf676) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2314106 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 7183fc62d98ebdfb2128862c2c640846f3017c95) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2350268
* cr50: prepare to release 0.{5,6}.5Mary Ruthven2020-06-242-2/+2
| | | | | | | | | | | | | | | | | | | BUG=b:158774719 TEST=none Change-Id: I4558a8d4cb9219c8d78db9982f9c5d80d8a30d84 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242770 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit ceb955abb5628cb11003e094ec9431b3ed6bf240) Change-Id: I6df4be0f4f1725b9fdc06452f67291d6c8c70429 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2243325 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 3dad445418378d1ecf2b6af7f90bc52442f9b9cc) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261503
* cr50: fix conflict in vendor_cmd_cc enumAndrey Pronin2020-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | After CL:1740075 and CL:1748846 we had a duplicate value for two different vendor commands in tpm_vendor_cmd.h: VENDOR_CC_ENDORSEMENT_SEED = 48 VENDOR_CC_U2F_MODE = 48 This CL fixes the issue. BRANCH=none BUG=b:139809333 TEST=none Change-Id: Ic593e138c9126eb2a7e97b2e12c2daa890787d8c Signed-off-by: Andrey Pronin <apronin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1763303 Reviewed-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Louis Collard <louiscollard@chromium.org> (cherry picked from commit 4ad4225c1cfdf015ea82158aea7eb44937382460) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2243754 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 31bb714b1a7b48530f1b7fa4b520c304946a3585) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261502
* cr50: rename ver_stateMary Ruthven2020-06-241-2/+2
| | | | | | | | | | | | | | | BUG=b:158843230 TEST=run 'ver' on cr50 Change-Id: Ia22cbc74dc23156a11caceb587f8380aa68ce23b Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2243312 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> (cherry picked from commit af8c38689179bb4dfe15dfb98b7de429fe08cf52) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2243324 (cherry picked from commit 5b07b103265cffcc62579bf9e7190142d3b8017e) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261501
* cr50: append 0 to ec points if necessary.Leo Lai2020-06-241-7/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL enables cr50 to accept EC points of which X and/or Y component has less than 32 bytes. For testing, the following 4 data inputs can pass the test: 1. Creating salted session with a full-length ephemeral key. 2. Creating salted session with a short ephemeral key. 3. Walking through enrollment flow with a full-length ephemeral key. 4. Walking through enrollment flow with a short ephemeral key. BUG=b:157528390 TEST=see the comment above. Change-Id: I12c744ab00391a31d81d4ac6b6e644981ae46f48 Signed-off-by: Leo Lai <cylai@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2222386 Tested-by: Leo Lai <cylai@google.com> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit e74d8b264cab776631991e16a6a447da0ce73561) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2243311 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 87ea2a87633b3a003389db1f4f988feefd61eb18) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261500
* test/ecc_test.py: fix hash code constantVadim Sukhomlinov2020-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In https://crrev.com/c/2227077 ECC command handler was reimplemented, but associated test was uploaded with old version of constant. BUG=b:138578319 TEST=make CRYPTO_TEST=1 BOARD=cr50 -j && test/tpm_test/tpmtest.py Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com> Change-Id: I7c50ed108d193958e62f76c2f7315247df14a398 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2238649 Tested-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Commit-Queue: Vadim Sukhomlinov <sukhomlinov@chromium.org> Auto-Submit: Vadim Sukhomlinov <sukhomlinov@chromium.org> (cherry picked from commit 27156bdc54e6770dcd6ddf7d3ba7d3b4a8747ec2) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242523 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 1499cf9aa7efa09ec507a73a6b0feb4e45980329) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261499
* Fix in the console output message of EC-CR50 comm initializationNamyoon Woo2020-06-241-1/+1
| | | | | | | | | | | | | | | | | | BUG=none TEST=buildall Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: Ie71e668e2966979a94035dcde750b1e31a7ba3f7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2238540 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit e654c3313a8d7c4e42a90d829e0026af563bfb09) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242522 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 27a8f176d00b0ba22172d3d14cb2d5176d9e630a) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261498
* cr50: add functionality for ACVP tests of elliptic curve implementationVadim Sukhomlinov2020-06-242-144/+368
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | NIST ACVP test expects access to test point is on curve and verification of signature with arbitrary public key. Current implementation supported only fixed public key. ACVP tests to be submitted separately. Added two new test commands to support ACVP: - TEST_POINT - test that given point is on selected curve - TEST_VERIFY_ANY - same as TEST_VERIFY, but use provided Q - TEST_SIGN_ANY - same as TEST_SIGN, but use provided d (private key) BUG=b:138578319 TEST=make CRYPTO_TEST=1 BOARD=cr50 -j && test/tpm_test/tpmtest.py Change-Id: Ibeabede935f5bbac918b3043072e05f8a6417aa4 Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2227077 Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Tested-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Commit-Queue: Vadim Sukhomlinov <sukhomlinov@chromium.org> Auto-Submit: Vadim Sukhomlinov <sukhomlinov@chromium.org> (cherry picked from commit 65e147217ad968743b5f6e3d94db6b5dcefb11ad) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242521 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit dff900763507d9885533d32da42489acb141cc98) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261497
* ap_ro: add handling of the corrupted hashVadim Bendebury2020-06-244-2/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch closes the AP RO verification loop on the Cr50 side. If the check is triggered, the valid AP hash is found, and the RO contents is found to not match the hash, the Cr50 will - assert the EC reset; - set a flag to prevent the code from deasserting EC reset; - start a periodic hook to reassert EC reset in case the user hits power+refresh. This will prevent the Chrome OS device from booting. A new CLI command is being added to display the verification state. In developer images the new command would allow to clear the failure state, when running prod images the only way out of the failure state would be the powercycle. BUG=b:153764696 TEST=verified that erasing or programming AP RO hash when board ID is set is impossible. Verified proper shutdown in case AP RO has is present and the AP RO space is corrupted and recovery using the new cli command when running a dev image. Verified that 'ecrst off' properly reports the override. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I1029114126a9a79f80385af7bc8d5467738e04ca Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2218676 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit dd15f8676d55ef1c78f78016ce6c6175d3806174) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242520 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 14e0bdc0ebb2908943083b0eb26dfb790b4996a3) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261496
* cr50: Add support for ACVP tests of HMAC implementationsVadim Sukhomlinov2020-06-242-59/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to support NIST ACVP testing, new commands to provide access to HMAC implementations (software, and hardware accelerated HMAC SHA-256) with CRYPTO_TEST_SETUP added: - Software HMAC (_cpri_StartHMAC) TPM implementation - dcrypto HMAC (DCRYPTO_HMAC_SHA256_init) Updated hash_test.py to support different hash algorithms for hash and HMAC, added HMAC tests. BRANCH=cr50 TEST=make BOARD=cr50 CRYPTO_TEST=1 -j && test/tpm_test/tpmtest.py BUG=b:138578319 Change-Id: I57da2f27734fc7e5dbc896d75c5f8b2ed60e3b18 Signed-off-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1854885 Reviewed-by: Gurleen Grewal <gurleengrewal@google.com> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Gurleen Grewal <gurleengrewal@google.com> (cherry picked from commit 32c349afe72541570984a32bd85b8f1fcf2acb39) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2227074 Commit-Queue: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit 253388ec3a701a65a0c1ce70bcadc2cfb4626fef) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242519 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit a79a5e6c05359d59d1285702b1b8179b90279b8c) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261495
* Introduce BOARD_CFG_LONG_INT_AP_BIT in TPM_BOARD_CFG registerNamyoon Woo2020-06-244-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch assigns the bit offset 0 in TPM_BOARD_CFG register to indicate the status of INT_AP_L extension. The bit 1 means INT_AP_L pulse extension is activated, and 0 means it is not. BUG=b:148691139 TEST=tested on atlas and on careena. 1. Checked the default TPM_BOARD_CFG (PWRDN_SCRATCH21) value was zero and the INT_AP_L assertion duration was 4~10 microseconds. > md 0x400000f4 1 // memory dump on GC_PMU_PWRDN_SCRATCH21 400000F4: 0x00000000 2. Attempted to change the board configuration (with a hacked UART command.). The register value was unchanged. > brdcfg 0x01 TPM_BOARD_CFG = 0x00000000 > md 0x400000f4 1 400000F4: 0x00000000 3. Forced to write the board configuration with a hacked UART command. The register value was changed. > brdcfg 0x01 force TPM_BOARD_CFG = 0x80000001 > md 0x400000f4 1 400000F4: 0x80000001 4. Checked the INT_AP_L assertion duration extended to 110 microseconds or longer. 5. After cr50 deep sleep, checked the pulse duration was still extended. - turned AP off. - disconnected Suzy-Qable. - waited three seconds - connected Suzy-Qable, and checked the reset cause was 'hibernate rbox'. > md 0x400000f4 1 400000F4: 0x8000001 6. With 100 usec long INT_AP pulse, checked trunks_cliend regression_test, stress_test and ext_command_test runs good. Checked dmesg and found no TPM errors through all tests. (ap) $ trunks_client --regression_test (ap) $ trunks_client --stress_test (ap) $ trunks_client --ext_command_test 7.checked no character loss during uart_stress_tester. (chroot) $ uart_stress_tester.py -c -t 600 /dev/ttyUSB2 /dev/ttyUSB1 8. the shortest duration of INT_AP_L assertion and deassertion observed in logic analyzer were 110 usec and 152 usec. 9. measured the depthcharge exit timestamp and cr50 flash time with or without INT_AP pulse extended to 100 usec, on atlas and helios: Change-Id: I5d8f8a3ccf8b0a4f9f8f0059eddd7da71cc319f8 -----------------+-------------------+------------------ | atlas | helios -----------------+-------------------+------------------ boot (sec) | 1.398 -> 1.402 | 1.004 -> 1.011 cr50 flash (sec) | 10.800 -> 14.609 | 16.024 -> 16.466 -----------------+-------------------+------------------ Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: I2b9f9defb63cf05f9d91b741ccb4b49c4c6bc8e2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2202839 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit ea0fd78e5e218ef50ba947f4c921ae91a69b5442) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242518 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit f13eea24af19ac208a08ea9c8eaafa04bb4e66a7) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261494
* Introduce TPM_BOARD_CFG registerNamyoon Woo2020-06-247-1/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the TPM vendor-defined register, TPM_BOARD_CFG, which indicates the board configuration status. This register is attributed as one-time-programmable and the value is maintained across deep sleeps. Cr50 allows a write on this register right after a cr50 reset until it receives a TPM2_PCR_Extend command. BUG=b:148691139 TEST=none Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: I89ae5a53c15990ef78812aec5da81a59f04d7d98 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2202838 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit 77f11cd9e99bc1d6a63acee45a3d457b7f205523) Change-Id: Ia4c0b8f7194659074f0e67bb8464f6879980c03f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242517 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Namyoon Woo <namyoon@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 123eabcabd127769bdfb0e52fc0936d3c4c27122) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261493
* apply INT_AP_L extension on I2CS interfaceNamyoon Woo2020-06-243-13/+46
| | | | | | | | | | | | | | | | | | | | | | | This patch applies INT_AP_L extension on I2CS. It uses GPIO_MONITOR_I2CS_SDA to detect a transaction start during INT_AP_L assertion and to deassert INT_AP_L. BUG=b:148691139 TEST=None Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: Iedd59b488dfdfaaf71dd71eda6437f1a9402d3c4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2150517 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit 5a60b3b215125e8d2c145e17867fcfaaae682dcd) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242516 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 5b56d48c35373dd98dfb15951d4eed7d13927341) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261492
* timer: add SEC_ULMary Ruthven2020-06-241-0/+1
| | | | | | | | | | | BUG=none TEST=make -j BOARD=cr50 Change-Id: I010a157a32fa9a7e214b8e6f8222e8aafe9a1ea5 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242515 (cherry picked from commit 65745b56414d5f342fe4a4b878c1997ab124b999) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261311
* Use a long pulse of INT_AP_L for SPSNamyoon Woo2020-06-244-8/+241
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a feature to extend each level of GPIO_INT_AP_L at least for 100 microseconds. The assertion (low GPIO_INT_AP_L) duration might be shorter only if AP asserts a SPS CS before INT_AP_L deassertion, because it means means AP recognized GPIO_INT_AP_L assertion already. This patch increases the flash usage by 280 bytes. BUG=b:148691139 TEST=None Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: Ie74b236bc5352e9fc21fe600c12946e50955160a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2114430 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit 57e170c71339961ea0d411e3ffa7c6d8e50c8ea3) Change-Id: I56de5dc8d2685a3bdf5cdc1a87b86f4502a90d1f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242514 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit c08805c9df21be9182f68b73e584eaeefc527b33) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261310
* ap_ro_integrity_check: move error codes enum into the .h fileVadim Bendebury2020-06-242-12/+15
| | | | | | | | | | | | | | | | | | | | | This is a no-op change which will make it easier to have gsctool report sensible errors in case attempts to erase AP RO hash space fail. BUG=b:153764696 TEST='make buildall -j' succeeds Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Iad396a52439ac7e4377f1dc983f00e976fabd8ad Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2207791 Reviewed-by: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit bb8e0b8b09a80e838aaf96f86bfbbace3ecd0a4f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242513 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 70fc76226b226633c661776b9de87fdb9e5028f2) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261309
* ap_ro_integrity_check: allow gsctool erasing AP RO hashVadim Bendebury2020-06-241-7/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch extends the VENDOR_CC_SEED_AP_RO_CHECK handler to erase the AP RO hash space if two requirements are met: - the vendor command payload is empty - the board ID space in INFO1 is not programmed Also, after this patch it would be impossible to program the AP RO hash if the Board ID INFO1 field is set. This will prevent attempts to write the hash by the users of existing devices. BUG=b:153764696 TEST=after expanding gsctool was able to verify AP RO hash space erase when allowed. Was able to write the hash when board ID space is uninitialized, and was not able to write the hash when the Board ID space is set. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I0d2409cb0a97bf98f52e7f10fd41660305638122 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2204975 Reviewed-by: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit fb3eb55a5bb8f619ada8b46f5a219ff239fe215c) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242512 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit ea811d09435466f1a5528b2d7800a7d2815aedb6) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261308
* close RO window after useVadim Bendebury2020-06-245-8/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code opening the RO windows to make it possible to update or enable the RO images, leaves the window open, allowing subsequent writes into the RO space. It has been acceptable until now, because RO updates are usually followed up by reboots. With introduction of the AP RO hash, there is a need to close the window (specifically, disable write access) when not in use. This patch adds a function for that and uses the new function everywhere where flash_open_ro_window() is called. BUG=b:153764696 TEST=verified successful Cr50 RO and AP RO hash updates. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Ia595e5c7ce0beb1a67ef3513117984d18655a60c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2204973 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 160f0f9f632e5a64527753d8c17399ab1ae0ff2b) Change-Id: I2e15e3b960fa57e29f7a566298cfe8ed5ab14ef7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242511 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 7862370635beccf577c088950d1867aa821bffc6) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261307
* ap_ro_integrity_check: don't ignore flash write return valuesVadim Bendebury2020-06-241-4/+12
| | | | | | | | | | | | | | | | | | | | | Let's make sure that should there be an error during flash write operation saving the AP hash information, the error gets reported to the AP in the VC response. BUG=b:153764696 TEST='make buildall -j' Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Idf9f8d267cae923909c2afc777b95bb2c7b638b3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2202955 Reviewed-by: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit b3b080f7e9a9f329e08d838ccaabdf7c81926609) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242410 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit cd78155a1641e8676713982616f11c4fcc72da20) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261306
* ap RO verification: enable loggingVadim Bendebury2020-06-244-4/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When AP RO verification is attempted, a lot of thing could go wrong, and the operator would usually have very little insight into what's happening unless there is a terminal connected to the Cr50 console. This patch adds a new log event for registering the AP RO verification progress. The event payload is a single byte value, logging the following events: 0 - refresh key press is detected 1 - power button has been released before AP RO check was triggered 2 - trigger sequence timeout (refresh button not pressed in time) 3 - AP RO check triggered 4 - could not run the check, hash space not programmed 5 - could not run the check, hash space corrupted 6 - AP RO verification failed 7 - AP RO verification succeeded BUG=b:153764696 TEST=verified logging during various AP RO verification attempts: $ gsctool -a -L Log time zone is PST Dec 31 69 16:00:01 : 00 May 06 20 21:20:49 : 09 01 May 06 20 21:21:53 : 09 00 May 06 20 21:21:54 : 09 00 May 06 20 21:21:55 : 09 03 May 06 20 21:21:56 : 09 07 May 06 20 21:23:03 : 09 00 May 06 20 21:23:04 : 09 00 May 06 20 21:23:05 : 09 02 May 07 20 11:21:52 : 09 00 May 07 20 11:21:53 : 09 00 May 07 20 11:21:54 : 09 01 May 08 20 11:57:21 : 09 00 May 08 20 11:57:22 : 09 00 May 08 20 11:57:23 : 09 03 May 08 20 11:57:24 : 09 04 May 08 20 12:07:15 : 09 00 May 08 20 12:07:16 : 09 00 May 08 20 12:07:17 : 09 03 May 08 20 12:07:19 : 09 07 May 08 20 12:09:20 : 09 00 May 08 20 12:09:21 : 09 00 May 08 20 12:09:22 : 09 03 May 08 20 12:09:23 : 09 06 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I739f9dbb2e7b8fc87601d61e1f87eb49d85bdf14 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2191283 Reviewed-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit ce4a25f69b460aca8011d21c79ad6e90e52f94df) Change-Id: I3896a4063e79fa82ca113f715213ef3a611efd44 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242409 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 373932a01748f15c0c7680b187e196466aa223af) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261305
* ap_ro_verification: enable AP RO verification supportVadim Bendebury2020-06-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch flips on the switch for the AP RO verification implementation. BUG=b:153764696 TEST=generated AP integrity verification data using the ap_ro_hash.py script and then ran the verification procedure, observing the 'hash match' message on the Cr50 console. Also verified that the Open Box RMA procedure still succeeds. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I15f19aefcb11a055e66994e33976b98ce6fdf099 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2220829 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 671baed12042a5c0866923427abb407818c15663) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242408 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit bf64885316f68bd274102daaa17145ddbe5d7025) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261304
* Plug in the AP RO verification implementationVadim Bendebury2020-06-245-3/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds plumbing necessary to invoke the AP RO verification function in response to the operator entering the 'magic sequence' of holding the power button pressed and pressing/releasing the refresh button three times within five seconds. The code used during the 'Open box RMA' verification process is used, with the physical presence confirmation phase bypassed. This patch also makes sure that attempts to use CCD to program AP or EC flash while AP RO verification is in progress would fail. BUG=b:153764696, b:154966209 TEST=with the next patch applied, generated AP integrity verification data using the ap_ro_hash.py script and then ran the verification procedure, observing the 'hash match' message on the Cr50 console. Also verified that the Open Box RMA procedure still succeeds. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Ic101fb892554ebb05f9ebe6d1546bfb439f74043 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171399 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 85d2ae0a9056859a0c159406121fc586c99d98e1) Change-Id: Ie4fcfad68a3729bc431a15389532038292d65260 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242407 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit d18002b05047043e625b10904bbac122139145b1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261303
* Add AP RO integrity check implementation.Vadim Bendebury2020-06-245-2/+300
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds code which accepts the vendor command communicating the list of the AP firmware sections to verify and the expected cumulative sha256 sum value of the sections. The vendor command payload is checked for sanity: each range offset is not expected to exceed 32M bytes (the largest possible SPI flash size) and each size is not expected to exceed 4M bytes. If any inconsistencies are found in the payload, or the flash integrity space is already programmed, an error is returned to the AP. It the command validity check succeeds, the payload of the vendor command is prepended by a header including the number of the flash regions to check and a 4 byte checksum of the stored information. This combined information is stored in the dedicated H1 flash space, specifically the RO_B region, at offset of 0x3000, 2K bytes page below the region used for the flash log. The valid RO range in upgrade_fw.c:set_valid_sections() is modified to prevent erasing of the AP RO hash value during Cr50 RO updates. The new file also introduces a function used to verify the AP flash when requested. The returned value indicates one of three conditions: - valid verification information not found - AP flash integrity verification failed - AP flash integrity verification succeeded A new console command allows to examine the contents of the space where the list of ranges and the sum are stored. CR50_DEV builds also allow to erase the page. BUG=b:153764696 TEST=with the rest of the patches applied verified successful execution of the AP RO verification sequence. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I1894ef897a86e9d60b9f5bcff3a680f632239e1b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171398 Reviewed-by: Andrey Pronin <apronin@chromium.org> (cherry picked from commit 907629953aaf6a03fe2cf73de1748e40e580a073) Change-Id: I73ea7f82e86c8f6724d9f2cc85e1885d448b7b01 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242406 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit e670654714105bf08c096de3e61bc83b9f0b6f64) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261302
* board_id: refactor to expose function checking INFO1 board ID spaceVadim Bendebury2020-06-243-19/+27
| | | | | | | | | | | | | | | | | | | | This patch makes it possible to check if the INFO1 Board ID space is programmed or not. BUG=b:153764696 TEST='make buildall -j' Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Ic771956a08e276c2e1a426729a8ecdae3f86a04f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2204974 Reviewed-by: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit 70c81db54fff163b7b4bfe2b4a02e2b10e906bed) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242405 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 2432e4c725b525cbf8f302a4e85de89f005eaaf9) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261301
* usb_spi: refactor to allow use in different contextsVadim Bendebury2020-06-243-33/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code which allows to read a section of AP or EC flash and calculate the section's SHA256 sum does not allow calculating the sum over multiple non-adjacent flash areas. This patch changes the implementation to allow calculations over more than one region. Initialization, calculation and reporting of the result become three separate API entries. The loop counting the number of the read flash chunks, is being simplified, a watchdog kick added to the brief loop interruptions, as it turns out that sleeping alone is not enough to prevent watchdog expiration when calculating hash over large SPI flash ranges. Also simplified prototypes for usb_spi_board_enable() and usb_spi_board_disable(). BUG=b:153764696 TEST=created an RO descriptor for the Atlas DUT and verified that 'gsctool -O' succeeds. Cq-Depend: chrome-internal:2939596 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Iec7b8634c7c80ebc7600c5b708879eb322bc7fec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2163569 Reviewed-by: Andrey Pronin <apronin@chromium.org> (cherry picked from commit ca83aee50469799a9b70b03ef6bd3fc1e86d6c38) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242404 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 4858bc55562822a58064029f2c1b78c31355b596) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261300
* crypto_api: use const voidVadim Bendebury2020-06-246-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a minor API clean up, it is not entirely clear why const void pointers were not used originally, but using this type for input data (and void pointer for output) makes interfacing with the library much easier. Also modified cases where the first parameter of DCRYPTO_SHA1_hash() was typecasted unnecessarily. BUG=none TEST=make buildall succeeds, Cr50 image supports booting a Chrome OS device just fine. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Ic8a670aa7b26598ea323182845c184b7f1d715a1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2163568 Reviewed-by: Andrey Pronin <apronin@chromium.org> (cherry picked from commit 69a887265d737c628a3c55a03b923917cf1b471e) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242403 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 0cbca4c943e29fbf33cfad184583663827740a98) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261299
* make cr50 agnostic about EC-EFS2Namyoon Woo2020-06-243-21/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes cr50 respond EC-EFS2 related TPM commands no matter it has the board property, BOARD_EC_CR50_COMM_SUPPORT or not. board_has_ec_cr50_comm_support() calls remain for configuring GPIO_EC_PACKET_MODE_EN only. BUG=b:155214584 TEST=checked gsctool running on Coral. [before] $ gsctool --getbootmode finding_device 18d1:5014 Found device. found interface 3 endpoint 4, chunk_len 64 READY ------- Error 8 in Getting boot mode [after] $ gsctool --getbootmode finding_device 18d1:5014 Found device. found interface 3 endpoint 4, chunk_len 64 READY ------- Boot mode = 0x00: NORMAL Also checked 'ec_comm' uart command. [before] > ec_comm No EC-CR50 comm support Invalid argument Usage: ec_comm [corrupt] [after] > ec_comm uart : 0xff packet mode : DISABLED phase : 0 preamble_count : 0 bytes_received : 0 bytes_expected : 0 response : 0x0000 ec_hash : UNLOADED <-- It is marked as unloaded, secdata_error_code : 0x00001203 <-- because of NVMEM error. boot_mode : NORMAL <-- Still, boot_mode is normal. Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: I08dc9abd8f194c83484b5be9b0a5e8844b2fd221 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2185872 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit 53f6d8a9334b259cf6ec3ddbc577ff49354c1ed1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242402 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 5893405a785338e0b21286b8ae8f80f97d358518) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261298
* Implement sequence for detecting trigger for AP RO verificationVadim Bendebury2020-06-242-0/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When supported, the AP RO verification would be triggered by the operator pressing and keeping pressed the power button and then pressing and releasing a few times the refresh key. As proposed in this patch, to trigger the verification the operator must complete the sequence within 3 seconds by pressing the refresh key three times. The sequences is controlled by periodic polling. Enabling refresh key press interrupts was investigated, the issue is that the key generates plenty of interrupts due to dribbling, to the tune of a hundred each time it is pressed. It is much cheaper to just poll every 20 ms. The CONFIG_AP_RO_VERIFICATION config flag controls enabling of this feature. BUG=b:141191727 TEST=enabled the new feature and verified proper operation by both detecting the trigger and abandoning the sequence due to released power button or not enough times pressed refresh key. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I55376a87009d6f8020358ad11db1e47d0b8393ed Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2144944 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit adc20080797ae9958b5355ba743b6b97290bf07f) Change-Id: I8fa46d4841d55c811610388c893043d1bf649838 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242400 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit faf2d8e73cf154e65bb689878223c61479f7cc12) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261297
* tpm2: clean up stubs.cVadim Bendebury2020-06-241-17/+4
| | | | | | | | | | | | | | | | | | | | | | Drop the unused function and use ccprintf() instead of uart_printf(). Using ccprintf() will make it easier to use this code when packet mode is enabled. Used tabs in the changed lines s to pacify repo upload. BUG=b:149964350 TEST=make buildall -j Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I97522e9278a4393ef75b9a6a90e6995ba2449f30 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2114237 (cherry picked from commit b8f61cfb760001d0b716e82a35e8829572b5f330) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242398 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit fa5243f8b4caafdfa24b13bf2b71301e3db71ee6) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261296
* util: Add function to check whether a buffer is trivial (all 0x00 or all 0xff)Yicheng Li2020-06-243-14/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function's execution time depends only on the buffer length but not on the specific bytes in the buffer. BRANCH=nocturne BUG=chromium:927095 TEST=make -j buildall TEST=timed the execution of bytes_are_trivial() on a long array with the following contents: Array 1: 0x01, 0x00, 0x00, 0x00, ..., 0x00, 0x00 (first byte nontrivial) Array 2: 0x00, 0x00, 0x00, 0x00, ..., 0x00, 0x02 (last byte nontrivial) Array 3: 0x00, 0x00, ... , 0x00, 0x03, 0x00, ..., (middle byte nontrivial) Array 4: 0x00, 0x00 , ... (trivial) (These 4 arrays have the same length.) Verified that execution on these arrays take similar amount of time, proportional to the length of the array, specifically: For 256k bytes, takes 21~40 microseconds For 128k bytes, takes 10~17 microseconds For 64k bytes, takes 5~9 microseconds For 32k bytes, takes 2~5 microseconds Because the host timer inaccuracy and potential process scheduling variations, the execution time for arrays 1-4 are sometimes not exactly the same. To avoid test flakiness, this timing test is not written to unit tests. But it should prove that bytes_are_trivial() is a constant time algorithm. Change-Id: I131748e1a4ee3a3e19a105dba5dc443bb2371d30 Signed-off-by: Yicheng Li <yichengli@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1787870 (cherry picked from commit 1a078e86ab6523d90d8ecc975466c446c030aad0) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2202572 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org> Tested-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit 998e41ebc20b15cdbde2211453c9e60a39f497f1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2261295 Reviewed-by: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org>
* cr50: prepare to release 0.{5,6}.4Mary Ruthven2020-05-212-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | BUG=none TEST=none Change-Id: Idc983499980c0211d29767bb9dfad6caac99dc00 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2189617 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit c411dff46ad0062fe302169b40977861bd7760b2) Change-Id: Ifa68567a22a376f951cbedf5626a8247633165ac Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2190812 Reviewed-by: Andrey Pronin <apronin@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 3957431a0e2f5ba2f46fb4c7544ff79346ac7320) Change-Id: I513c79def7d39269235179cecef91f350ccc54fa Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210925 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org>
* sps: do not generate AP_INT_L pulse until controller is readyVadim Bendebury2020-05-211-19/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | The recent interrupt pulse extension brought to fore an old bug where the AP_INT_L pulse is generated by the SPS driver before the controller is actually ready to accept the next SPI frame. This patch rearranges the code to make sure that the pulse is generated after all controller clean up. BUG=b:154458891 TEST=verified that Atlas device is still booting fine. Will test it on other devices which seemed to be triggering the bug. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I480760b4afea24295f96abde2fc75c414017c27f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171452 Reviewed-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> (cherry picked from commit 7e1672d90661a1cb26cb1a429547e8934c68f34a) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181791 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit da65e058ac3b1e881c89783bd2a02058d30144b8) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210924
* ec: Convert comments to C-styleLouis Collard2020-05-211-48/+52
| | | | | | | | | | | | | | | | | | | BUG=b:123686979 TEST=make buildall -j Change-Id: I1fc49f44c6f1be3bcacb26662862cb68899be299 Signed-off-by: Louis Collard <louiscollard@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2102092 Tested-by: Leo Lai <cylai@google.com> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Leo Lai <cylai@google.com> (cherry picked from commit eddf0be11907c7a61a3b5c01a62badd9ccc380b5) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181725 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit e74b4558752409c17432e23bfc1c3a92f60bb8a6) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210923
* ec: Remove typedefs from u2f.hLouis Collard2020-05-212-37/+38
| | | | | | | | | | | | | | | | | | | | | BUG=b:123686979 TEST=make buildall -j Cq-Depend: chromium:2051792 Signed-off-by: Louis Collard <louiscollard@chromium.org> Change-Id: I9558ebcf5a83ae8a422a43b776147bececea70ba Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2102091 Tested-by: Leo Lai <cylai@google.com> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> Commit-Queue: Leo Lai <cylai@google.com> (cherry picked from commit 1a1129b5f9baf0dcef98d7c9f57fbb2d199af942) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181724 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 72b055b668667dd8b00515d5f5f9a3f48f89633d) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210922
* ec: Run clang-format on u2f.cLouis Collard2020-05-211-30/+21
| | | | | | | | | | | | | | | | | | | | | Also replaces uses of 'unsigned' with 'unsigned int' BUG=b:123686979 TEST=make buildall -j Change-Id: I2c7a861540f4ca3491b78f0c87e77ed01f57f0a0 Signed-off-by: Louis Collard <louiscollard@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2102090 Tested-by: Leo Lai <cylai@google.com> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Leo Lai <cylai@google.com> (cherry picked from commit 1be9bec56ff870ace0ffbeca525d6143052f2bd5) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181723 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 30e5850374fb438eb1319041a1b1d7dad6933b38) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210921
* ec: Run clang-format on u2f.hLouis Collard2020-05-211-53/+53
| | | | | | | | | | | | | | | | | | | BUG=b:123686979 TEST=make buildall -j Signed-off-by: Louis Collard <louiscollard@chromium.org> Change-Id: I646483719d5b97bf9622bbdd2f78ec3dce995d4a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2102089 Tested-by: Leo Lai <cylai@google.com> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Leo Lai <cylai@google.com> (cherry picked from commit a7e802fd92049aecc41485a79c74e06d8e376b86) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181722 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 59d44883a4a9a77702be9962089041302ec61271) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210920
* VENDOR_CC_WP: allow to enable write protection (WP)Vadim Bendebury2020-05-212-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gsctool utility allows to examine the device WP status, but does not allow to set it. It would be useful to provide the user with a means of enabling WP at any time. This patch extends the existing vendor command VENDOR_CC_WP implementation to allow an optional one byte parameter. If the parameter is present, the Cr50 will unconditionally invoke set_wp_state(1) when processing the command. BUG=b:153881773 TEST=with the corresponding gsctool.c changes coming up in the next patch verified that attempts to enable WP when running the unmodified Cr50 image fail with error message "Early Cr50 versions do not support setting WP", and that the updated Cr50 image allows to enable WP using 'gsctool -a -w enable' Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I75c200bbb9085e9f74c227ef80f782defdaaa29e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2149519 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 5b5a4485101120cfac3739caa7da4ba8fae884cc) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181721 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 524cd36fde81e9836f46c35f78b9d80762981f69) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210879
* Add a sw flag to indicate usb_i2c statusNamyoon Woo2020-05-211-7/+6
| | | | | | | | | | | | | | | | | | | | | | Cr50 used to read GPIO_EN_PP3300_INA_L value to detect if USB_I2C is enabled. However it requires an external pullup. Instead, this patch adds a sw flag to indicate USB_I2C status, so that it can keep USB_I2C status regardless external HW factors. BUG=b:152946978 TEST=ran flash_ec on waddledee, ampton, and dragonegg. Signed-off-by: Namyoon Woo <namyoon@chromium.org> Change-Id: Ie1a3a8c790e9643a3b49b6c519167ee3bdecc650 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2140535 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit 9c87cc0a1a83c65939704fb933e737269cf6455d) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181790 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 070e0b0a3adbc12307f06d2c8d04f13ef440c876) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210878
* speed up AP State polling when CCD is active.Vadim Bendebury2020-05-211-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | It turns out that the Cr50 not shutting off the AP UART quickly enough causes violation of the JSL power sequence requirements due to the leakage caused by the active UART lines. Let's speed up AP state polling when CCD is active. When CCD is not active the UART is shut of to start with. BUG=b:152446186 TEST=running the new image verified that that timing constraints are not violated any more. Also verified reliable UART=>USB bridging operation. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: Iffb7f8bc33c4516bb7cf5cbf58c5ced277cd1aec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2139732 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit dc33c3e091aadd13928109936242cf7f81db61f2) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2181789 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 237e64d691142b757d99640d931e375f19b77e1c) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210877
* fix to set the TPM VC response size as zero on error casesNamyoon Woo2020-05-211-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes cr50 to set the TPM VC response size as zero before it returns an error code upon VENDOR_CC_GET_BOOT_MODE or VENDOR_CC_RESET_EC. BUG=b:155214584 TEST=ran 'gsctool --getbootmode' on atlas where the board property does not contain BOARD_EC_CR50_COMM_SUPPORT. [cr50] > brdprop properties = 0x1041 [Before the fix] $ gsctool --getbootmode finding_device 18d1:5014 Found device. found interface 3 endpoint 4, chunk_len 64 READY ------- ../../util/usb_if.c:209, libusb_bulk_transfer returned -8 (Overflow) [After the fix] $ gsctool -g finding_device 18d1:5014 Found device. found interface 3 endpoint 4, chunk_len 64 READY ------- Error 8 in Getting boot mode Signed-off-by: Namyoon Woo <namyoon@google.com> Change-Id: Ic1d9b261415487f0a3a0690e6090cbb5387ddd64 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171167 Tested-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Namyoon Woo <namyoon@chromium.org> (cherry picked from commit a9df84cc9623c6e3592dbdcc4bd57aa34b741fab) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171519 Commit-Queue: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 0a8e83904300a8342d6d41247f2a0aa6fda48ec1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210876
* Revert "step back to 0.3.26 state"Mary Ruthven2020-05-2157-916/+2072
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f9e5a32fb99bb686f247a0e2d9d2f1ec2c0e576f. Reason for revert: continuing with 5.4 release BUG=none TEST='git diff 159d972' shows the change to the minor version and the idle command change. Original change's description: > step back to 0.3.26 state > > The MP branch got ahead of itself, we need to publish an intermediate > release before 5.4. Let's bring the branch back to 0.3.26 state so > changes necessary for the intermediate release can be made cleanly. > Once the release is cut, this patch will be reverted to bring the > branch back to the top. > > BRANCH=none > BUG=none > TEST='git diff 831c53f' returns no output. > > Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> > Change-Id: If47166b97d1f0faf1c315982827e2c2d5ce00c78 > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2190814 > Reviewed-by: Mary Ruthven <mruthven@chromium.org> Bug: none Change-Id: I1954bb645613bf8ac10ececab4ecb965dcf556c1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210843 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org>
* cr50: prepare to release 0.{5,6}.2 againMary Ruthven2020-05-082-4/+4
| | | | | | | | | | | | | | BUG=none TEST=none Change-Id: Ic84368d12832dc5bb08d7085090ad727130c3114 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2171517 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit b99061fb16eb568d7115c7575e8dbb298c4a158c) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2190816 Tested-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
* idle: reduce set of idle command actionsMary Ruthven2020-05-081-9/+7
| | | | | | | | | | | | | | | | | Remove 'deep sleep' and 'invalid' idle actions from the idle console command. BUG=b:156032428 TEST='idle s' and 'idle w' work when the console is open. Change-Id: I9da2fa0d679ef89ecb2eaaad82541bd3e9e16140 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2189616 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit cd38ef6dee78c0461cce24d32c30932519b8824b) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2190815 Tested-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
* step back to 0.3.26 stateVadim Bendebury2020-05-0858-2075/+919
| | | | | | | | | | | | | | | | | The MP branch got ahead of itself, we need to publish an intermediate release before 5.4. Let's bring the branch back to 0.3.26 state so changes necessary for the intermediate release can be made cleanly. Once the release is cut, this patch will be reverted to bring the branch back to the top. BRANCH=none BUG=none TEST='git diff 831c53f' returns no output. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: If47166b97d1f0faf1c315982827e2c2d5ce00c78 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2190814 Reviewed-by: Mary Ruthven <mruthven@chromium.org>
* cr50: prepare to release 0.{5,6}.1Mary Ruthven2020-04-242-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | BUG=none TEST=none Change-Id: Ib0a272579ea750ab439a1bbede4e3ac9cc1380e6 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2142450 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> (cherry picked from commit 8cc8235b9d6cdbed05f4f94b18fd959c7756754f) Change-Id: Ib6ef6711a3e5f8970c419cd44cef66b1c0fe5117 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2141792 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 55ca993b1c8dfa7b438f9b9f273c5dfe7a915966) Change-Id: I67c2b0d608724c7c18bc803c2f94c6da15c157c0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2166339 Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org>
* prevent reading ECRW hash from TPM nvmem on non-EFS2 boardsNamyoon Woo2020-04-241-0/+3
| | | | | | | | | | | | | | | | | | | | | This patch make sure that cr50 attempts to read ECRW hash from TPM nvmem only if the board supports EC-EFS2. Though this attempt is not critical, it prints an read error message in console, which could mislead the reader. BUG=none TEST=none Signed-off-by: Namyoon Woo <namyoon@chromium.org> Change-Id: I95e8407b19259fd62e0d1858efdd2696042dcd95 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2138601 Reviewed-by: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 1628ef85c9403ff694b52170ca20dc3cade6e4ef) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2140263 Tested-by: Mary Ruthven <mruthven@chromium.org> Commit-Queue: Mary Ruthven <mruthven@chromium.org> (cherry picked from commit 76f7b22131725426a79323bebbefa77194581bc0) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2166338