summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* octopus: Increase watchdog timeout period to 2100msfirmware-octopus-11297.BRob Barnes2023-05-171-0/+8
| | | | | | | | | | | | | | | | | | Increase the watchdog period on NPCX based octopus boards to 2100ms. The assumption is that the watchdog may be triggering on false positive hangs. Increasing the watchdog has negligible impact on real hangs. BUG=b:255368431 BRANCH=octopus TEST=Build Change-Id: Ibcdaf6ff8c1e28dabd914ff0401988d52bdc2372 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4482242 Reviewed-by: Keith Short <keithshort@chromium.org> (cherry picked from commit e4c1e440a127c9410884a001ee827cfc3ef5f5ce) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4545443 Commit-Queue: Keith Short <keithshort@chromium.org>
* octopus: Undef CONFIG_CMD_MMAPINFORob Barnes2023-05-161-0/+1
| | | | | | | | | | | | | | | | | | Undef CONFIG_CMD_MMAPINFO on octopus boards that are running out of flash. BUG=b:268342532 TEST=Build Change-Id: I60765716ac19c6b087322d443d02b659e31a7472 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4507753 Commit-Queue: Rob Barnes <robbarnes@google.com> Tested-by: Rob Barnes <robbarnes@google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> (cherry picked from commit c784a41e970da8b773a0f3e2dba20cdc0ad85340) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4533360 Auto-Submit: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com>
* octopus: Undef CONFIG_CMD_MDRob Barnes2023-05-161-0/+1
| | | | | | | | | | | | | | | | | Undef CONFIG_CMD_MD on octopus boards that are running out of flash. BUG=b:268342532 TEST=Build Change-Id: I457b640a1cf837001898aec11ff7896a8cea9b75 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4504946 Tested-by: Rob Barnes <robbarnes@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com> (cherry picked from commit a96c10d588c8aad432439881ad2fab19080223fd) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4533359 Auto-Submit: Rob Barnes <robbarnes@google.com>
* octopus: Undef CONFIG_CMD_MFALLOWRob Barnes2023-05-161-0/+1
| | | | | | | | | | | | | | | | | | Undef CONFIG_CMD_MFALLOW on octopus boards that are running out of flash. BUG=b:268342532 TEST=Build Change-Id: I9dbbd578e8c89e9ee4460b90d6bd48a677b1de8e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4504940 Reviewed-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com> Auto-Submit: Rob Barnes <robbarnes@google.com> Tested-by: Rob Barnes <robbarnes@google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> (cherry picked from commit c229693b76dd1aff5772adadca53bd0ab9919026) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4533358
* octopus: Undef CONFIG_CMD_ACCELSPOOFRob Barnes2023-05-161-0/+3
| | | | | | | | | | | | | | | | | | Undef CONFIG_CMD_ACCELSPOOF on octopus boards that are running out of flash. BUG=b:268342532 TEST=Build Change-Id: I6a3c16718b500d0f53d83e11e454c9b7129fef8f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4500241 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Rob Barnes <robbarnes@google.com> Auto-Submit: Rob Barnes <robbarnes@google.com> Tested-by: Rob Barnes <robbarnes@google.com> (cherry picked from commit 0056d27e28b710307dbf2802a3f64b47af58a503) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4533357 Reviewed-by: Boris Mittelberg <bmbm@google.com>
* octopus: Enable system safe mode panic recoveryRob Barnes2023-05-111-0/+3
| | | | | | | | | | | | | | System safe mode allows the EC to recover from some types of panics which allows the OS to collect more data about the panic. BUG=b:268342532 BRANCH=octopus TEST=Pass safe mode tast test on bloog Change-Id: Iecbe84b9229fdae8c069de12c56361580cd9cb04 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4480011 Reviewed-by: Boris Mittelberg <bmbm@google.com>
* system_safe_mode: Print process stack dumpRob Barnes2023-05-016-48/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the CONFIG_SYSTEM_SAFE_MODE_PRINT_STACK option for printing the faulting process stack to the console buffer. This must be done in safe mode because the console buffer ignores log messages while in an ISR. This option is on by default when system safe mode is enabled. get_panic_stack_pointer is a new overidable function that each architecture needs to implement to support this feature. The default implementation returns 0, which will result in no stack being printed. This is a workaround until coredumps are fully supported. BUG=b:266084064 BRANCH=None TEST=System safe mode zephyr test passes Stack print observed on boten, guybrush, and skyrim boards. LOW_COVERAGE_REASON=Cortex-M and NDS32 specific code cannot be tested Orig-Change-Id: Ied78ab7e6edca9cfa97c50323d94e39a3fca0eef Orig-Signed-off-by: Rob Barnes <robbarnes@google.com> Orig-Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4301695 Orig-Reviewed-by: Boris Mittelberg <bmbm@google.com> Change-Id: Ic517bef23ebf6c18f9a0a5f4e3ce144236e3019f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455295 Reviewed-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com> Tested-by: Rob Barnes <robbarnes@google.com>
* cortex-m/panic: Introduce CONFIG_PANIC_STRIP_GPR optionPatryk Duda2023-05-013-6/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | If set, this option will prevent saving General Purpose Registers during panic. When software panic occurs, R4 and R5 will be saved, because they contain additional information about panic. This should be enabled on boards which are processing sensitive data and panic could cause the leak. BUG=b:193408648 BRANCH=none TEST=Trigger panic using 'crash' command. After reboot use 'panicinfo' to check what was saved. When CPU exception occurred registers R0-R12 should be set to 0. In case of software panic, R4 and R5 can contain panic reason and additional information. Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: I06f9c4bb07f936f0822f70a05e19c8d99c68abfb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3114645 Commit-Queue: Marcin Wojtas <mwojtas@google.com> Reviewed-by: Craig Hesling <hesling@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4469248 Tested-by: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com>
* nds32: Support for system safe modeRob Barnes2023-05-011-0/+15
| | | | | | | | | | | | | | | Add support for entering system safe mode on nds32 based EC. This is accomplished by returning from exception handler with iret. BUG=b:269606355 BRANCH=dedede TEST=Pass system safe mode tast test (with modified Kernel and AP). Change-Id: Iac87b5ebd55ce0224b277257e137dffb7d764263 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4334213 Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4482722
* system_safe_mode: Remove ifdef around IDLE taskRob Barnes2023-05-011-2/+0
| | | | | | | | | | | | | | | Legacy CrOS EC does not define HAS_TASK_IDLE. Idle task is always present in CrOS EC and Zephyr EC, so just remove the ifdef conditional. BUG=None BRANCH=None TEST=Safe mode runs on a Boten Change-Id: I0e65a1f984c5ee1000e23904fa8311750872e000 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4334212 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4482721
* system_safe_mode: Fix typo in HAS_TASK_HOOKRob Barnes2023-05-011-1/+1
| | | | | | | | | | | | | | HAS_TASK_HOOK should be HAS_TASK_HOOKS. BUG=None BRANCH=None TEST=Test system safe mode on Boten Change-Id: I7f42d522a5a8f04d05fabb0993cb928f79c46213 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4334211 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4482720
* system_safe_mode: Use common method for identifying critical tasksRob Barnes2023-05-012-10/+20
| | | | | | | | | | | | | | | | | | | | Legacy EC uses tasks, Zephyr uses threads, so separate methods were used to identify critical tasks/threads. This change switches Zephyr EC to use task ids to identify critical tasks. This allows some duplicate code to be removed and avoids the CONFIG_THREAD_MONITOR dependency. This relies on the tasks shim for mapping between task ids and thread ids. BUG=b:266696987 BRANCH=None TEST=Observe threads being disabled when safe mode runs Change-Id: I87bcb7de87b0575cfc5d90bd12b21314ddeea093 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4214562 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4482719
* system: Implement system safe modeRob Barnes2023-05-019-0/+288
| | | | | | | | | | | | | | | | | | | | | | | Basic implementation of system safe mode recovery. System safe mode is a recovery mode that may be started after a fault/panic. It allows the AP to collect info about the fault and system state before the system resets This CL only includes support for legacy CrOS EC BUG=b:249128225 BRANCH=None TEST=Manually tested on octopus Orig-Change-Id: I15139bb082011485b54e4ca7813839940bf5401a Orig-Signed-off-by: Rob Barnes <robbarnes@google.com> Orig-Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4029604 Orig-Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I8abd563b82b611dafbc9fe1fda05ac6ade2b7c91 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4320966 Reviewed-by: Boris Mittelberg <bmbm@google.com>
* cortex-m/panic: Use newly provided functions to access panic dataPatryk Duda2023-05-011-9/+17
| | | | | | | | | | | | | | | | | | | This change removes usage of PANIC_DATA_PTR where possible. Now panic data is accessed through functions that performs more checks and in case of writing also moves other data when necessary. BUG=b:165773837, b:162254118 BRANCH=none TEST=make -j buildall Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: Id4099d2a205f5e6118e83514dc4b88c980054ea9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2381710 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455294 Reviewed-by: Boris Mittelberg <bmbm@google.com> Tested-by: Rob Barnes <robbarnes@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com>
* npcx/system: Use newly provided functions to access panic dataPatryk Duda2023-05-011-3/+5
| | | | | | | | | | | | | | | | | | | This change removes usage of PANIC_DATA_PTR where possible. Now panic data is accessed through functions that performs more checks and in case of writing also moves other data when necessary. BUG=b:165773837, b:162254118 BRANCH=none TEST=make -j buildall Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: I83dacf1bf680f15a8d5ce3dbb30b03fc3cc54f48 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2379848 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455293 Commit-Queue: Rob Barnes <robbarnes@google.com> Tested-by: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com>
* common/panic_output: Use newly introduced functions for panic info dumpPatryk Duda2023-05-011-15/+25
| | | | | | | | | | | | | | | | | | | | This patch adds use of function that provides pointer to the beginning of panic data in panic info host command. It also adds use of panic_get_data() in panicinfo command to get pointer that can be safely dereferenced. BUG=b:165773837, b:162254118 BRANCH=none TEST=make -j buildall Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: I403300f796fc2add4fae06728d7da4e43616ef2d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2379847 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455292 Commit-Queue: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com> Tested-by: Rob Barnes <robbarnes@google.com>
* common/system: Use beginning of panic data for calculationsPatryk Duda2023-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | panic_get_data() function in some cases doesn't return the beginning of panic data. We should use get_panic_data_start() BUG=b:165773837, b:162254118 BRANCH=none TEST=Compile firmware. Flash EC RW on eve. while running RW firmware issue 'crash watchdog' command. Check if RW properly reports that reset cause was sysjump. Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: I2c0a7e4555b8c2e43487222d2d6c4500448ac80d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2379846 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455291 Commit-Queue: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com> Tested-by: Rob Barnes <robbarnes@google.com>
* host/system: Implement functions for getting pointer to panic dataPatryk Duda2023-05-011-0/+6
| | | | | | | | | | | | | | | | | | | | This patch adds get_panic_data_start() function into chip/host/system.c This function can be used in unit tests as a mock for its real counterpart BUG=b:165773837, b:162254118 BRANCH=none TEST=make runhosttests && make runfuzztests Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: Ib7435b3dc024c7568256898b8752f0361393286f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2401119 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455290 Reviewed-by: Boris Mittelberg <bmbm@google.com> Tested-by: Rob Barnes <robbarnes@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com>
* Introduce functions that provide safe pointer to panic dataPatryk Duda2023-05-013-3/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | panic_get_data() function should always return pointer to panic_data structure that can be safely interpreted. When structure layout left by previous EC is different than ours then panic_get_data() should return NULL. Difference in layout can occur when we are jumping from old RO, this happens in eve. Introduce two new functions: get_panic_data_start() - It can be used to obtain beginning of panic data, eg. when copying raw data or when determining where jump data is. get_panic_data_write() - It can be used to obtain pointer to panic_data structure that can be safely written. This function moves jump data and jump tags if necessary. Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: If5f73c86e2176a0169b0be4b890e399c2c259740 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2379845 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455289 Tested-by: Rob Barnes <robbarnes@google.com> Commit-Queue: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com>
* ish: preserve panic data across resetJack Rosenthal2023-05-015-13/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit stores panic data across reset by storing panic data in the last 256 bytes of AON memory (before AON ROM). > crash divzero ========== PANIC ========== Reason: Divide By Zero Error Code = 0xFF00B60C EIP = 0xFF010008 CS = 0x00010202 EFLAGS = 0x00103085 EAX = 0x00000001 EBX = 0xFF01B118 ECX = 0x00000000 EDX = 0x00000000 ESI = 0x00000000 EDI = 0xFF017E0E Resetting system... =========================== ... ISH reset ... > panicinfo Saved panic data: (NEW) Reason: Divide By Zero Error Code = 0xFF00B60C EIP = 0xFF010008 CS = 0x00010202 EFLAGS = 0x00103085 EAX = 0x00000001 EBX = 0xFF01B118 ECX = 0x00000000 EDX = 0x00000000 ESI = 0x00000000 EDI = 0xFF017E0E BUG=b:129425206 BRANCH=none TEST=see console output above (on arcada_ish) Change-Id: I5c9e458b53076eafe7fa50ba851f2c6e863f2247 Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1593418 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4469247 Commit-Queue: Rob Barnes <robbarnes@google.com> Reviewed-by: Boris Mittelberg <bmbm@google.com> Tested-by: Rob Barnes <robbarnes@google.com>
* task: Add task_enable_task() and task_disable_task()Yilun Lin2023-03-096-0/+793
| | | | | | | | | | | | | | | | | | | Provide API to disable/enable tasks. All the tasks are marked enabled after hook_task starts. We need a way to control the tasks when it shouldn't run in some states. BUG=b:136240895 TEST=Disable the tasks and see it won't be scheudled when task_wake(). BRANCH=None Orig-Change-Id: I2662f3619b22ed28387fe3c783001ba2a745620c Orig-Signed-off-by: Yilun Lin <yllin@google.com> Orig-Signed-off-by: Yilun Lin <yllin@chromium.org> Orig-Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1753562 Change-Id: I91cc0228f610ce95578c7161da3af6bd318a0090 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4320965 Reviewed-by: Eric Yilun Lin <yllin@google.com>
* Casta : Change charging voltage and currentYongBeum.Ha2023-02-141-0/+6
| | | | | | | | | | | | | | | | | Change charging voltage(8600mV) and current(3200mA). BUG=b:266123223 BRANCH=firmware-octopus-11297.B TEST=build, update and check charging voltage and current Change-Id: Ib7b520fbb355ac7ad73634e21271569ed5073d10 Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4199245 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> (cherry picked from commit f0a70403e25db4affec4e81405907876f38f39ee) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4230495 Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* board/casta/battery.c: Format with clang-formatJack Rosenthal2023-02-141-8/+8
| | | | | | | | | | | | | | | | | | | BUG=b:236386294 BRANCH=none TEST=none Change-Id: Ib140f1ce9ef06d48a8c520b8ae416d3f76763c18 Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3728140 Reviewed-by: Jeremy Bettis <jbettis@chromium.org> (cherry picked from commit 18e5eaec6193b477268d0a8a32ff6c2bfd4ec5c8) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4235377 Tested-by: Jongpil Jung <jongpil19.jung@samsung.corp-partner.google.com> Code-Coverage: Henry Sun <henrysun@google.com> Tested-by: Henry Sun <henrysun@google.com> Commit-Queue: Jongpil Jung <jongpil19.jung@samsung.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* Casta : Change Maximum Voltage of BatteryYongBeum.Ha2023-02-031-1/+1
| | | | | | | | | | | | | | | | | Change max voltage of battery to 8600mV BUG=b:266123223 BRANCH=firmware-octopus-11297.B TEST= build, update and check charging voltage Change-Id: I4caaf30dceb87dc8de6c41aa2e996f89fc7f00d8 Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4199244 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> (cherry picked from commit 49d7b78d0a966384d11cef87be87d5b71a2d9af3) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4207268 Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* test: motion_lid: Fix merging errorGwendal Grignou2022-12-071-6/+1
| | | | | | | | | | | | | | | | | commit bb266fc26fc0 ("common: replace 1 << digits, with BIT(digits)") is also fixing an error in motion_lid.c. It should have been split in 2. Fixes commit 0c71c474 ("motion sense: Calculate loop time based on sensor needs") BUG=b:129159505 BRANCH=octopus TEST=pass unit test: "make BOARD=rammus run-motion_lid" Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Change-Id: I78223b1afdcfb965be7b561ede243c262016d966 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3651484 Reviewed-by: Henry Sun <henrysun@google.com>
* panic output: remove assertBoris Mittelberg2022-10-282-3/+13
| | | | | | | | | | | | | | | | | Remove assert to avoid nested panic while getting panic info. Truncate panic data to maximal supported size. BRANCH=none BUG=b:254485444 TEST=./twister -p native_posix -p unit_testing --coverage Signed-off-by: Boris Mittelberg <bmbm@google.com> Change-Id: Ibcf3c0244b159578b6c51c80eec23453522059df Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3975601 Reviewed-by: Ricardo Quesada <ricardoq@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> (cherry picked from commit 0a031be7f2ca6b9f11f0085cb22960d7780ee4a4) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3988174
* common: motion: fix races at shutdownGwendal Grignou2022-10-201-7/+16
| | | | | | | | | | | | | | | | | | | | | | | Do not use collection_rate blindly after a function may have slept: the HOOK task could have run suspend() or suspend() call and set it to 0. Fixes 104f5257 ("motion: Control on which task sensor setting functions are running on") [CL:2553347] BUG=b:218982018, b:176918310, b:170703322, b:253691790 BRANCH=kukui TEST=unit test. Change-Id: I9ef13ceca195db4b48866f1e53f9408fb2bbf595 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2616137 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> (cherry picked from commit ea99e40f31445e67659c09b32cab6857cad8b83e) (cherry picked from commit d1004f8029513a8417b3f9b9ba06367587f96d33) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3960926 Reviewed-by: Ricardo Quesada <ricardoq@chromium.org>
* it83xx: espi: reset pltrst# virtual wire signal during espi resetDino Li2022-10-182-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | EC software reset doesn't reset pltrst# by default. This change was made to reset pltrst# during espi reset. So Ampton won't get stuck after watchdog reset. BRANCH=octopus BUG=b:235443631,b:231246484 TEST=Ampton won't get stuck after watchdog reset. Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Change-Id: Ice77a902185046757d6b7bc70edee53eb81e64dc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3959261 Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: luluboy luluboys <luluboy5208@gmail.com> Reviewed-by: Diana Z <dzigterman@chromium.org> Tested-by: Luluboy Jian <luluboy_jian@asus.corp-partner.google.com> Tested-by: luluboy luluboys <luluboy5208@gmail.com> Reviewed-by: Luluboy Jian <luluboy_jian@asus.corp-partner.google.com> (cherry picked from commit e82fb744a9596e411d568926e27640c4494f547e) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3960652 Reviewed-by: Henry Sun <henrysun@google.com> Tested-by: James Chao <james_chao@asus.corp-partner.google.com> Reviewed-by: James Chao <james_chao@asus.corp-partner.google.com>
* :common: Not sleep 500ms when already left safe modeDavid Huang2022-09-012-15/+15
| | | | | | | | | | | | | | | | | | | | | Don not sleep 500ms when ec already left safe mode. BUG=b:226259582 BRANCH=main TEST=Check get battery info don't have 500ms delay in console. Signed-off-by: David Huang <david.huang@quanta.corp-partner.google.com> Change-Id: I740b49e654047800936086a9de33a87c7c46a300 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3853307 Commit-Queue: David Huang <david.huang@quanta.corp-partner.google.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3868142 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: David Huang <david.huang@quanta.corp-partner.google.com> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
* bobba: Change charge max sleep time to 4sDavid Huang2022-08-311-0/+7
| | | | | | | | | | | | | | | | | | | Change CHARGE_MAX_SLEEP_USEC to 4 second. BUG=b:226259582 BRANCH=octopus TEST=Verify access battery once per 4 seconds by ec console. Signed-off-by: David Huang <david.huang@quanta.corp-partner.google.com> Change-Id: Id34ae085384ded076dcf3c29423d757ce9c6cb24 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3821848 Reviewed-by: Diana Z <dzigterman@chromium.org> (cherry picked from commit 59228bfc94a168ed4b28902d71ff2ee13d90458f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3864605 Reviewed-by: Henry Sun <henrysun@google.com> Tested-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* anx7447: Read ANX7447 firmware versionarthur.lin2022-05-181-0/+28
| | | | | | | | | | | | | | | | | Add ANX7447 firmware version reading for new adding PD firmware. BUG=b:227705897 BRANCH=None TEST=make buildall -j Signed-off-by: arthur.lin <arthur.lin@lcfc.corp-partner.google.com> Change-Id: I0eeedf9059bda8fead8cc05405dac4723da9d0e8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3644553 Commit-Queue: Jimmy Wu <jimmy.wu@lcfc.corp-partner.google.com> Tested-by: Jimmy Wu <jimmy.wu@lcfc.corp-partner.google.com> Tested-by: Peichao Wang <pwang12@lenovo.corp-partner.google.com> Reviewed-by: Peichao Wang <pwang12@lenovo.corp-partner.google.com> Reviewed-by: Marco Chen <marcochen@chromium.org>
* motionsense: prevent loop after missing eventsJett Rink2022-05-171-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | We don't need to loop to figure out when to schedule the next sensor collection event, just schedule it as soon as possible. This eliminates a watchdog reset when we miss scheduling the sensor task and get really far behind. BRANCH=none BUG=b:133190570 TEST=normal operation is fine, based on longs of failing results in bug, this should prevent the watch reset. Change-Id: I3001028ba393b51d1958f0136ba040eaee5e52d1 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1658521 Reviewed-by: Yuval Peress <peress@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> (cherry picked from commit 8374923a60c8b63b7bb2c1823e4f5b6078544e44) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3649255 Reviewed-by: Gwendal Grignou <gwendal@chromium.org> Tested-by: Boris Mittelberg <bmbm@google.com> Commit-Queue: Boris Mittelberg <bmbm@google.com> Reviewed-by: Ricardo Quesada <ricardoq@chromium.org>
* garg: support imu bmi260Zick Wei2022-05-163-0/+68
| | | | | | | | | | | | BUG=b:231646511 BRANCH=firmware-octopus-11297.B TEST=verified on rework garg DUT, BMI260 work as intended. Signed-off-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Change-Id: I652d62c68f1cf8f305c467772c31f58eb2cd42a6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631913 Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* bmi260: Set i2c transfer size to 128Rong Chang2022-05-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | This change only applies to kukui firmware branch. To support i2c transfer with chunk large than 255 bytes, the change 8f8d017fb3 ("i2c_master: extend i2c_xfer_no_retry..") is needed. To minimize the changes needed, this CL modifies BMI260's transfer chunk size to 128. BUG=b:193945779 BRANCH=kukui TEST=emerge-kukui chromeos-ec Signed-off-by: Rong Chang <rongchang@chromium.org> Change-Id: I94e1104a6143783eb211ece3772381ba81926686 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3217480 Reviewed-by: Ting Shen <phoenixshen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631912 Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: Henry Sun <henrysun@google.com> Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com>
* bmi260: back out support for compressed config fileKeith Short2022-05-162-175/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Now that the BMI260 config file can be moved to the .init_rom section, the simple compression scheme is no longer needed. BUG=b:160330682 BRANCH=none TEST=make buildall TEST=Verify BMI260 operation on both volteer and volteer_tcpmv1 builds using "ectool motionsense lid_angle". Signed-off-by: Keith Short <keithshort@chromium.org> Change-Id: I83bbaadcd3dade2d585b771b6b9ebae7e9fdc0cb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2354194 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: caveh jalali <caveh@chromium.org> (cherry picked from commit 863a28e1c874d95853ae50900f3226e11b05cec9) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3214010 Tested-by: Rong Chang <rongchang@chromium.org> Auto-Submit: Rong Chang <rongchang@chromium.org> Commit-Queue: Rong Chang <rongchang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631910 Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* bmi260: move BMI260 init file into .init.rom sectionKeith Short2022-05-162-15/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Increases Volteer RO and RW flash spaces by 7088 bytes each. This is the net gain after including the init_rom layer. BUG=b:160330682 BRANCH=none TEST=make buildall TEST=On volteer run "ectool motionsense" and "ectool motionsense lid_angle". Verify both RO and RW images. TEST=Program RO image with predecessor CL:2311268. Program this CL into AP firmware image and verify EC software sync updates to RW image. TEST=Verify BMI260 operation with CONFIG_CHIP_INIT_ROM_REGION disabled using volteer_tcpmv1 board. Conflicts: board/eldrid/board.h: eldrid not in branch. board/volteer/board.h: sensors were not enabled. third_party/bmi260/accelgyro_bmi260_config_tbin.h: branch does not have e0bf946ced: rom resident section. Signed-off-by: Keith Short <keithshort@chromium.org> Change-Id: I6849b6c9e96756266528b39ab5e53268dce2a13c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2311756 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: caveh jalali <caveh@chromium.org> (cherry picked from commit 06f584a8b508e881680c222498702f5148330a3f) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3214009 Tested-by: Rong Chang <rongchang@chromium.org> Auto-Submit: Rong Chang <rongchang@chromium.org> Commit-Queue: Rong Chang <rongchang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631909 Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* init_rom: Add init_rom layerKeith Short2022-05-163-1/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a thin init_rom layer for accessing data objects linked into the .init_rom section with the CONFIG_CHIP_INIT_ROM_REGION opton and __init_rom attribute. BUG=b:160330682 BRANCH=none TEST=make buildall TEST=Using the next CL, verify BMI260 config data can be read using both memory mapped and indirect access. Conflicts: include/config.h: CONFIG_CHIP_INIT_ROM_REGION not supported Signed-off-by: Keith Short <keithshort@chromium.org> Change-Id: I6cd311637e87cd10ac394ff75c4bfc16bbade3b0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2335739 Reviewed-by: caveh jalali <caveh@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: caveh jalali <caveh@chromium.org> (cherry picked from commit b95587bb7a412d696f0800236bb8977d392e83b0) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3214008 Tested-by: Rong Chang <rongchang@chromium.org> Auto-Submit: Rong Chang <rongchang@chromium.org> Commit-Queue: Rong Chang <rongchang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631908 Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* bmi260: Add support for using compressed configKeith Short2022-05-162-10/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new config option CONFIG_ACCELGYRO_BMI160_COMPRESSED_CONFIG for boards that need to save space. This is intended to be a temporary option until the BMI260 config file can be read from the AP at runtime. This option saves 916 bytes in RW flash space on Volteer. BUG=b:160330682 BRANCH=none TEST=make buildall TEST=boot Volteer, run "ectool motionsense" to verify sensor data is valid. Conflicts: board/volteer/board.h: sensors were not enabled in branch. Signed-off-by: Keith Short <keithshort@chromium.org> Change-Id: I294e5e0c3f919527b51e6f7361e74c7bf4afc543 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2289216 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org> (cherry picked from commit 084be04a979483d93fcb6541b8424a0eecfb74a4) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3213987 Tested-by: Rong Chang <rongchang@chromium.org> Auto-Submit: Rong Chang <rongchang@chromium.org> Commit-Queue: Rong Chang <rongchang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631907 Commit-Queue: Henry Sun <henrysun@google.com> Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* driver: bmi: Merge list_activities in common codeGwendal Grignou2022-05-164-27/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put list_activities in common code, as it is used by both BMI160 and BMI260 driver. Fixes cb3771973de ("Coachz: MotionSensor: Avoid redefine gesture function list_activites") Fixes fc298a0ada0 ("driver: bmi260: integrate body detection") BUG=b:195908820 BRANCH=trogdor TEST=buildall Conflicts: driver/accelgyro_bmi_common.c: 851daf728d: motion orientation interface Change-Id: I05591954c825802502328c842b03e8934c497f08 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3150056 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> (cherry picked from commit 8b37b17df0b8946763b1da984c64c51418a6b381) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3213986 Tested-by: Rong Chang <rongchang@chromium.org> Auto-Submit: Rong Chang <rongchang@chromium.org> Commit-Queue: Rong Chang <rongchang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631906 Commit-Queue: Henry Sun <henrysun@google.com> Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* driver: bmi260: integrate body detectionGwendal Grignou2022-05-161-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Body detection is accelerometer agnostics. It was added in BMI260, but not finalized. Add list_activity function to enable/disable body detection. BRANCH=volteer BUG=b:195908820 TEST=Check cros-ec-activity is loaded. Enable proximity event: echo 1 > events/in_proximity_change_either_en Load iio_event_monitor, check we get events when moving device on lap to floor: Event: time: 925239910373, type: proximity, channel: 0, evtype: change, direction: falling Event: time: 945020001791, type: proximity, channel: 0, evtype: change, direction: rising ... Conflicts: driver/accelgyro_bmi260.c: CONFIG_BODY_DETECTION not support Change-Id: I423c7044761d2addac36d435781ea19c1f1b18ed Signed-off-by: Gwendal Grignou <gwendal@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3097151 Tested-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-by: Ching-Kang Yen <chingkang@chromium.org> Commit-Queue: Gwendal Grignou <gwendal@chromium.org> (cherry picked from commit fc298a0ada0350ae9cb2dab21e790efb4d8c4a36) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3143632 Tested-by: Rong Chang <rongchang@chromium.org> Reviewed-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631905 Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* driver: Add BMI260 basic driver supportChing-Kang Yen2022-05-1612-58/+1723
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add BMI260 accel/gyro driver code. Be able to do initial configuration, start up sensor, config interrupt and fifo, perform calibration, and access the sensor data from AP. BRANCH=None BUG=b:146144827 TEST=make -j4 BOARD=volteer \ && flash_ec --image build/volteer/ec.bin --board volteer Then, check sensor data is available on DUT by "ectool motionsense". TEST=make buildall -j TEST=tast run ${IP} hardware.SensorRing Conflicts: common/build.mk: include/config.h: include/ec_commands.h: ICM-42607 driver support landed earlier Cq-Depend: chromium:2148802 Change-Id: I5124ee8359a74f98cfe8d26da640325f5e00cb15 Signed-off-by: Ching-Kang Yen <chingkang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2086534 Reviewed-by: Gwendal Grignou <gwendal@chromium.org> (cherry picked from commit 00b4226613aa84f9734a22e50acd4d7ede960cc1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3115728 Tested-by: Rong Chang <rongchang@chromium.org> Tested-by: Gwendal Grignou <gwendal@chromium.org> Commit-Queue: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631904 Commit-Queue: Henry Sun <henrysun@google.com> Reviewed-by: Henry Sun <henrysun@google.com> Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com>
* driver: Replace BMI160 to BMI in board configChing-Kang Yen2022-05-1633-177/+158
| | | | | | | | | | | | | | | | | | | | | Replace some macro of BMI160 to BMI version for common function of BMI series. Make board config include the accelgyro_bmi_common.h instead of accel_gyro_bmi160.h. BRANCH=None BUG=b:146144827 TEST=make buildall -j Change-Id: I043ff8a92f15295ead3fa5c1e292319e2b4fa21a Signed-off-by: Ching-Kang Yen <chingkang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2156525 Reviewed-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3637398 Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* driver: Add BMI common codeChing-Kang Yen2022-05-167-863/+1298
| | | | | | | | | | | | | | | | | | | | Add accelgyro_bmi_common.(c/h) for the code shared among the BMI. BRANCH=None BUG=b:146144827 TEST=make -j4 BOARD=ampton Then, flash the ec.bin into DUT, check sensor data is available on DUT by "ectool motionsense". TEST=make buildall -j Change-Id: Ia56ffb0896943b08640b3d6ca96324ac5e7d93a0 Signed-off-by: Ching-Kang Yen <chingkang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2130146 Reviewed-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631903 Commit-Queue: Henry Sun <henrysun@google.com> Tested-by: Zick Wei <zick.wei@quanta.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* dood: Add CONFIG_USB_PD_RESET_MIN_BATT_SOCYu-An Chen2022-05-031-0/+3
| | | | | | | | | | | | | | | | | | Add CONFIG_USB_PD_RESET_MIN_BATT_SOC to prevent pd reset when battery soc under 2% BUG=b:229541865 BRANCH=octopus TEST=make BOARD=dood Signed-off-by: Yu-An Chen <yu-an.chen@quanta.corp-partner.google.com> Change-Id: If3583b586dd9de3c41b4a332787aff207f4441c2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3612828 Reviewed-by: Diana Z <dzigterman@chromium.org> (cherry picked from commit c0097b7b6f05cba71472b1a76d071272c83119b8) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3615952 Reviewed-by: David Kuo <davidkuo@google.com> Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* driver: icm42607: removed SW reset and added POC initializeJuHyun Kim2022-05-012-20/+133
| | | | | | | | | | | | | | | | | | | | | | | | Removed SW reset in initialize code due to hardware issue of ICM42607 Added registers initialization code instead of SW reset BUG=chromium:1288737 BRANCH=None TEST=ectool motionsense && CROS-EC IIO drivers Signed-off-by: JuHyun Kim <jkim@invensense.com> Change-Id: If14c071b82b62a7432cb1855cdf5d1c9dc744a91 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3403824 Tested-by: JuHyun Kim <jkim@invensense.com> Reviewed-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> Reviewed-by: Henry Sun <henrysun@google.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> (cherry picked from commit 86f19b3430623dab7ce8089a7d3564a98705c5ac) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3587802 Tested-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Gwendal Grignou <gwendal@chromium.org>
* chgstv2: rework "charge_command_charge_control()"Tommy Chung2022-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | Condition of judging whether to enable or disable the battery sustainer should be the mode host commands give, not the current chg_ctl_mode. BUG=b:194219157, b:222620437 BRANCH=none TEST=make sure that the battery sustainer will not be incorrectly enabled when giving "ectool chargecontrol discharge" or "ectool chargecontrol idle" under CHARGE_CONTROL_NORMAL mode. Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com> Change-Id: I8a28970164a7e80805601817f2761d6684b183cf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3070328 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> (cherry picked from commit f60c312dcf183fdaef40d9a32f092193f8ec89db) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3573693 Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Commit-Queue: Zhuohao Lee <zhuohao@chromium.org>
* garg: Add Simplo 916QA152H batteryDevin Lu2022-04-062-0/+29
| | | | | | | | | | | | | | | | BUG=b:215280830 BRANCH=firmware-octopus-11297.B TEST=1. Verify battery is able to charge/discharge. 2. Verify battery cutoff. Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Change-Id: I7102acf072a2b32ac7be434d438140124442e0ef Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3552000 Reviewed-by: Diana Z <dzigterman@chromium.org> (cherry picked from commit 660c8e2f4d7aa3b64e1a302f58c2283747eac36e) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3573423 Reviewed-by: Henry Sun <henrysun@google.com> Commit-Queue: Henry Sun <henrysun@google.com>
* battery: Set EC_BATT_FLAG_INVALID_DATA correctlyDaisuke Nojiri2022-03-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | There is a typo in the logic where EC_BATT_FLAG_INVALID_DATA is set. Because of this, currently, EC_BATT_FLAG_INVALID_DATA is reported to the host only if BATT_FLAG_BAD_CURRENT is set. BATT_FLAG_BAD_CURRENT happens to be 0x20 which is equal to EC_BATT_FLAG_INVALID_DATA. (This originates from I3c428c850020a29b3f452504b60b52946a04c503.) This patch corrects the logic by changing EC_BATT_FLAG_INVALID_DATA to BATT_FLAG_BAD_ANY. BUG=b:65697962,b:65697620 BRANCH=None TEST=None Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I7504932f078ce797daf8e5c017b7835c90220a99 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3516912 Reviewed-by: caveh jalali <caveh@chromium.org> (cherry picked from commit 550f6384d82a563d85248d8a740931257b11250c) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3533719 Commit-Queue: caveh jalali <caveh@chromium.org>
* battery/smart: Don't update fields if reading failsDaisuke Nojiri2022-03-161-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | Currently, battery_get_params starts with batt_new = {0} and ends with memcpy(batt, batt_new). That is, if battery_get_params fails to read a field, we set a BATT_FLAG_BAD_* and clear the field. This behavior forces us to check the flags everywhere fields are read (to distinguish 0 v.s. invalid 0). It also makes EC forget the last known good values. Instead, we will always keep good values in the global batt_params. That is, we update fields only if reads are successful. (That's how other implementations of battery_get_params behave.) Thus, if display_soc is zero, it was computed legitimately as zero (except the very initial value). BUG=b:217401040,b:222722611 BRANCH=None TEST=Guybrush Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I5b69b708d149d1c750551d8cf957eab3fdc8aa64 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3518073 Reviewed-by: caveh jalali <caveh@chromium.org>
* battery: Set host's low battery shutdown SoC to 4%Daisuke Nojiri2022-02-211-4/+4
| | | | | | | | | | | | | | | | | Currently, the host's low battery shutdown SoC is 3% by default but most boards are configured to 4%. This patch changes the default value to 4% so that we require only minority boards to customize it. BUG=b:191837893, b:189737806 BRANCH=None TEST=Storo using battfake EC command. Change-Id: I69ed5d8cc8c0d1e321d79c5eae26a9c21624a4ea Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2998509 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3340215 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3469846