summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Clear OWNERS for factory/firmware branchfactory-pit-4471.BBrian Norris2021-09-101-0/+1
| | | | | | | | | | | | BUG=none TEST=none Change-Id: I0f03f432ada1064ffba9595be78ca7ab4d25ecd1 Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3155079 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Owners-Override: Jora Jacobi <jora@google.com> Tested-by: Jack Rosenthal <jrosenth@chromium.org>
* ectool: fix console commandAaron Durbin2013-07-261-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a few issues with console output: 1. The EC was returning more bytes than the message's insize. The reason stems from a refacotring that the set the global ec_max_insize variables to 'EC_PROTO2_MAX_PARAM_SIZE - 8'. It really should be EC_PROTO2_MAX_PARAM_SIZE to cover the maximum packet size returned from the EC. 2. A change was made to handle EAGAIN returning from the EC kernel driver's ioctl() interface. That change prevented 0 bytes received from being returned properly. The first issue occurs because the EC console is always larger than what the original ec_max_insize was set to. This caused no console messages to be displayed. The second issue causes the console command to potentially loop forever because the drain of the EC console is never indicated because 0 could never be returned. BUG=chrome-os-partner:21165 BRANCH=falco,peppy TEST=Built and can now read 'ectool console' output as well as not including gargabe. Change-Id: I3114594f0020a5198532aa78ce126f4da6caf09a Reviewed-on: https://gerrit.chromium.org/gerrit/63445 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Aaron Durbin <adurbin@chromium.org> Tested-by: Aaron Durbin <adurbin@chromium.org>
* Add new hostevents to ask the AP to throttle itselfBill Richardson2013-07-252-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Occasionally the EC wants to ask the AP to throttle itself. Currently, the only thing that the EC can do (at least on x86) is to assert the PROCHOT# signal, which is a fairly intrusive operation and one that Intel suggests we save for emergencies. This CL adds a new pair of host events to ask the BIOS to throttle the AP politely, or stop doing so. The turbo charger code will send these events to the AP if they become necessary. BUG=chrome-os-partner:20739 BRANCH=falco,peppy TEST=manual Tests should still pass, everything else is unchanged. make BOARD=${BOARD} runtests Currently, there's nothing on the BIOS/OS side that would respond to these events, so they're just ignored. You can test that, even without this CL, by running hostevent set 0x40000 hostevent set 0x80000 Change-Id: I4a7a1b6eb87e42df94ddd09f4c6abee6ebcbd485 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63379 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* Pulse EC_ENTERING_RW instead of just leaving it highRandall Spangler2013-07-251-1/+8
| | | | | | | | | | | | | | | | | | The Silego chip has a 50k pulldown which will leak power if we leave EC_ENTERING_RW high. We don't need to leave it high, because once the latch in the Silego gets set it ignores this signal. This is ~100uA, so it only really matters in S5 on pit (since x86 boards and spring both hibernate in S5). BUG=chrome-os-partner:20757 BRANCH=none TEST=probe ec_in_rw signal before/after sysjump Change-Id: Ib6b09cfc7718b35e4e93c952c3098c08d53572e2 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62133 Reviewed-by: Vic Yang <victoryang@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Add turbo mode charger support, and tests for it.Bill Richardson2013-07-2513-22/+645
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some chargers can run in a "turbo" mode, which lets it draw from the battery to provide extra power to the AP in short bursts. In order for this to work properly, the EC has to watch the current closely to make sure specific limits are observed. It also has to recognize specific adapters, since those limits vary depending on the rated power that the adapter can provide. This adds the basic functionality, plus a test for it. BUG=chrome-os-partner:20739 BRANCH=falco,peppy TEST=manual make BOARD=${BOARD} runtests On Falco, you can also use the "adapter" EC command to see what's going on. Try replacing the adapters and running that command to be sure they're correctly identified, too: > adapter Adapter 65W (590mv), turbo 1, AP_throttled 0 > We currently support 45W, 65W, and 90W adapters. Unknown adapters are treated as 65W, but don't enable turbo mode. Change-Id: I7e5407db825ce7e596cb495fb8cb4d1dd1ff639c Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63372 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Change macro names used for test configurationsBill Richardson2013-07-252-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | We can't change CONFIG_ options from the gcc commandline, because include/configs.h explicitly undefs them again. So for some tests, we add a -DFOO to the command line and then put this in the source: This change just uses TEST_FOO instead of FOO, so it's more obvious what's happening. BUG=chrome-os-partner:20739 BRANCH=falco,peppy TEST=manual No functional change, just renaming. Run make BOARD=${BOARD} runtests Everything should still pass. Change-Id: I17e10180f8d779dff0961cf411f5b61cfc70c316 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63371 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Add descriptions for lots of config optionsRandall Spangler2013-07-241-9/+129
| | | | | | | | | | | | | No functional changes, no renaming options, just adding comments. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: I7218f8a4465e3e27b33a1d1a5313da83e474d633 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63281 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Clean up onewire config optionsRandall Spangler2013-07-246-16/+25
| | | | | | | | | | | | | | | | Rename onewire_led to led_driver_ds2413, since we may have other LED drivers hanging off a one-wire bus in the future. No functional changes, just renaming config options. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: I1d70b1c5778da94bda4ebef3b57f7c39bfba2322 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63273 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Clean up more config options - FMAP, etc.Randall Spangler2013-07-248-44/+44
| | | | | | | | | | | | | | | | CONFIG_FMAP is now defined by default, because all platforms other than the host unit tests use it. No functional changes, just renaming config options and removing dead code. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: Ie6496310c822491068e2fa6976933486f26badb0 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63271 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Clean up more config optionsRandall Spangler2013-07-2421-55/+29
| | | | | | | | | | | | No functional changes, just renaming config options. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: I65b310b670e61bcb3531c581dfc57625df064df2 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63248
* Clean up and document UART config optionsRandall Spangler2013-07-2422-96/+80
| | | | | | | | | | | | No functional changes, just renaming config options. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: I91584cb1f8990dd0f980abd32c04465a66243e71 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63244
* Support emulator hibernateVic Yang2013-07-241-1/+11
| | | | | | | | | | | | | | | | | If we are hibernating indefinitely, just exit with hibernate exit code. If hibernating with a delay, delay for that amount of time and then reboot. BUG=chrome-os-partner:19235 TEST='hibernate 1' and see emulator reboot after a second with reset flag 'hibernate' BRANCH=None Change-Id: If25bf2eefbcf275f2592b92a997a9d7e1ff2384d Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62970 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Reboot emulator with execv()Vic Yang2013-07-247-16/+50
| | | | | | | | | | | | | | | | With this, the emulator is able to reboot itself without the help of run_host_test script. This makes it easier for development and also speeds up the test. BUG=chrome-os-partner:19235 TEST=Pass all tests BRANCH=None Change-Id: Ifa510442de19256c671ab91b6bc75fe9e8b9dc7b Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62969 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Collect board X specific files into build.mk common-$(BOARD_X)Rong Chang2013-07-2410-30/+10
| | | | | | | | | | | | | This change removes all CONFIG_module_FOO from board/foo/board.h . BRANCH=None BUG=chrome-os-partner:21302 TEST=util/ecmakeall.sh Change-Id: If36c792d7a8587a186287eee5fa31b4c4cf1c006 Signed-off-by: Rong Chang <rongchang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63211 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Standardize concatenation macrosRandall Spangler2013-07-245-19/+31
| | | | | | | | | | | | | | | | | | To create a token by concatenating already-defined macros and new text, it's necessary to use multiple levels of macro. We'd already done that in several places in the code such as STM32_CAT; this now standardizes it into a single place. BUG=chrome-os-partner:18343 BRANCH=none TEST=Build all platforms; examine ec.RO.map to see that irq_*_handler and prio_* symbols evaluated the same as before. (Other macro evaluations would simply fail to compile if they were incorrect, since the concatenated tokens wouldn't fully expand.) Change-Id: Ic9bf11d27881a84507fe7b6096dab6217c6c6dc7 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63231 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Add a script to build all platforms and run host-based unit testsRandall Spangler2013-07-241-0/+17
| | | | | | | | | | | | | | | | As the number of boards grows, it's handy to have a script which builds them all and runs host-based unit tests, to make sure that changes are at least somewhat sane before submitting them to the commit queue. BUG=none BRANCH=none TEST=util/make_all.sh Change-Id: Ie3fcb062caedaf36b3e350c3d9be34a9b080c76d Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63230 Reviewed-by: Rong Chang <rongchang@chromium.org>
* Move TPSChrome charging temperature range to battery packRong Chang2013-07-2423-200/+450
| | | | | | | | | | | | | | | | | This change moves vendor specific temperature ranges to battery pack files or board setup files. And added a host test case to verify that does not change x86 smart battery charging state machine behavior. BUG=chrome-os-partner:21181 BRANCH=None TEST=manual build test: util/ecmakeall.sh hosttests: make hosttests && make runtests Change-Id: I48e76826b5555f64b78e3c063ce5f02416c72aa2 Signed-off-by: Rong Chang <rongchang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62978 Reviewed-by: Vic Yang <victoryang@chromium.org>
* bolt: add prelimnary supportAaron Durbin2013-07-247-1/+871
| | | | | | | | | | | | | | | | | | The preliminary bolt support allows the board to boot with all the necessary peripherals working except for the following things: - Not all board temp sensors are added. - WLAN is not powered on because of inrush issues. - USB power chargers are fixed to normal mode for now. BUG=chrome-os-partner:20372 BRANCH=None TEST=Built and booted Change-Id: Iea7a39e812bb396e5731f212630b7fe97c164bf2 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62210 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* x86: build chipset_x86_common.o conditionallyAaron Durbin2013-07-247-2/+10
| | | | | | | | | | | | | | Add a CONFIG_CHIPSET_X86 option that determines if chipset_x86_common.o is built. BUG=chrome-os-partner:20372 BRANCH=None TEST=built bolt and link. All other boards should be covered. Change-Id: I980a8fc68a31162b920429e695631909c5f6a4db Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63208 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Clean up and document more config optionsRandall Spangler2013-07-2416-72/+52
| | | | | | | | | | | | | | | | | | | No functional changes, just renaming config options. Remove README, now that all options described in it have been moved to config.h, and the remaining information is out of date. (Yes, we should have a README which describes the organization of the EC repository, but that's a matter for another CL; this one's about cleaning up config options.) BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: Iafefbe94369f1217c698f11d358bc0ecac2bdfde Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63145 Reviewed-by: Vic Yang <victoryang@chromium.org>
* Lessen timing constraints in hooks testVic Yang2013-07-231-3/+3
| | | | | | | | | | | | | | HOOK_TICK and HOOK_SECOND aren't firing with precise interval. Let's lessen the timing constraints. BUG=chromium:263288 TEST=Pass all tests BRANCH=None Change-Id: Ic093c2a27ed1b8621469a4097e567b80d1eeb50d Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63144 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Clean up and document keyboard config optionsRandall Spangler2013-07-239-18/+41
| | | | | | | | | | | | | No functional changes, just renaming config options. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: Ie811066a26eeaf2a5b2002b934e25b660d29058d Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63109 Reviewed-by: Vic Yang <victoryang@chromium.org>
* Clean up debug config optionsRandall Spangler2013-07-2324-121/+109
| | | | | | | | | | | | | | | | | All of these were defined on all but a few platforms, and those explicitly #undef them. So define them as enabled by default in config.h so the board.h files are cleaner. No functional changes; just rearranging/renaming config constants. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms; FEATURES=test emerge-falco chromeos-ec Change-Id: I1201a1472ae29641e9e219c2a0347691ca64cd28 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/63102 Reviewed-by: Vic Yang <victoryang@chromium.org>
* Fixed two i8042 bugs.Louis Yung-Chieh Lo2013-07-231-12/+31
| | | | | | | | | | | | | | | | | | | | | 1. The buffer for host i8042 command is too small so that a command is dropped (buffer full) in some cases. Enlarging it can solve bug. 2. The keystrokes are queued in buffer so that kernel driver cannot get stable CTR value. We workaround this by disabling the keystroke and clearing buffer when keyboard is disabled. BUG=chrome-os-partner:20758 BRANCH=falco,link TEST=Verified on link. Repeatedly press Ctrl + U during booting. The keyboard is working after boot. Change-Id: I7d8daef8d815b8e4d08df6f6a26ab2a471e5b150 Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62986 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Duncan Laurie <dlaurie@chromium.org> Tested-by: Duncan Laurie <dlaurie@chromium.org>
* Fix reset flags and sysjump time for emulatorVic Yang2013-07-233-14/+94
| | | | | | | | | | | | | | | Reset flags should be set properly according to reset type. Also, on system jump, current time should be preserved. BUG=chrome-os-partner:19235 TEST='sysjump rw' and check time is the same. TEST='reboot hard' and see '[Reset cause: hard]' BRANCH=None Change-Id: I00fd2c652d10c237f23cc6a33e0b667422bc625d Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62958 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Test power button in kb_8042 testVic Yang2013-07-231-0/+48
| | | | | | | | | | | | | | This checks keycodes are sent correctly when power button is pressed. BUG=chrome-os-partner:19236 TEST=Pass the test BRANCH=None Change-Id: Ibaa4ffce749167be5b8376aada0786f9760e7707 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62955 Reviewed-by: Yung-Chieh Lo <yjlou@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Test sysjump tag in kb_8042 testVic Yang2013-07-237-14/+164
| | | | | | | | | | | | | This checks that keyboard state is preserved across system jump. BUG=chrome-os-partner:19236 TEST=Pass the test BRANCH=None Change-Id: I53c5bb68246fd117b351d89c3907daf028bc4ef3 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62908 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Clean up and document PMU config optionsRandall Spangler2013-07-2313-46/+59
| | | | | | | | | | | | | | | | | | No functional changes, just documenting and renaming. All boards which use the PMU must provide pmu_board_init(). This was already true - except that Daisy's pmu_board_init() was implemented as part of pmu_init() instead of its code living in board.c; I've moved the code there now. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: I85ad06dc3b6287ad917fe13acf83182f24a8f23d Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62906 Reviewed-by: Vic Yang <victoryang@chromium.org>
* Clean up and document battery config optionsRandall Spangler2013-07-2311-11/+30
| | | | | | | | | | | | No functional changes, just documenting and renaming. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: I0b0d3cdce535d90ce437e82e96346fc3ca9be7b0 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62673
* Clean up charger config optionsRandall Spangler2013-07-2313-187/+219
| | | | | | | | | | | | | | | | These are now described in config.h. The various BQ chargers now also use a consistent naming for their sense resistor options. No functional changes, just renaming, and removal of obsolete never-defined configs. BUG=chrome-os-partner:18343 BRANCH=none TEST=build all platforms Change-Id: Ie274546fe45f5ffc6fd0f26096c4622805baf8a0 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62540
* Add ectool chargecontrol discharge command for Slippystabilize-4443.BDave Parker2013-07-222-0/+16
| | | | | | | | | | | | BUG=chrome-os-partner:21180 BRANCH=slippy TEST=Run ectool chargecontrol command with each option (normal, idle, discharge) on Slippy. Verifiy battery is discharging in discharge mode via EC console 'battery' command. Signed-off-by: Dave Parker <dparker@chromium.org> Change-Id: I0461b20fc15c99380327b9a282efff7f1ed93baf Reviewed-on: https://gerrit.chromium.org/gerrit/62851
* Add system_common unit testVic Yang2013-07-226-7/+181
| | | | | | | | | | | | | | This tests reboot-on-ap-shutdown. BUG=chrome-os-partner:19236 TEST=Pass the test BRANCH=None Change-Id: Ic1a07670f82646e85d014d52a2aba0835319c212 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62855 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Slippy: Detect physical presence of battery before waking itDave Parker2013-07-223-0/+12
| | | | | | | | | | | | | | | | BUG=chrome-os-partner:21180 BRANCH=slippy TEST=Power device without battery. It should boot with no 30 second delay. The battery LED blinks orange indicating a battery error. Signed-off-by: Dave Parker <dparker@chromium.org> Change-Id: Icabc450cd44748aed694e4ed8cb81eee152cf456 Reviewed-on: https://gerrit.chromium.org/gerrit/62850 Tested-by: Dave Parker <dparker@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Dave Parker <dparker@chromium.org>
* Set Slippy write protect to active lowDave Parker2013-07-222-3/+2
| | | | | | | | | | | BUG=chrome-os-partner:21180 BRANCH=slippy TEST=Verify correct WP value using crossystem wp_cur. Change-Id: I1eb30584a744df7c695a06544d46b729cd4a689f Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62849 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Basic G781 temp sensor support for SlippyDave Parker2013-07-222-13/+28
| | | | | | | | | | | | | | This lets us read the internal and external values on the G781 temp sensor. BUG=chrome-os-partner:21180 BRANCH=slippy TEST=run ec 'temps' command on Slippy. Change-Id: Ib3a2a89efd4cfbc4a49696c79daa37bc1880a3ef Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62847 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Battery LED control for SlippyDave Parker2013-07-224-2/+96
| | | | | | | | | | | | | | | BUG=chrome-os-partner:21180 BRANCH=slippy TEST=Manual. Verify LED is amber while charging, blue when charged, and off when external power disconnected. Signed-off-by: Dave Parker <dparker@chromium.org> Change-Id: If80bb9b0c70951d257621a2fe3ef20cd8749a033 Reviewed-on: https://gerrit.chromium.org/gerrit/62848 Tested-by: Dave Parker <dparker@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Dave Parker <dparker@chromium.org>
* Move .lcov_lock to /tmp/ec-lcov-lockVic Yang2013-07-221-1/+1
| | | | | | | | | | | | | | | flock leaves the lock file and git complains about it. Let's move the lock file to /tmp/ec-lcov-lock. BUG=chrome-os-partner:19235 TEST=make coverage and check .lcov_lock is in /tmp BRANCH=None Change-Id: Id6d68af327b53aa1c0c7ae9186149126d8a5cc37 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62858 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Falco: Swap battery LED colors to follow HW changeDave Parker2013-07-191-4/+4
| | | | | | | | | | | | | BUG=chrome-os-partner:20984 BRANCH=falco TEST=Manual. Verify battery LED is amber when charging and white when charged. Change-Id: I98ba6e1839d5e07ad0c0422addc9708aadcce00f Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62678 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Truncate version string to 32 charactersRandall Spangler2013-07-193-12/+19
| | | | | | | | | | | | | | | | | | | | | | | The version struct and EC_CMD_GET_VERSION assume 32-character version strings. But if the git tree is dirty and the board name is long, the version string overflows that limit. This change truncates what's stored in the version string to fit. The build info still contains the full version string, as it did before. BUG=chrome-os-partner:21156 BRANCH=none TEST=build BOARD=mccroskey with a dirty tree; it should build. Then cat build/mccroskey/ec_version.h to see CROS_EC_VERSION32 has truncated the version string. Then build a platform of your choice and type 'version' to see that the version string and build info is still reported correctly. Change-Id: Ie71b8efd99a83315f8b4d5ad10c51e48781b12f4 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62649 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Add an enum for the number of flash regionsSimon Glass2013-07-191-1/+3
| | | | | | | | | | | | | | | | | | Add an enum for the number of flash regions so we can keep track of all the possible regions. (This is used in U-Boot which wants to declare an array of all possible regions.) BUG=chromium:244019 BRANCH=none TEST=manual Build EC for pit. Change-Id: I494d857f1388dcc5c64b1cd580cf0084bdef0212 Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62701 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Constrain charging voltage to values chargers can provide.Dave Parker2013-07-193-3/+28
| | | | | | | | | | | | | | | BUG=chrome-os-partner:20863 BRANCH=falco,peppy,slippy,wolf TEST=Manual. On Peppy, there should no longer be "Charging Voltage" messages every second on the EC console. On other platforms verify that V_Batt reported by the 'charger' command is divisible by 16. Change-Id: Idd775a1d8033ff3405d10919e1e15ddddebc6c23 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62699 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Peppy: Detect physical presence of battery before waking itDave Parker2013-07-196-10/+47
| | | | | | | | | | | | | | BUG=chrome-os-partner:20889 BRANCH=peppy TEST=Power device without battery. It should boot with no 30 second delay. The battery LED blinks orange indicating a battery error. Change-Id: Iea4f5644ae223b60dc8058dc52e06405e275c001 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/61820 Reviewed-by: Randall Spangler <rspangler@chromium.org> Tested-by: Marc Jones <marc.jones@se-eng.com>
* Add ectool discharge command to Falco and Peppy.Dave Parker2013-07-199-42/+119
| | | | | | | | | | | | | | | | | | Expands and renames ectool 'chargeforceidle' command to 'chargecontrol'. Board-specific calls are needed to enable and disable the discharge while on AC power state. BUG=chrome-os-partner:20506 BRANCH=falco,peppy TEST=Run ectool chargecontrol command with each option (normal, idle, discharge) on Falco and Peppy. Verifiy battery is discharging in discharge mode via EC console 'battery' command. Change-Id: I7ac2b18b4f143bf6abc1e0bb878ad21a99f52100 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/60689 Reviewed-by: Vic Yang <victoryang@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Add EC_CMD_GET_FLASH_INFO version 1Randall Spangler2013-07-188-7/+113
| | | | | | | | | | | | | | | | | | | | | This adds two new fields: the ideal write size for best EC flashing performance (e.g., page mode instead of word mode), and a flags field with a flag to indicate whether the EC erases its bits to 0 or 1. The EC still supports the old version 0 command, since u-boot and flashrom expect that to work. BUG=chrome-os-partner:20973 BRANCH=(all haswell); this will speed up flashing and software sync TEST=ectool flashinfo 1. old EC, new ectool -> only reports version 0 info 2. new EC, old ectool -> only reports version 0 info 3. new EC, new ectool -> reports new fields Change-Id: I484327fe22a58d2b69d7f6ac767b2d3e81b3e0b7 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62378 Reviewed-by: David Hendricks <dhendrix@chromium.org>
* stm32l: Disable interrupts while running from flashSimon Glass2013-07-171-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The curent code ends up creating a veneer for interrupt_enable/disable() which isn't really needed (see below). By calling the interrupt code while still running from flash we can avoid this. I cannot see any problem with the current implementation, but it seems that with this patch I also avoid an exception. BUG=chrome-os-partner:20976 BRANCH=none TEST=manual Build EC and see code generated like this: 200029ec <iram_flash_write>: 200029ec: b538 push {r3, r4, r5, lr} 200029ee: 460d mov r5, r1 200029f0: 4604 mov r4, r0 200029f2: f000 f83d bl 20002a70 <__interrupt_disable_veneer> ... 20002a4a: f000 b809 b.w 20002a60 <__interrupt_enable_veneer> 20002a4e: bf00 nop 20002a60 <__interrupt_enable_veneer>: 20002a60: b401 push {r0} 20002a62: 4802 ldr r0, [pc, #8] ; (20002a6c <__interrupt_enable_veneer+0xc>) 20002a64: 4684 mov ip, r0 20002a66: bc01 pop {r0} 20002a68: 4760 bx ip 20002a6a: bf00 nop 20002a6c: 080007f5 .word 0x080007f5 20002a70 <__interrupt_disable_veneer>: 20002a70: b401 push {r0} 20002a72: 4802 ldr r0, [pc, #8] ; (20002a7c <__interrupt_disable_veneer+0xc>) 20002a74: 4684 mov ip, r0 20002a76: bc01 pop {r0} 20002a78: 4760 bx ip 20002a7a: bf00 nop 20002a7c: 080007f1 .word 0x080007f1 With this patch the veneers go away. Change-Id: Idfe173b4c8d45a142914b2388bcff8ba708c657c Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62243 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Move switch module from chip/lm4 to commonRandall Spangler2013-07-173-7/+7
| | | | | | | | | | | | | | | There's nothing LM4-specific about the switch module; it's just checking GPIOs and updating a memory-mapped register. No code changes; just moving a file. BUG=chrome-os-partner:18343 BRANCH=none TEST=verify switch.c is compiled for link and falco, but not pit or spring Change-Id: I186f3aac1405c7ba8d94b47bb2586c2ad191daba Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/61930
* Split x86 power button logic out of switch.cRandall Spangler2013-07-1718-426/+456
| | | | | | | | | | | | | | | | | | | | | | Power button logic is common across all platforms and is not LM4-specific, so move it to its own module. Switch.c will eventually be moving to common/ and will common across all platforms (not just x86), and splitting out the x86 power button logic is needed before that too. BUG=chrome-os-partner:18343 BRANCH=none TEST=manual 1) power on system with both lid and power button. 2) power+refresh -> reboots 3) power+refresh+esc -> recovery mode 4) power+refresh+downarrow -> reboots, AP stays off 5) toggling recovery GPIO via servo should generate SW debug output showing bit 0x10 toggling Change-Id: I07714e2c035dceece66f90407983397d2697e7d5 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/61780
* Fix extracting CONFIG tokens from config.hRandall Spangler2013-07-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to use cpp -dM instead of -dN, because -dN doesn't process #undef statements. That is, if you have " #define CONFIG_FOO" " #undef CONFIG_FOO" then -dN will happily print both lines, which results in CONFIG_FOO being defined when processing the makefile. -dM processes the defines and undefs so that the resulting list of macros only includes those that are defined. We didn't notice this before, because we temporarily commented out config statements instead of #undef'ing them - or the configs which were undef'd only resulted in conditional non-compilation of pieces of code inside a file instead of the whole file not being compiled. This change also tidily alphabetizes the resulting configs. It also better filters CONFIGs to ensure that " #define __CROS_EC_CONFIG_CHIP_H" does not show up as a CONFIG_CHIP_H token, as it did previously. BUG=chrome-os-partner:20985 BRANCH=none (though may be needed if any future cherry-picked change requires undefining a CONFIG) TEST=Add #undef CONFIG_ADC to the end of config.h and see that the ADC module is not compiled. Also helps to add $(info $(_flag_cfg)) to the Makefile to see the list of tokens, and verify that CONFIG_ADC is not among them. Change-Id: I18db60099e87857473ba54c3c9fff1116d4f1a93 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62230 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* bq24715: compilation fixAaron Durbin2013-07-161-6/+6
| | | | | | | | | | | | | | | | | I accidentally cut and pasted expressions for REG_TO_CURRENT usage in the initializers for the charger_info struct. This obviously causes things to blow up during compilation. BUG=chrome-os-partner:20372 BRANCH=None TEST=Have been using this on bolt. Change-Id: Ie5e2ca10f7a3dce0ccb17b889a173a65451b8c92 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Change-Id: I8ba5da663a1271cba04f57e407eaff96bc052735 Reviewed-on: https://gerrit.chromium.org/gerrit/62208 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* lm4: make configure_kblight_gpios() board dependentAaron Durbin2013-07-163-10/+15
| | | | | | | | | | | | | | The configure_kblight_gpios() funciton was specific to the link board. Therefore, move the function to be defined within the board-specific file. BUG=chrome-os-partner:20372 BRANCH=None TEST=Built. Tested similar change on bolt. Change-Id: Ib5847130450024c50d6526d2c1a64d67ab501637 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62209