summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Flapjack: Embed LCM_ID in SKU_IDstabilize-flapjack-12105.BDaisuke Nojiri2019-04-202-9/+38
| | | | | | | | | | | | | | | | | | | | This patch makes EC embed LCM_ID read from ADC in SKU_ID. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/129569858 BRANCH=none TEST=Read LCM_ID properly Change-Id: Ia0edfec82d40f70f44ecf00dc18564863e8acc2f Reviewed-on: https://chromium-review.googlesource.com/1573202 Commit-Ready: YH Lin <yueherngl@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: YH Lin <yueherngl@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1576627 Commit-Queue: YH Lin <yueherngl@chromium.org> Tested-by: YH Lin <yueherngl@chromium.org>
* CBI: Allow board to compose data from other sourcesDaisuke Nojiri2019-04-202-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the source of CBI data is only EEPROM. This patch allows CBI data to be composed from other sources such as ADC or some chip register. cbi_board_override is called by CBI library when data is being requested. Boards can implement this callback to add additional bits or bytes to the data. A board itself may need to get CBI data first to manipulate data properly. For such a case, a board can return EC_ERROR_BUSY to inform the callers that the data is not fully ready while a board itself can accept EC_ERROR_BUSY as an expected value. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/129569858 BRANCH=none TEST=Read LCM_ID properly Change-Id: Ie1f962c64c8d1461a6c171bc6c6d0c855c82e945 Reviewed-on: https://chromium-review.googlesource.com/1572439 Commit-Ready: YH Lin <yueherngl@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1576626 Reviewed-by: YH Lin <yueherngl@chromium.org> Commit-Queue: YH Lin <yueherngl@chromium.org> Tested-by: YH Lin <yueherngl@chromium.org>
* Common: move for loop initial declarationDiana Z2019-04-181-2/+6
| | | | | | | | | | | | | | | While builds on cros/master allow variables to be initially declared in for loop statements, builds on firmware branches (ex. octopus) may not. BUG=None BRANCH=octopus TEST=builds on master, builds picked to octopus branch Change-Id: I450d8c564b508a5f51a7784ce67b0664ab97d8ba Signed-off-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1570609 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* util/ectool, common/system: Share sysmbol reset_flag_desc.Yilun Lin2019-04-183-34/+55
| | | | | | | | | | | | | | | | | There were two symbols reset_flag_desc and reset_flag_strings used in two separated places: host binary ectool and device. This CL combines these two symbols to reduce maintance efforts. TEST=make buildall -j BRANCH=None BUG=None Change-Id: I3b5731ab08804f46629d6e43466dce963bd86a69 Signed-off-by: Yilun Lin <yllin@google.com> Reviewed-on: https://chromium-review.googlesource.com/1514395 Commit-Ready: Yilun Lin <yllin@chromium.org> Tested-by: Yilun Lin <yllin@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* led_pwm: use NEAR_FULL_COLOR when discharging-on-acCaveh Jalali2019-04-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | when CONFIG_PWR_STATE_DISCHARGE_FULL is enabled for a board, the charge state machine can enter a special PWR_STATE_DISCHARGE_FULL state used to indicate that we're on AC but powering the system from the battery. the system will hover in-and-out of this state over time while on AC. this should generally be transparent to the user, so we should indicate it using the LEDs the same way we indicate PWR_STATE_CHARGE_NEAR_FULL. BUG=b:128709632 BRANCH=none TEST=verified LED stays white on atlas while battery is draining on AC. LED goes out when charger is removed Change-Id: I3af6783bcdbe399a444099fcee8ebab07451ff2c Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1570613 Commit-Ready: Caveh Jalali <caveh@google.com> Tested-by: caveh jalali <caveh@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* mkbp: handle multiple writes of interruptJett Rink2019-04-182-76/+283
| | | | | | | | | | | | | | | | | | | We need to handle the case of multiple tasks trying to set the mkbp interrupt while the host command task is trying to clear it. The setting of the interrupt may also take a while and we need to ensure that we synchronize correct after a longer delay. BRANCH=none BUG=b:129159505 TEST=passing CTS sensor run (except test 133 nullptr) with this change TEST=pass CTS sensor run on eSPI-based system TEST=pass CTS sensor run on GPIO-based system Change-Id: I056b72c1210d7525c29a8555f97e6f09d773d12f Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1560229 Tested-by: Alexandru M Stan <amstan@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* Makefile: Add 'stats:' targetDaisuke Nojiri2019-04-181-0/+5
| | | | | | | | | | | | | | | | | | | | | Currently, only buildall can print flash space stats. This patch adds 'stats:' target, which prints the smallest flash spaces. This target can print flash stats without running other recipes associated with buildall. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=none BRANCH=none TEST=make stats Change-Id: I30e0cb7cda60c4309212024a7b842f6b37d836ff Reviewed-on: https://chromium-review.googlesource.com/1554842 Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
* USB PD: Re-discover port partner when a contract was in placeDiana Z2019-04-184-2/+69
| | | | | | | | | | | | | | | | | | | | | | When the pd_task starts up with an explicit contract previously in place, re-check the partner's identity. This will happen automatically when we EC reset into RO since pd_chipset_startup sets the flag, but for a RO->RW jump the flag needs to be set again. Additionally, exit DP modes before sysjumping, in order to not confuse the port partner with a second enter mode when it had previously been in that mode. BUG=b:125552060 BRANCH=octopus TEST=on unlocked octopus board, plugged in powered HDMI dongle from hibernate state and confirmed display worked after RO->RW jump. Also turned off software sync and confirmed console "sysjump" worked. Change-Id: Idcde6f04deeb8f409a9b4d0a4b3fc924bdb644c7 Signed-off-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1506434 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* ish: move register definitions to register.hJett Rink2019-04-182-23/+10
| | | | | | | | | | | | | | | Move bit field definitions to register.h close to their register location definition. BRANCH=none BUG=none TEST=arcada communication still works Change-Id: I6dfacc24f43a9b8ff490a98c3e231f06f55a1dc6 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1564376 Commit-Ready: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* Flapjack: Cut off battery when USB-C board isn't connectedDaisuke Nojiri2019-04-181-1/+25
| | | | | | | | | | | | | | | | | | | | | | | Currently, when a battery is connected, the device boots immediately. This makes assembly process unreliable. This patch makes EC cut off a battery at start-up if USBC_THERM reads about the pull-up voltage because that indicates a USB-C board isn't connected, which means the devices is being assembled. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/124540674 BRANCH=none TEST=Verify a battery is cut off when a USB-C board isn't connected. Verify a battery isn't cut off when a USB-C board is connected. TEST=Verify ADC reads 715 mV even when the thermistor is iced. Change-Id: Iadc756f8705abe083a5d56b5d8ad080dbff15b6a Reviewed-on: https://chromium-review.googlesource.com/1520950 Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* bloog: Disable ec_feature kbbacklit by SKUIDDevin Lu2019-04-182-0/+18
| | | | | | | | | | | | | | | Remove kbbacklight support with non-kbbacklight SKU. BUG=b:130142249, b:129397770 BRANCH=octopus TEST=make sure ectool inventory doesn't show keyboard backlight support with non-kbbacklight SKU. Change-Id: I820f13fb13c58b63492a6e544e22545e8ee65f4c Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/1568893 Commit-Ready: Marco Chen <marcochen@chromium.org> Reviewed-by: Marco Chen <marcochen@chromium.org>
* bloog: add support keyboard backlightDevin Lu2019-04-181-1/+2
| | | | | | | | | | | | | BUG=b:130142249 BRANCH=octopus TEST=make buildall -j, make sure ec console kbkight can adjust keyboard backlight brightness. Change-Id: I635372efe0b92ff3765de83d9adfe953accd96a1 Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/1535084 Commit-Ready: Marco Chen <marcochen@chromium.org> Reviewed-by: Marco Chen <marcochen@chromium.org>
* *_fp: Add private version infoTom Hughes2019-04-181-0/+3
| | | | | | | | | | | | | | | | | | This shows up when you run the "version" command in the UART console. BRANCH=none BUG=b:130417373 TEST=BOARD=hatch_fp ./util/getversion.sh => shows private version in VERSION BOARD=nocturne_fp ./util/getversion.sh => shows private version in VERSION BOARD=nocturne ./util/getversion.sh => does not show private version in VERSION Change-Id: Ibdf94795bbc8bc823d29ec006b01fc89e8f37114 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1566040 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* bloog: correct accelerometer orientationDevin Lu2019-04-181-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct accelerometer orientation, because differece from meep. BUG=b:130619474 BRANCH=octopus TEST=When device is laying on a table, lid angle at 180, both sensors report gravity along Z axis: ectool motionsense Motion sensing active Sensor 0: 507 606 16748 Sensor 1: 17 -334 16442 Sensor 2: 0 0 0 Sensor 3: 0 0 0 When on the base bottom edge, report gravity along Y axis: ectool motionsense Motion sensing active Sensor 0: 403 16491 655 Sensor 1: 19 16163 1540 Sensor 2: 0 0 0 Sensor 3: 0 0 0 When on its left side, report gravity along X axis: ectool motionsense Motion sensing active Sensor 0: 16172 -374 1738 Sensor 1: 16315 -184 1280 Sensor 2: 0 0 0 Sensor 3: 0 0 0 and check the screen rotation was normally. Change-Id: I20ceab05ac9dce2cba09417a759d6657a185788d Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1569087 Reviewed-by: Justin TerAvest <teravest@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Marco Chen <marcochen@chromium.org> Commit-Queue: Marco Chen <marcochen@chromium.org>
* charge_manager: Move source_port_bitmap definition where it's usedDaisuke Nojiri2019-04-181-5/+4
| | | | | | | | | | | | | | | | | | | This patch moves the definition of source_port_bitmap to the location where it's referenced to increase the readability. There is no functionality change. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=none BRANCH=none TEST=buildall Change-Id: I9dcdc3ec10c2f71b9f95c271f86ba31e436e697c Reviewed-on: https://chromium-review.googlesource.com/1566481 Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* kohaku: Get rid of fan configuration.Tim Wawrzynczak2019-04-182-79/+2
| | | | | | | | | | | | | | Initial implementation was copied from hatch, but Kohaku has no fan. BUG=b:130577450 BRANCH=none TEST=compiles. Change-Id: Icbbf4419000938f07613cb4b32f4e82166741e17 Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1568763 Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* kukui/led: Fix LED behaviours.Yilun Lin2019-04-181-31/+38
| | | | | | | | | | | | | | | | | | | | | Red for error state and discharge in low power. Blue for charging. Green for charged almost full. Also, fix the ectool led battery not working. TEST=See blue LED when charging, green LED when battery full. TEST=see ectool led battery red=x blue=y green=z works. xyz are the combinations from 0 to 7. BUG=b:128812582, b:129720983 BRANCH=None Change-Id: I45d2395197fd9f0713aae8a41ae69c5bc92548b9 Signed-off-by: Yilun Lin <yllin@google.com> Reviewed-on: https://chromium-review.googlesource.com/1568891 Commit-Ready: Yilun Lin <yllin@chromium.org> Tested-by: Yilun Lin <yllin@chromium.org> Reviewed-by: Ting Shen <phoenixshen@chromium.org>
* pd_protocol: Allow charging @ 500mA from Rp-USB.Aseda Aboagye2019-04-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | A USB Type-C ECN "Title: Default Current Clarification for non-USB Devices", allows a sink to draw 500mA based off of a Default USB Rp advertisement. This is especially important for devices which lack the hardware to detect legacy sources via BC 1.2. This commit will now allow those devices to charge at 5V/500mA. BUG=b:117805314,b:124138725 BRANCH=firmware-nocturne-10984.B,master TEST=Flash nocturne, plug in USB-A to USB-C cable, verify cable is detected as a charger and that we charge from it. Change-Id: I1f40cca7246c6d671c7775869da64cf30f649dc4 Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/1431252 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org> (cherry picked from commit 9509f9aa3322fb180f51064309875589c8b90973) Reviewed-on: https://chromium-review.googlesource.com/1565463 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Matthew Blecker <matthewb@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* kukui: remove flashpd/rwhashpd host command from ROTing Shen2019-04-173-2/+16
| | | | | | | | | | | | | | | | | | | | | Kukui is running out of RO space. In order to save more space, we found that these two functions takes ~500 bytes, so it's especially worth removing. RO size before and after: 122056 Apr 11 17:01 build/kukui/RO/ec.RO.flat 121544 Apr 11 18:14 build/kukui/RO/ec.RO.flat BUG=b:120588396 TEST=make buildall -j BRANCH=None Change-Id: I2e08d45093d5ef88516950e8289e559d4421d126 Signed-off-by: Ting Shen <phoenixshen@google.com> Reviewed-on: https://chromium-review.googlesource.com/1564490 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Yilun Lin <yllin@chromium.org>
* hatch/kohaku: Move TCPC definitions to board from baseboardScott Collyer2019-04-176-59/+107
| | | | | | | | | | | | | | | | | | | | Kohaku uses PS8751 for port 0 TCPC. Therefore, the TCPC config and mux config tables can't be common and must be moved out of baseboard into their respective board.c files. BUG=b:130194031 BRANCH=none TEST=make -j buildall Change-Id: Iea39e60d675a5ea0df346c52e78f5f472768984c Signed-off-by: Scott Collyer <scollyer@google.com> Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/1551582 Commit-Ready: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* tcpm: Refactor tcpc_config to include a flags fieldScott Collyer2019-04-1722-60/+96
| | | | | | | | | | | | | | | | | | | | | | | | tcpc_config contained a field for both the alert polarity and open drain/push pull configuration. There is also a possible difference in TCPC reset polarity. Instead of adding yet another field to describe this configuration, it would be better to convert alert polairty, open drain and reset polarity into a single flags field. This CL modifies the tcpc_config struct to use a single flags field and adds defines for what existing flag options can be. BUG=b:130194031 BRANCH=none TEST=make -j buildall Change-Id: Ifb7e7604edb7021fb2d36ee279049eb52fefc99e Signed-off-by: Scott Collyer <scollyer@google.com> Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/1551581 Commit-Ready: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* ish: add missing EOI in LAPIC error irq handlerLeifu Zhao2019-04-171-6/+16
| | | | | | | | | | | | | | | | | The LAPIC LVT error irq handler missed EOI to LAPIC at the end of the handler. BUG=b:129937881 BRANCH=none TEST=tested on arcada Signed-off-by: Leifu Zhao <leifu.zhao@intel.com> Change-Id: I890271729c5ab1d622016c32e83a8068914f69de Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1567105 Tested-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
* flash_fp_mcu: print canonical pathTom Hughes2019-04-161-0/+4
| | | | | | | | | | | | | | | | | This avoids confusion when installing in /usr/local/bin vs /usr/bin. See https://crbug.com/341708 for more details. BRANCH=none BUG=chromium:952447 TEST=emerge-nocturne ec-utils-test && cros deploy nocturne ec-utils-test flash_fp_mcu /opt/google/biod/fw/nocturne_fp_v2.2.110-b936c0a3c.bin Change-Id: Ifba5c668613bc35e24d9466c6e7245b6b862fc90 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1566650 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Nicolas Norvez <norvez@chromium.org>
* TCPC: Set charger vbus during initDiana Z2019-04-151-0/+7
| | | | | | | | | | | | | | | | | | | For some chargers and TCPCs (specifically in this case, BC1.2 charger and ANX7447 combination), the TCPC will not supply a power status changed interrupt after waking from low power mode with the charger plugged in. In this case, we can use the Vbus presence during init in order to alert the charger task. BUG=b:130249342 BRANCH=octopus TEST=checked PD and BC1.2 chargers worked on both ports of phaser, verified they also worked over resets and sysjumps, both locked and unlocked Change-Id: Ie9c581a7b5a21c093a10d3e8d57cf27ac48fa138 Signed-off-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1565170 Reviewed-by: Jett Rink <jettrink@chromium.org>
* USB PD: Suspend ports when resetting TCPCs during cold rebootDiana Z2019-04-151-1/+9
| | | | | | | | | | | | | | | | | | | Currently, when EC cold reboots run, they reset the board's TCPC chips, but do not communicate this fact to the PD tasks. This may lead to the PD tasks reading register values with are incorrect or not yet initialized. Before resetting the TCPCs, put each port into suspend to prevent this. BUG=b:129092057 BRANCH=octopus TEST=Ran several EC resets as well as EC cold reboots with source and sink partners, verified we successfully maintained connection with the port partner without hitting contract disagreements Change-Id: I6d509c4c6b22400b6250e2740e7927be92373802 Signed-off-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1538751 Reviewed-by: Jett Rink <jettrink@chromium.org>
* cr50: sqa: don't modify flags if board id is erasedMary Ruthven2019-04-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Cr50 can only set a board id if the board id is blank. 0xffffffff:0xffffffff:0xffffffff is a blank board id. As SQA images are now if you run eraseflashinfo while the board id isn't set, eraseflashinfo will set the flags to 0 without changing the RLZ information. The BID will be 0xffffffff:0xffffffff:0. This board id isn't considered blank, so you won't be able to set the RLZ in the future. Also the second field is not the inverse of the first, so it will be considered invalid. This is a very bad state to get the board id into because you can't change it, but it's also invalid. This change checks that the board id is set before modifying the flags. Cr50 wont modify the flags of an erased board id. It will only change the flags if the board id is set. BUG=none BRANCH=none TEST=erase the board id. make sure flags aren't set to 0 after running eraseflashinfo. Set the board id. Make sure flags are set to 0 after running eraseflashinfo. Change-Id: Idc184e58c0dc398bc93c1119d822a13889c59963 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1565452 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* g: upgrade_fw: check board id if CR50_RELAXED isn't definedMary Ruthven2019-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | | CL:1529834 mistakenly changed an ifndef to a ifdef. If CR50_RELAXED is defined, contents_allowed should always return True. In a normal image contents_allowed should check the board id before an update. This change changes the ifdef back to ifndef which is what it should be. BUG=none BRANCH=cr50 TEST=create dbg image and try to flash an image with a mismatched board id. Make sure it runs ok. Build a non dbg image and make sure mismatched board id images are rejected. Change-Id: I1dcef5a6af4edbb431fe894ca37df5dc4e1b852e Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1561972 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* signer: allow board id of 0:0:0Mary Ruthven2019-04-151-2/+9
| | | | | | | | | | | | | | | | | | | | | In the prod branch the prod signer sets the board id to FFFF:0:10000, because we're going to start doing automatic signing. We need to be able to override that board id to 0:0:0. bs doesn't support this right now because it always assumes the first field of the given board id is a 4 character string that it needs to convert into hex. This change modifies bs to use 0 for the board_id rlz if the rlz is 0 instead of trying to convert an ascii character into hex. 0 is the only digit bs will accept for the board_id, because it's easy to interpret. BUG=none BRANCH=cr50 TEST=sign image with CR50_BOARD_ID=0:0:0. Make sure gsctool -b shows the RLZ is 0 instead of 0x30. Change-Id: I1fe30877ff8d6d1574934c55c2fb5cdc543c34ad Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1565549 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* util/usb_if: return failure when usb device cannot be claimed.Namyoon Woo2019-04-141-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL returns an error code when usb device finding fails. BUG=none BRANCH=none TEST=manually ran flash_ec on dragonegg in CCD with servod. [Before this CL] ... iteflash -W 0 -c ccd -e -w ${IMG} found interface 5 endpoint 6, chunk_len 64 util/usb_if.c:106, libusb_claim_interface returned -6 (Resource busy) READY <----- should not proceed. ------- Using CCD device util/usb_if.c:127, libusb_bulk_transfer returned -99 (Other error) ... [After this CL] ... iteflash -W 0 -c ccd -e -w ${IMG} found interface 5 endpoint 6, chunk_len 64 util/usb_if.c:106, libusb_claim_interface returned -6 (Resource busy) connect_to_ccd_i2c_bridge: usb_findit returned error -1 dut-control --port=9999 ccd_ec_boot_mode_uut:off dut-control --port=9999 ccd_ec_boot_mode_bitbang:off ... Change-Id: Ibec9828487b2fed5f5a5bc2012b8b9f29d182531 Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1490831 Reviewed-by: Matthew Blecker <matthewb@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org>
* flapjack: Update virtual usb mux info.stabilize-12088.BJessy Jiang2019-04-131-1/+5
| | | | | | | | | | | | | | | | | | | | | | Copy from kukui, update the mux info which would be used by AP. TEST=1. Modify dts, and enable extcon-usbc-cros-ec kernel module 2. cat /sys/devices/platform/*/extcon/extcon0/state, and see when DP plugged: USB=0 USB-HOST=1 DP=1 when DP unplugged: USB=0 USB-HOST=1 DP=0 BUG=b:130338464 BRANCH=None Change-Id: I3ac00e47426d56bf926943d04b91f40391d98deb Reviewed-on: https://chromium-review.googlesource.com/1564492 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Jessy Jiang <jiangchao5@huaqin.corp-partner.google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* Flapjack: Remove pd console command from RODaisuke Nojiri2019-04-131-0/+1
| | | | | | | | | | | | | | | | | | | FAFT no longer needs a workaround to make a DUT detect a USB drive in recovery mode. See chromium:779260 and CL:1545543 for more info. This saves about 1.4 kB. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/129746223,b/127720872 BRANCH=none TEST=buildall Change-Id: If6d7348f97cef02e68e162c22d00a24db5459d69 Reviewed-on: https://chromium-review.googlesource.com/1560339 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* arcada_ish: Tune D0ix idle target residencyRushikesh S Kadam2019-04-131-2/+2
| | | | | | | | | | | | | | | | | Set D0i2 and D0i3 latency values to reasonable safe values, so that we can start exercising D0ix & see power benefits. We shall fine tune further at later stage. BUG=b:130032204 TEST=Verify Power numbers in active & S0ix state BRANCH=none Change-Id: I1cf29dd71f81036894a58009d027fecc9288d037 Signed-off-by: Rushikesh S Kadam <rushikesh.s.kadam@intel.com> Reviewed-on: https://chromium-review.googlesource.com/1558150 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Jett Rink <jettrink@chromium.org>
* octopus: correct GPIO - KB_BL_PWR_EN to UNIMPLEMENTEDMarco Chen2019-04-134-8/+8
| | | | | | | | | | | | | | | | First wave projects don't have any board with keyboard backlight so the GPIO - KB_BL_PWR_EN should be configured by macro of UNIMPLEMENTED instead of output direction. BRANCH=octopus BUG=b:130329644 TEST=buildall Change-Id: I5c37b4b5ec3eb3f629c6d494064a6a27a3a1417c Signed-off-by: Marco Chen <marcochen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1564493 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Diana Z <dzigterman@chromium.org>
* casta:Turn on green led when charge state is idleYongBeum Ha2019-04-131-1/+1
| | | | | | | | | | | | | | Battery led is green when charging is stopped, AC is connected and system is S5. BUG=b:130334341 TEST=Build & flash EC then check battery led. Change-Id: Ib31a94ba5ad9a7e78cc87a3bf1980638ae9599c3 Signed-off-by: YongBeum Ha <ybha@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/1563873 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Jett Rink <jettrink@chromium.org>
* kukui: scp: Make comment for EC_FEATURE_SCP better.Pi-Hsun Shih2019-04-131-1/+1
| | | | | | | | | | | | | | Since SCP is not a feature that EC can "support", change the wording of the comment to explain better. BUG=None BRANCH=None TEST=None Change-Id: I77ad7df0235b6e034047831c602c3017647f2870 Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1560933 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
* kukui_scp/ipi: Add more IPI ID.Yilun Lin2019-04-131-3/+9
| | | | | | | | | | | | | | | | Add more IDs per request from vendor. BRANCH=None TEST=make BOARD=kukui_scp BUG=None Change-Id: I03dc7d98d11ebf386ebd3b7d6fb691af5c707bcd Signed-off-by: Yilun Lin <yllin@google.com> Reviewed-on: https://chromium-review.googlesource.com/1563250 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Yilun Lin <yllin@chromium.org> Reviewed-by: Erin Lo <erin.lo@mediatek.com> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* Makefile: Print free spaces in RO flashDaisuke Nojiri2019-04-131-10/+21
| | | | | | | | | | | | | | | | | | | | Currently, buildall prints only free spaces in RW flash. This patch makes it print smallest free spaces in RO flash as well. If the board doesn't have RO (i.e. #undef CONFIG_FW_INCLUDE_RO), it'll be ignored. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/129746223 BRANCH=none TEST=buildall Change-Id: I953cb6fd998c3868e54be2ea3c2ce0ab51275b64 Reviewed-on: https://chromium-review.googlesource.com/1554841 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* mt_scp: Move ROM_BASE to 0x0.Yilun Lin2019-04-135-29/+2
| | | | | | | | | | | | | | | | | | | | Removes stepping_stone regions, and move ROM_BASE from 0x800 to 0x0. stepping_stone region is to smooth SCP's bringing up stage for being compatible with both original and new implementation. Now that we have done the kernel side driver implementation, we can earn more SRAM space by removing the stepping_stone. TEST=run SCP on kukui, and see it boots. BRANCH=None BUG=b:120825336 Change-Id: I253904592fa0187f627b2eaa3f5d12a17db9960f Signed-off-by: Yilun Lin <yllin@google.com> Reviewed-on: https://chromium-review.googlesource.com/1563871 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Yilun Lin <yllin@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* link_defs.h: Should support __SECTION attr when enable DRAM section.Yilun Lin2019-04-131-1/+1
| | | | | | | | | | | | | | | | DRAM symbols should be specified with __SECTION(dram) so that they can be put into DRAM sections. TEST=None BRANCH=None BUG=b:122058243 Change-Id: Ib8ba9054f27016424faa37d8b20e1f7e93a58c9f Signed-off-by: Yilun Lin <yllin@google.com> Reviewed-on: https://chromium-review.googlesource.com/1563870 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Yilun Lin <yllin@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* ish: add temporary workaround for lost interruptJett Rink2019-04-121-7/+12
| | | | | | | | | | | | | | | | | While we figure out how to fix the root cause for missing interrupts, we can at least get ourselves out of the back scenario by proactively checking if there is a pending IOAPIC interrupt that the LAPIC does not know about. BRANCH=none BUG=b:129937881 TEST=ISH communication does not permanently lock up Change-Id: I766b2764748ae85b17992b3c0020ba7fb4e11693 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1566472 Reviewed-by: Mathew King <mathewk@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* ish: send request id back as response idJett Rink2019-04-121-1/+7
| | | | | | | | | | | | | | | | | | | | The AP needs a way to pair request and response messages as they come in asynchronously or late. This does not help the normal case, but the error case when the responses get behind. BRANCH=none BUG=b:130039715 TEST=See that kernel messages get dropped instead of error because of mismatched size (which is a signal that responses were getting paired up incorrectly) Change-Id: I7ddee42aac03429e4fc6cccd47527cf4776cff04 Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1560651 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Rushikesh S Kadam <rushikesh.s.kadam@intel.com> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org>
* stm32mon: retry on damaged ACK, NACK or timeoutNamyoon Woo2019-04-121-126/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUG=b:112837404 BRANCH=None TEST=manually ran stm32mon or flash_ec on scarlet and DragonTalon. 1. stm32mon via Servo V4 type-C at 57600 bps on scarlet. $ ./util/flash_ec --board scarlet --image ${IMG} \ --bitbang_rate 57600 --verbose 2. stm32mon via Servo V4 type-C at 9600 bps on scarlet. which tends to fail for NACK or timeout. $ ./util/flash_ec --board scarlet --image ${IMG} \ --bitbang_rate 9600 --verbose 3. flash_ec via Servo Micro on scarlet $ ./util/flash_ec --board scarlet --image ${IMG} --verbose 4. flash_ec on DragonTalon via Servo V2 and Servo Micro respectively. $ ./util/flash_ec --board hatch_fp --image ${IMG} --verbose Full log can be found at http://gpaste/5439133910564864 Change-Id: I3c8e8c81d9d12475f5722eaacc932dc1244625d5 Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1540496 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash.md: revised the steps in 'Prerequisites for CR50 CCD'Namyoon Woo2019-04-111-3/+3
| | | | | | | | | | | BRANCH=none BUG=b:124388894 TEST=checked the document through Gitiles. Change-Id: I11fe46a8900ec59edee799157358698e4c0e1cc6 Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1555026 Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* hatch_fp: Fix slave select (NSS / CS) pin managementTom Hughes2019-04-112-3/+57
| | | | | | | | | | | BRANCH=none BUG=b:124996507 TEST=Read HWID from fingerprint sensor (slave) on hatch_fp Change-Id: I344d7e4a5afec1f7c23f45aca593159ba67e89ed Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1558937 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
* make: include iteflash in host-util groupNamyoon Woo2019-04-112-2/+4
| | | | | | | | | | | | | | | | iteflash is a flash tool for ITE EC, and needs to be installed in labstations. iteflash should belong to host-util like other EC flash tools. BUG=b:130036463 BRANCH=None TEST=built and ran iteflash on Ampton using servo_v2, servo_micro and Suzy-Q. Change-Id: If711a26f7d6d3979332b9064313a7e1b87cd594a Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1560143 Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* Flapjack: Read LCM_ID and put into SKU_IDYH Lin2019-04-113-6/+53
| | | | | | | | | | | | | | | | Read/return LCM_ID (from P0d onward) as part of SKU_ID while preserving the compatibility of older boards. BUG=b/129569858 TEST=LCM info should only be printed from P0d onward. BRANCH=none Change-Id: I053982f27fc7e6cc95c626b2d40bddff9ba37bfc Signed-off-by: YH Lin <yueherngl@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1553578 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* Flapjack: Use board_read_id to read BATT_IDDaisuke Nojiri2019-04-113-20/+29
| | | | | | | | | | | | | | | | | This patch makes Flapjack read BATT_ID using board_read_id. There is no functional changes. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/126770302 BRANCH=none TEST=Buildall Change-Id: Iae60f36d6df25cb1aa910fecd721d0740ebe29c0 Reviewed-on: https://chromium-review.googlesource.com/1559104 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* g: clean up UART channel namesVadim Bendebury2019-04-111-6/+5
| | | | | | | | | | | | | | | For some reasons functions dealing with the Cr50 console are using the 'uart_ec' prefx. This patch renames them to match the actual use. BRANCH=cr50, cr50mp BUG=none TEST=make buildall -j still succeeds. Change-Id: Ifc216fdfa1adf42e96e491b65250d1cfa73f8cd4 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1551690 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* button: fix compile error when CONFIG_LED_COMMON not definedTing Shen2019-04-111-0/+2
| | | | | | | | | | | | | | | | Compiler complains about debug_mode_blink_led defined but not used. Fix this. BUG=None TEST=make BRANCH=None Change-Id: I6f5431d0867bc4f37bc1e74d48f4b124305d4012 Signed-off-by: Ting Shen <phoenixshen@google.com> Reviewed-on: https://chromium-review.googlesource.com/1559100 Commit-Ready: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Yilun Lin <yllin@chromium.org>
* ectool: cleanup cmd_fp_seed()Nicolas Norvez2019-04-111-6/+5
| | | | | | | | | | | | | | | | - check |argc| before accessing argv[1] - remove redundant variables/assignments BRANCH=None BUG=None TEST=ectool --name=cros_fp fpseed => fails TEST=ectool --name=cros_fp fpseed aabb => fails (only 4 bytes) TEST=ectool --name=cros_fp fpseed aabb...aabb => succeeds Change-Id: I515de53a2ee3b934da2e930e32d0680375488711 Signed-off-by: Nicolas Norvez <norvez@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1558970 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>