summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cr50: decrease sleep delay to 20 seconds after init and resumestabilize-fsi-9202.5.0.Bstabilize-fsi-9202.10.Bstabilize-M57-9202.35.0.Bstabilize-9202.Bstabilize-9202.64.Bstabilize-9202.56.Bstabilize-9202.28.Bstabilize-9202.18.Brelease-R57-9202.BMary Ruthven2017-01-202-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3 minutes is too long to delay sleep after init and resume from wake pin. This change decreases the delay to 20 seconds BUG=none BRANCH=none TEST=manual Use the cr50 power consumption to verify the sleep state active 50mW sleep 7mW deep sleep 1mW make sure suzyq is disconnected use uart to reboot cr50 run 'reboot ap-off' on the EC console make sure cr50 enters deep sleep at second 20 use uart to wakeup cr50 make sure it stays awake for 20 seconds and then enters deep sleep. wake it up again using uart and run 'idle s' verify it enters regular sleep after 20 seconds use uart to wake it up, make sure it does a regular sleep resume and then goes back into regular sleep after 20 seconds Change-Id: I65791bd3d915ceda11dc29b74e150ba589f2fa9e Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/430388 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* poppy: consider all EC boots to be due to pin resetNicolas Boichat2017-01-201-1/+1
| | | | | | | | | | | | | | | | | | Similarly to eve, we have a problem where the EC is not able to distinguish between power up and reset, as VCC1_RST is simply tied to PP3300_DSW. BRANCH=none BUG=chrome-os-partner:61028 BUG=chrome-os-partner:61930 TEST=Press Power+Volume Up+Volume Down, poppy enters recovery Change-Id: Id0d89b56058e288c14e10eee7656965eee75047a Reviewed-on: https://chromium-review.googlesource.com/428532 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* poppy: Add support for recovery modeNicolas Boichat2017-01-202-4/+11
| | | | | | | | | | | | | | poppy enters recovery mode by pressing volume up+down keys BRANCH=none BUG=chrome-os-partner:61930 TEST=Press Power+Volume Up+Volume Down, poppy enters recovery Change-Id: I052277a3107b2133bdec46b1219cfc6ff6c54680 Reviewed-on: https://chromium-review.googlesource.com/428531 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* button: Check volume up/down status and set recovery modeNicolas Boichat2017-01-205-8/+32
| | | | | | | | | | | | | | Add support for entering recovery mode using volume up/down keys. BRANCH=none BUG=chrome-os-partner:61930 TEST=Press Power+Volume Up+Volume Down, poppy enters recovery Change-Id: Id40a144e9b430cfb9dfd47048e9e96d598bc3db8 Reviewed-on: https://chromium-review.googlesource.com/428530 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Pyro: Release control of trackpad entirelyAnson Tseng2017-01-192-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backdrop: Touchpad power source disabling should be constrained in tablet mode and S0->S3 transition only, in case that disable it in the S0 state of tablet mode, it would cause disaster while touchpad driver of AP tries to perform suspend procedure. Solution: follow CL:421275 This change takes away control of trackpad from EC entirely. This will prevent EC from interfering with the OS's interaction with the trackpad for firmware update, device detection at boot, or entering S3. Disadvantages are the trackpad will stay on (thus can wake up the system unintentionally) when the system enters S3 in laptop mode then transitions to tablet mode, or vice versa: the trackpad will stay off (thus cannot wake up the system) when the system enters S3 in tablet mode then transitions to laptop mode. However, these corner cases can be handled by waking up the system upon mode transition. The OS can then disable or enable the trackpad depending on the transition direction (laptop <-> tablet) and re-enters S3. Or the OS can leave the system running because mode transition implies a user's intention to start interacting with the device. The keyboard will continue to be managed by EC and disabled or enabled upon mode transition. BUG=chrome-os-partner:62138 BRANCH=reef TEST=suspend device in tablet mode then wake it up, examine touchpad function; hint: root shell to execute command 'ectool gpioget EN_P3300_TRACKPAD_ODL' to examine trackpad power integrity. Change-Id: I533cdc4a182ab878917495a7b9391f68e7e92e3e Signed-off-by: Anson Tseng <anson.tseng@intel.com> Reviewed-on: https://chromium-review.googlesource.com/430392 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* snappy: remove KB/TP control in S3Bruce2017-01-191-11/+0
| | | | | | | | | | | | | | | | | | Remove all TP control because TP lose function. Remove KB control because this action of disable KB in S3 work after modify 'SENSOR_ACTIVE_S0' to 'SENSOR_ACTIVE_S0_S3'. BUG=chrome-os-partner:61618 BRANCH=reef TEST=check TP don't lose function after resume, then KB disable in tablet mode and enable normal mode whether S0 or S3. Change-Id: I9fd11ecb453a193dc692b5f6160a2f2ef23b8afc Signed-off-by: Bruce.Wan <Bruce.Wan@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/430592 Commit-Ready: Bruce Wan <Bruce.Wan@quantatw.com> Tested-by: Bruce Wan <Bruce.Wan@quantatw.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* npcx: gpio: Add GPIO_INT support for KSI pinsMulin Chao2017-01-191-0/+19
| | | | | | | | | | | | | | | On tablet platform, ec isn't in charge of keyboard and KSI pins are free to use. This CL adds MIWU group and GPIO's ISR for KSI pins if there is no keyboard scan task. BRANCH=none BUG=none TEST=test all KSI pins for GPIO_INT on npcx_evb. Change-Id: I76c8e48c067b6cb84e483eb94b104eb1998987be Signed-off-by: Mulin Chao <mlchao@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/430554 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: Fix USB_C[0|1]_CHARGE_L default GPIO settingNicolas Boichat2017-01-191-4/+4
| | | | | | | | | | | | | | | | | Leave the GPIO as low, without pull-up, so that system can boot without battery. Also remove uneeded pull-up on USBC[0|1]_5V_EN. BRANCH=none BUG=chrome-os-partner:61998 TEST=Boot poppy without battery Change-Id: Ib7a334d5e4ecf1ea434354b3b161111cf005418c Reviewed-on: https://chromium-review.googlesource.com/430530 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* reef: Remove battery revive codeVijay Hiremath2017-01-192-49/+0
| | | | | | | | | | | | | | | | | Reef has custom battery present defined which can give the correct battery status depending on the battery initialization status hence removed the battery revive code. BUG=chrome-os-partner:61274 BRANCH=reef TEST=Battery can boot from cut-off mode. Change-Id: I9744b137c6443e85d1897ef61f5429fad15cc81b Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/430237 Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com> Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Shawn N <shawnn@chromium.org>
* cr50: describe GPIO assignmentVadim Bendebury2017-01-191-0/+37
| | | | | | | | | | | | | | Just a clean up patch attempting to make it easier to new users to come up to speed with cr50 use of H1 GPIO subsystem. BRANCH=none BUG=none TEST=none Change-Id: I539e7629ee94ddef26ae1616dc6eb5c151e9d97e Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/412412 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* charge_manager: Update power supplier prioritystabilize-9199.BVijay Hiremath2017-01-181-5/+5
| | | | | | | | | | | | | | | | | | | From the USBC spec 1.2 "Table 4-14 Precedence of power source usage" USB Type-C 3.0 A & 1.5 A takes precedence over BC1.2 hence updated the power supplier priority of charger manager. BUG=chrome-os-partner:61420 BRANCH=none TEST=Manually tested on reef. Donette bottom port can switch from 1.5A to 3A upon high load. Change-Id: Iff936d6a8643e88e0b2738251254e896fe8562fe Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/430153 Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com> Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org>
* npcx: i2c: handle BER & SDAST in SMBST occur at the same time.Mulin Chao2017-01-181-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | In rare case, if a bus error indicates a conflict on the data line (SDA) is detected during transmission of the byte. (i.e., SDA is toggling during holding data period.) and SDAST are set at the same time, the i2c driver is not good enough to handle it. Ec will get stuck in i2c ISR forever since SDAST util watchdog reset occurs. This CL includes: 1. Do a dummy read to make sure i2c slave doesn't hold i2c bus. It makes sure i2c master can generate STOP successfully. 2. Disable smb's interrupts in "A Bus Error has been identified". Once bus error occurred, it's better to forbid ec to enter ISR again. Let i2c_recovery() disable the module and reset hardware state machine to the default. BRANCH=none BUG=chrome-os-partner:59294 TEST=test i2c console commands on wheatley for hours. Change-Id: Iecadcd866e115e31b18dfd68359a018867cac40e Signed-off-by: Mulin Chao <mlchao@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/428482 Reviewed-by: Shawn N <shawnn@chromium.org>
* nds32: Add fabsf and sqrtf functionDino Li2017-01-183-1/+131
| | | | | | | | | | | | | | | | | | | | | | | | The magnetometer online calibration requires these two functions and taken from newlib. Signed-off-by: Dino Li <dino.li@ite.com.tw> BRANCH=none BUG=none TEST=fabsf(): fabsf(1.23) = 1.23 fabsf(-1.23) = 1.23 sqrtf(): sqrtf(4.56) = 2.135 sqrtf(0.123) = 0.350 sqrtf(-0.123) = an exception is triggered. Change-Id: I808ca7f1bd03c6d6c1b32861ede4ecbfeeaa3da6 Reviewed-on: https://chromium-review.googlesource.com/429730 Commit-Ready: Dino Li <Dino.Li@ite.com.tw> Tested-by: Dino Li <Dino.Li@ite.com.tw> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* g: remove superfluous DCRYPTO_SHA256_init in HMAC implementationnagendra modadugu2017-01-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | DCRYPTO_HMAC_SHA256_init makes two calls to DCRYPTO_SHA256_init() without an intervening HASH_final() call. This is incorrect usage of the the hashing API, and results in the hardware SHA engine getting locked for the life-time of the process (and resulting in all future hash calls falling back to the software implementation). This bug manifested itself when introducing NVRAM encryption, which requires the hardware SHA engine to be available for key generation. BRANCH=none BUG=chrome-os-partner:55331 TEST=TCG tests pass Change-Id: Ia4ccb6a6d64636c4618ef775291442975f3f1f92 Signed-off-by: nagendra modadugu <ngm@google.com> Reviewed-on: https://chromium-review.googlesource.com/430154 Commit-Ready: Nagendra Modadugu <ngm@google.com> Tested-by: Nagendra Modadugu <ngm@google.com> Reviewed-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* eve: Updates from P1 buildDuncan Laurie2017-01-184-10/+69
| | | | | | | | | | | | | | | | | | | | | | | | - revert the change for issue 61431 as main build systems have updated resistor values - enable CONFIG_CHARGER_BD9995X_CHGEN, with the necessary changes in battery.c to support the custom battery present functions - enable CONFIG_CHARGER_MAINTAIN_VBAT - enable CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT for testing - set pre-charge current to 256mA to better wake up batteries - set voltage-min to 6.1V to account for charger inaccuracies since the battery expects >= 6V to wake up - enable CONFIG_BACKLIGHT_LID to enforce backlight off with lid closed - put all CONFIG_CMD enables in the same place - make PCH_ACOK open drain (pull-up to be enabled on PCH) BUG=chrome-os-partner:61431,chrome-os-partner:61676 BRANCH=none TEST=manual testing on P1 boards at the factory Change-Id: Ib20693c8200d253819873d03b54f91e12bda8270 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://chromium-review.googlesource.com/428902 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* g: add means of building node locked imagesVadim Bendebury2017-01-181-4/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When debug enabled cr50 image is signed, the default manifest passed to the signer is util/signer/ec_RW-manifest-dev.json. Images signed with this manifest will not run on devices where the RO part is fused for production. It is possible to build node locked images for such devices, but the manifest must include the lines "DEV_ID0": <value>. "DEV_ID1": <value>, with the values matching the chip the image is built for. This patch allows to pass the values in the make command line or the environment, defined as follows: H1_DEVIDS='<num 1> <num 2>' When this value is defined, the default manifest is edited to add the required lines. One side effect of this patch is that the temp file where the edited manifest is placed to is not deleted. BRANCH=none BUG=none TEST=verified that images still can be built for both dev RW and prod RO (node locked) with both debug features enabled and disabled (CR50_DEV set and not set) Change-Id: I0e81fc9aa65aa4d239e60de6047e2470f6eeaf50 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/428337 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Revert "charge_ramp: Adjust minimum ramp current"Vijay Hiremath2017-01-184-41/+2
| | | | | | | | | | | | | | | | | | | | From the USBC spec 1.2 "Table 4-14 Precedence of power source usage" USB Type-C 3.0 A & 1.5 A takes precedence over BC1.2. Hence reverting this patch. This reverts commit 6a7e4a7b353c53d33d44662c71763490ffd1fdc4. BUG=chrome-os-partner:61420 BRANCH=none TEST=make buildall -j Change-Id: I2ed3f767973ff9c47fa7d2a2cca1aca15d13aa65 Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/430152 Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com> Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org>
* eve: Add BMI160 as a temperature sensor.Alexandru M Stan2017-01-182-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable reading temperature from BMI160. BUG=chrome-os-partner:58894 BRANCH=master TEST=EC Console: > temps Battery : Error 1 Ambient : 304 K = 31 C Charger : 303 K = 30 C DRAM : 305 K = 32 C eMMC : 307 K = 34 C Gyro : 308 K = 35 C Unknown error TEST=AP Console: localhost ~ # ectool tempsinfo 5 Sensor name: Gyro Sensor type: 1 localhost ~ # ectool temps 5 Reading temperature...308 Change-Id: I2e943ec664745fec5923df67515b96ba569e05ad Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Signed-off-by: Alexandru M Stan <amstan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/430210 Commit-Ready: Alexandru Stan <amstan@chromium.org> Tested-by: Alexandru Stan <amstan@chromium.org>
* g: move compute_frk2 function into dcryptoVadim Bendebury2017-01-184-89/+121
| | | | | | | | | | | | | | | This function belongs in dcrypto as it relies heavily on the crypto hardware; also, it will be handy to be able to use this function in other cases. BRANCH=none BUG=chrome-os-partner:55331 TEST=buildall still builds. TPM manufacturing still works too. Change-Id: If2e70eaa71a76e8374b98f4667cb54ea6253b760 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/428169 Reviewed-by: Marius Schilder <mschilder@chromium.org>
* common: prepare nvmem for encryption supportVadim Bendebury2017-01-181-88/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch mostly is rearranging the code to make it easier to add encryption layer in the upcoming change. One substantial change is making sure that in case when NVMEM contents are corrupted for whatever reason, the initialization function re-creates a blank NVMEM space; it was just bailing out before not leaving any initialized partitions behind. There is no need in two separate tables - one for base absolute addresses of the NVMEM partitions, and one for their flash memory offsets, one can be easily derived from the other. Code erasing the destination partition, calculating the SHA1 of the new blob and writing it into the flash was separated into own function. BRANCH=none BUG=chrome-os-partner:55331 TEST=make buildall -j still passes (which means NVMEM tests succeed). TPM TCG test suite also passes. Change-Id: I378265d8b49b81398aece2eadf9698abb05caaa1 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/428172 Reviewed-by: Scott Collyer <scollyer@chromium.org>
* cr50: use the correct reset signal for gru and reefMary Ruthven2017-01-184-42/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Boards that have plt_rst_l had sys_rst_l currently use the two signals to detect resets and reset the TPM. That meant that the TPM could reset twice depending on the timing of those signals. On boards with plt_rst_l, we should really just use that to detect system resets and not sys_rst_l. On boards with plt_rst_l, sys_rst_l should only be used as an output to trigger warm resets. This change makes both boards use the gpio tpm_rst_l_in to detect AP resets. That gpio will be connected to a different pin depending on which board we are using. On Gru the gpio will be connected to diom0 which is sys_rst_l, and reef will use diom3 which is plt_rst_l. BUG=chrome-os-partner:61789 BRANCH=none TEST=manual Use cr50 servo to verify the contents of /var/cache survive reset after 'dut-control warm_reset:on sleep:0.5000 warm_reset:off' test on gru and reef verify that the system can boot to kernel run 'sysrst pulse' and check that you only see one system reset use 'pinmux' to verify the pins for the two types of boards are setup properly on reef diom0 is an input, diom3 is an input with wake_falling, and gpio1_gpio1 uses diom3 on gru check that diom0 is an input with wake_falling, diom3 is not configured, and gpio1_gpio1 uses diom0 Change-Id: I1f6e8bfa525ffa5585a18282b78014f36f0cfee6 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/428130 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* snappy: release control of trackpad entirelyHarry Pan2017-01-182-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backdrop: Touchpad power source disabling should be constrained in tablet mode and S0->S3 transition only, in case that disable it in the S0 state of tablet mode, it would cause disaster while touchpad driver of AP tries to perform suspend procedure. Solution: follow CL:421275 This change takes away control of trackpad from EC entirely. This will prevent EC from interfering with the OS's interaction with the trackpad for firmware update, device detection at boot, or entering S3. Disadvantages are the trackpad will stay on (thus can wake up the system unintentionally) when the system enters S3 in laptop mode then transitions to tablet mode, or vice versa: the trackpad will stay off (thus cannot wake up the system) when the system enters S3 in tablet mode then transitions to laptop mode. However, these corner cases can be handled by waking up the system upon mode transition. The OS can then disable or enable the trackpad depending on the transition direction (laptop <-> tablet) and re-enters S3. Or the OS can leave the system running because mode transition implies a user's intention to start interacting with the device. The keyboard will continue to be managed by EC and disabled or enabled upon mode transition. BUG=chrome-os-partner:61058, chrome-os-partner:61618, chrome-os-partner:61636, chrome-os-partner:61506 BRANCH=reef TEST=suspend device in tablet mode then wake it up, examine touchpad function; hint: root shell to execute command 'ectool gpioget EN_P3300_TRACKPAD_ODL' to examine trackpad power integrity. Change-Id: I0c0b9deffe83aef012f685618b3cbc5dd5303c3a Signed-off-by: Harry Pan <harry.pan@intel.com> Reviewed-on: https://chromium-review.googlesource.com/428791 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org>
* poppy: updating variable name to power_button_pulse_enableShelley Chen2017-01-181-3/+4
| | | | | | | | | | | | | | | | | Updating variable name from smi_enabled to power_button_pulse_enabled, which is a more accurate description of the intended functionality. BUG=chrome-os-partner:61275 BRANCH=None TEST=reboot reef and try using power button for selection during the detachable menus and ensure that the DUT doesn't turn off. Change-Id: Ia04e032818c73439d2aeacdb8fcabbe3bce7c151 Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/429070 Reviewed-by: Duncan Laurie <dlaurie@google.com>
* cr50: extend sysrst pulse to 20msMary Ruthven2017-01-181-3/+10
| | | | | | | | | | | | | | | | Increase the sysrst pulse to be long enough to reset the AP. This change increases it to 20ms by default, but adds a parameter to set the interval in the sysrst pulse command. BUG=none BRANCH=none TEST='sysrst pulse' will cause the AP to reset and 'sysrst pulse 1000' shows that sys_rst_l is asserted and 1 second later it is deasserted. Change-Id: I66b0d627480852dc166f62dc0fddd02f094b6162 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/429150 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* Electro: Add Panasonic battery configRyan Zhang2017-01-181-0/+84
| | | | | | | | | | | | | | | | | | + normal config + shipping mode command + DischargeFET reference + fast charge config BUG=chrome-os-partner:61559 BRANCH=firmware-reef-9042.B TEST=cutoff battery and AC in, system will not die Change-Id: I4d93978db48c1d62fe1e09de2bf757c8b034b3d9 Signed-off-by: Ryan Zhang <Ryan.Zhang@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/425616 Commit-Ready: Ryan Zhang <ryan.zhang.quanta@gmail.com> Tested-by: Ryan Zhang <ryan.zhang.quanta@gmail.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* pd: Reduce VDO_CMD_GET_LOG timeout to 75msShawn Nematbakhsh2017-01-171-1/+1
| | | | | | | | | | | | | | | | | | | VDO_CMD_GET_LOG is sent for each port from a host command handler, so we must ensure that it returns quickly to prevent host timeout. BUG=chrome-os-partner:61910 BRANCH=gru TEST=Manual on kevin, attach hoho and verify 'cros-ec-spi' timeout errors are not seen every 60s. Also verify that zinger pdlogs are correctly retrieved. Change-Id: Ie0466a8b614ec6bfe5874cde9d700e80a15d298e Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/428164 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org>
* Basking: Add Basking battery parameters for charger profile override.David.Huang2017-01-171-2/+92
| | | | | | | | | | | | BRANCH=reef BUG=chrome-os-partner:60899 TEST=Observed correct charging profile is selected with Basking two battery. Change-Id: I2b030bf2c52e4717bec269d79dbab4c0f0126852 Signed-off-by: David Huang <David.Huang@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/428612 Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* Makefile: Suppress 'Not a git repository' errorsSimon Glass2017-01-141-1/+3
| | | | | | | | | | | | | | | | | | We get a lot of these errors when running the EC Makefile from an ebuild. They are not useful since of course there is no git repo when the source code is built from a copy. An empty date (as produced in this case) is presumably good enough. Suppress these errors by redirecting stderr. BUG=chromium:680243 BRANCH=none TEST=V=0 emerge-reef chromeos-ec; See that the git output is gone Change-Id: Ia3d1e2046c87e0ca88d0c18e432467f9d23b7e9f Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/428156 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* cr50: reinstate nvmem commits 3 s after tpm resetVadim Bendebury2017-01-141-13/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Relying on the AP sending a PCR read as an indication of the completed boot process does not work on the resume path. Let's just enable commits 3 s after they were stopped to process tpm reset. BRANCH=none BUG=chrome-os-partner:61795 TEST=observed the following on the cr50 console on a reef during reboot: [0.018692 tpm_init] tpm_manufactured: manufactured [0.021180 tpm_reset_now: done] . . [1.166496 Skipping commit] [1.425888 Skipping commit] [1.439112 Skipping commit] . . [3.021892 Committing NVMEM changes.] and verified that reef booted normally. Change-Id: I5f64fe24b961a9d0366f8e4f40a0e44d4e7263fa Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/427328 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* poppy: Set PP3300_DX_CAM high and CAM_PMIC_RST_L as inputNicolas Boichat2017-01-141-2/+2
| | | | | | | | | | | | | | | | | These pins should be moved to AP in a later HW revision, keep them always active for now. Also, leave CAM_PMIC_RST_L as input as there is an internal pull-up in the PMIC, and driving it high breaks WLAN+LTE. BRANCH=none BUG=chrome-os-partner:61098 TEST=ectool gpioget: Both signals are high Change-Id: I66115daec57ca4d89c1c664e6b35825b20fa0c1a Reviewed-on: https://chromium-review.googlesource.com/427743 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org>
* poppy: host command for configuring power buttonShelley Chen2017-01-132-4/+43
| | | | | | | | | | | | | | | | | Specifically, we are using a bit to disable the SMI pulse on x86 systems so that we can use the power button for menu selection. BUG=chrome-os-partner:61275 BRANCH=None TEST=Try running with depthcharge sending the host command during detachable FW menus and making sure power button select doesn't turn off device on reef. Change-Id: I4a68cf514d514a4abe98beb99e7934d6fb0f44bd Signed-off-by: Shelley Chen <shchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/427413 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* g: debounce rdd disconnectMary Ruthven2017-01-131-10/+18
| | | | | | | | | | | | | | | | When the EC does a sysjump it redoes the PD negotiation. This changes the voltage levels on the CC lines. Debounce the rdd disconnect signal for 2 seconds so cr50 will ignore the negotiation and keep CCD enabled. BUG=chrome-os-partner:60924 BRANCH=none TEST=connect suzyq. Make sure usb does not drop out during a EC sysjump or reboot. Change-Id: I95b9bc81f736e3b7a65103817c140874b1ed34ec Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/426398 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* Electro: limit max input current for safetyRyan Zhang2017-01-131-0/+1
| | | | | | | | | | | | | | | | | | | + Max = Max * 95% BUG=chrome-os-partner:61852 BRANCH=reef TEST=Run fish tank + youtube + USB 0.9A * 2 + TypeC 3A * 1 + empty battery, input current from 3.033A become 2.92A Change-Id: I34563a011915c29972835f7d878cad29045d42f0 Signed-off-by: Ryan Zhang <Ryan.Zhang@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/427485 Commit-Ready: Benson Leung <bleung@chromium.org> Tested-by: Benson Leung <bleung@chromium.org> Reviewed-by: Benson Leung <bleung@google.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* charge_ramp: Adjust minimum ramp currentVijay Hiremath2017-01-134-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | A valid charge port is always detected as VBUS supplier type, 'USB charger' can detect the same port as BC1.2 DCP supplier type & also 'TCPC' can detect the same port as TYPEC supplier type. Thus a valid port is detected as 2 or 3 supplier types. Depending on the supplier's priority and the power that the supplier can provide, charge manager choses the charge supplier type of the port. If the USB charger detected supplier is BC1.2 DCP and the TCPC detected supplier is TYPEC then the supplier can provide stable current from TYPEC supplier's advertised current hence start ramping from TYPEC supplier's advertised current. BUG=chrome-os-partner:61420 BRANCH=none TEST=Manually tested on reef. Donette bottom port can switch from 1.5A to 3A upon high load. Change-Id: I871eca3ae4041f00bb3fd50e6aa939643f30a1f2 Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/427961 Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com> Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Shawn N <shawnn@chromium.org>
* Makefile: Suppress unwanted tpm outputSimon Glass2017-01-131-6/+14
| | | | | | | | | | | | | | Use the 'echo' command to suppress unwanted build output when V=0. Signed-off-by: Simon Glass <sjg@chromium.org> BUG=chromium:680243 BRANCH=none TEST=V=0 emerge-reef chromeos-ec; See that the tpm output is gone Change-Id: Ia742b0b5270b969ec4f51967810e616348e39dbd Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/427365 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Makefile: Suppress unwanted 'echo' outputSimon Glass2017-01-131-2/+4
| | | | | | | | | | | | | | | | Add a 'echo' command which can be called to generate output. If V=0 then it is suppressed. This drops the unwanted output when V=0. Signed-off-by: Simon Glass <sjg@chromium.org> BUG=chromium:680243 BRANCH=none TEST=V=0 emerge-reef chromeos-ec; See that the BUILD lines are gone Change-Id: Ie4474024c84345d427f4d95a9ff194dc740f860f Reviewed-on: https://chromium-review.googlesource.com/427364 Commit-Ready: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Makefile: Support three levels of verbositySimon Glass2017-01-131-4/+18
| | | | | | | | | | | | | | | | | | | | | | At present the EC Makefile supports two levels of verbosity: V unset: Show an abbreviated build log (operation and file only) V=1: Show the full build log, including all commands However, even the abbreviated build log includes a lot of output. It is basically a long list of filenames and is of little use during development. It is more useful to show just warnings and errors. Add a new setting, V=0, which provides this. BUG=chromium:680243 BRANCH=none TEST=emerge-reef chromeos-ec; test each of V=, V=0, V=1 and see that the Makefile does the correct thing. Change-Id: I85c0423c5299fa3ab624ed9f7f7b6b7f73236611 Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/427363 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Makefile: Drop the extra whitespace in the 'export' lineSimon Glass2017-01-131-1/+1
| | | | | | | | | | | | | | | Fix this little nit. BUG=chromium:680243 BRANCH=none TEST=emerge-reef chromeos-ec Signed-off-by: Simon Glass <sjg@chromium.org> Change-Id: I932553a8b7f8e5519abc813c09caae8d8d3d2790 Reviewed-on: https://chromium-review.googlesource.com/427362 Commit-Ready: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* poppy: WWAN: Drive PP3300_DX_LTE high to enable LTEJenny TC2017-01-131-1/+1
| | | | | | | | | | | | | | BRANCH=none BUG=chrome-os-partner:61098 TEST=Boot and verify lsusb to see wwan devices Change-Id: I69ed791400d81c16a605d71cd25c58e0229a066c Signed-off-by: Jenny TC <jenny.tc@intel.com> Reviewed-on: https://chromium-review.googlesource.com/427353 Commit-Ready: Jenny Tc <jenny.tc@intel.com> Tested-by: Jenny Tc <jenny.tc@intel.com> Reviewed-by: Jenny Tc <jenny.tc@intel.com> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* Basking: Fix cannot power on when resume from battery cutoff.David.Huang2017-01-132-5/+27
| | | | | | | | | | | | | BRANCH=reef BUG=chrome-os-partner:61849 TEST=1. DC mode, enter battery cutoff. 2. After system shutdown, wait 10sec. 3. Plug in AC to check system power on. Change-Id: I5f4cf023fa70cff42c2d1cc888b1d2ee39226af4 Signed-off-by: David Huang <David.Huang@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/427441 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* cr50: help battery disconnect to work on detachable devicesVadim Bendebury2017-01-123-2/+140
| | | | | | | | | | | | | | | | | | | | | | | Detachable devices need firmware help to process battery disconnect requests promptly. The request happens when the user keeps pressed both power and "volume up" buttons and yanks the charger cable. Once this condition is detected a 5 s timeout is started, and if the charger cable is not plugged back in during this interval, the code initiates a low polarity pulse on both EC_RST_L and BAT_EN outputs. Lowering BAT_EN level will cause the battery cut off which is supposed to cause an immediate system power down. BRANCH=none BUG=chrome-os-partner:59833 TEST=verified desired behavior on an H1 dev board with a H1B2-D chip. Change-Id: Iecdcc93e228f4bc18734569bd896b0afa4bb752a Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/426345 Reviewed-by: Marius Schilder <mschilder@chromium.org>
* g: tell between C and D and P SKUs of the H1B2 chipVadim Bendebury2017-01-121-2/+49
| | | | | | | | | | | | | | | | | | | | | | | | There are three different H1 B2 chips SKUs in the wild now, one version is for clamshell Chromebooks, one is for experimental build of Poppy and one for detachable devices. The SKUs differ by some fuse settings, as outlined by the comment in the code. This patch maps fuse settings into the chip revision string and also makes sure that the revision is determined once and then used for all following invocations of system_get_chip_revision(). BRANCH=none BUG=chrome-os-partner:59833 TEST=verified that on dev boards with three different H1 B2 SKUs the revision is reported as expected (B2-C, B2-D and B2-P). Change-Id: I7d588d7326c28e9fa4921351254ad60a21c3f6b8 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/426344 Reviewed-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Carl Hamilton <carlh@chromium.org>
* pyro: fix discharge even plug in adapter issueBruce2017-01-122-142/+1
| | | | | | | | | | | | | | | | | | Add CONFIG_CHARGER_PROFILE_OVERRIDE, and it can check battery state to set charge or discharge between battery capacity 95-100%. BUG=chrome-os-partner:61767,chrome-os-partner:57571 BRANCH=reef TEST=check unit can charge to 100%, then discharge to 95%, then swich to charge until 100%. Loop charge and discharge between 95-100%. Change-Id: I4f68e5a2d51e26f62ed7f6bd6ae7af061225f8cb Signed-off-by: Bruce.Wan <Bruce.Wan@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/426444 Commit-Ready: Keith Tzeng <keith.tzeng@quantatw.com> Tested-by: Keith Tzeng <keith.tzeng@quantatw.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* pyro: Enable CONFIG_POWER_BUTTON_IGNORE_LIDDevin Lu2017-01-121-0/+8
| | | | | | | | | | | | | | | | | | | | Workaround to Pyro DVT system can not power on when system at G3 state. Hardware has leakage with LID_OPEN pin to touch control board if system turns off PP3300 power rail, so enable CONFIG_POWER_BUTTON_IGNORE_LID on temporarily. BRANCH=reef BUG=chrome-os-partner:61707,chrome-os-partner:61696 TEST=Manual. Verify power button can power on system on pyro DVT touch sku. Change-Id: I23608ae508ca419cecc3642d36eeee089a870778 Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/426309 Commit-Ready: Keith Tzeng <keith.tzeng@quantatw.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* ISH: Added UART Rx/Tx interrupt modeKyoung Kim2017-01-112-6/+54
| | | | | | | | | | | | | | | | | Added UART Tx/Rx interrupt mode related code. BUG=None BRANCH=None TEST=On ISH enabled Reef board, check if Tx message is working and tested Rx input from console with console command. Change-Id: I5067304dc74abc29bbbea983b22db3e193e36e6b Signed-off-by: Kyoung Kim <kyoung.il.kim@intel.com> Reviewed-on: https://chromium-review.googlesource.com/424322 Commit-Ready: Kyoung Il Kim <kyoung.il.kim@intel.com> Tested-by: Kyoung Il Kim <kyoung.il.kim@intel.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Kyoung Il Kim <kyoung.il.kim@intel.com>
* ec: Minor cleanup of private host command macros.Carl Hamilton2017-01-112-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | * Rename PRIVATE_HOST_COMMAND_VALUE to EC_PRIVATE_HOST_COMMAND_VALUE to make it clear it is part of EC and reduce the likelihood of collisions. * Move PRIVATE_HOST_COMMAND_VALUE macro to ec_commands.h. This reduces the transitive dependencies required to determine the value of a private host command. This is beneficial for code outside of the ChromiumOS build environment that needs to send private commands to an EC. * Define DECLARE_PRIVATE_HOST_COMMAND when there is no host command task. This will prevent builds with private commands from failing when the host command task is not configured. BUG=chromium:570895 BRANCH=none TEST=make -j buildall Change-Id: Iad938cb6a1521b65e4f893439d592ef375caace9 Reviewed-on: https://chromium-review.googlesource.com/426737 Commit-Ready: Carl Hamilton <carlh@chromium.org> Tested-by: Carl Hamilton <carlh@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
* poppy: Add ARC++ sensor support.Gwendal Grignou2017-01-113-11/+12
| | | | | | | | | | | | | Very similar to CL:424846, enable sensor FIFO, accel interrupt. BUG=chrome-os-partner:61098 TEST=Not test on actual hardware. BRANCH=none Change-Id: Ie5c7304fcc00919cce62ed47a548104e8d0ac454 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/426880 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* eve: Be sure MOTION_SENSE is present for testGwendal Grignou2017-01-111-1/+1
| | | | | | | | | | | | | | | | Fix cros_workon_make --board eve chromeos-ec --install The test phase would fail at compilation because TASK_ID_MOTIONSENSE is not defined. BUG=chromium:61748 TEST=Check that with the change cros_workon_make pass. BRANCH=none Change-Id: Ib50aad492e9cfb38c56a3c6c8d4f2bb2b297ea85 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/426879 Tested-by: Todd Broch <tbroch@chromium.org> Reviewed-by: Todd Broch <tbroch@chromium.org>
* CR50: make public key part generation optional.Marius Schilder2017-01-112-4/+9
| | | | | | | | | | | | | | | | Callers may not need computation of the public key. Making this optional speeds this routine up. Cr50 never passes in NULL for any argument, so is not affected. BUG=none TEST=build BRANCH=none Change-Id: Ia0077a35064f53b53f51867254aaa51eac6c55d8 Reviewed-on: https://chromium-review.googlesource.com/427058 Reviewed-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Tested-by: Marius Schilder <mschilder@chromium.org>
* Electro: Add battery hint messageRyan Zhang2017-01-111-1/+6
| | | | | | | | | | | | | | | Showing which battery is useful when debug. BUG=None BRANCH=master TEST=power on EC can see prompt Change-Id: Ic83d667ae377dc787a776116e41b09f21ee5a3be Signed-off-by: Ryan Zhang <Ryan.Zhang@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/425212 Commit-Ready: Ryan Zhang <ryan.zhang.quanta@gmail.com> Tested-by: Ryan Zhang <ryan.zhang.quanta@gmail.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>