summaryrefslogtreecommitdiff
path: root/extra
Commit message (Collapse)AuthorAgeFilesLines
* extra/stack_analyzer: EC stack analyzer for Risc-v architecturetim2021-03-101-0/+100
| | | | | | | | | | | | | | | | Add the related stack instructions analysis for Risc-v architecture to calculate stack frame sizes of functions and find the maximum calling path with maximum stack usage in stack analyzer tool. BUG=b:181291750 BRANCH=none TEST=make BOARD=icarus analyzestack Signed-off-by: tim <tim2.lin@ite.corp-partner.google.com> Change-Id: Ieb1ccc3c1631f990adf7dd556f3e876b1a142a71 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2731176 Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
* extra/util: replace deprecated sys_siglist with strsignalAdrian Ratiu2021-02-172-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Starting with Glibc 2.32: * The deprecated arrays sys_siglist, _sys_siglist, and sys_sigabbrev are no longer available to newly linked binaries, and their declarations have been removed from <string.h>. They are exported solely as compatibility symbols to support old binaries. All programs should use strsignal instead. https://sourceware.org/pipermail/libc-announce/2020/000029.html BUG=chromium:1171287 BRANCH=none TEST=Local builds on x86_64 / eve and arm / kevin. Sent SIGINT to iteflash and verified output. Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com> Change-Id: I8b4deaf8743c806a9610863648b345be3b35e1b5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2698188 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Commit-Queue: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
* servo_updater: print available versionRuben Rodriguez Buchillon2021-02-121-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces -p/--print to servo_updater. Rather than performing an update, it will print for the chosen board/channel what firmware is available. See TEST below for output. BRANCH=None BUG=b:179310743 TEST=servo_updater -b servo_micro -c alpha -p board: servo_micro channel: alpha firmware: servo_micro_v2.4.35-f1113c92b // showing py2 compatibility TEST=python2 /usr/lib64/python2.7/site-packages/servo_updater.py -b \ servo_micro --print -c alpha board: servo_micro channel: alpha firmware: servo_micro_v2.4.0-dc38d9bbb Change-Id: I9899e1cacc0496a46a41e94cc9355438a5abe491 Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2674381 Reviewed-by: Brian Nemec <bnemec@chromium.org>
* servo_updater: firmware channel retrieval as a library serviceRuben Rodriguez Buchillon2021-02-121-1/+19
| | | | | | | | | | | | | | | | | | | | | This change introduces the ability of using servo_updater as a library to check whether a firmware string (e.g. the one currently read out from the servo device) belongs to a known channel. If so, the channel will be returned. If not, None is returned to indicate this is an unknown firmware string. This can then be used to warn the user to update, or inform them what channel they are currently running. BRANCH=None BUG=b:179310743 // This is performed with the CL that uses this: chromium:2661015 TEST=sudo servod -b soraka dut-control servo_micro_firmware_channel servo_micro_firmware_channel:stable Change-Id: I49e920c7c7977b7c05828f8464af973f538f7aeb Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2661021 Reviewed-by: Brian Nemec <bnemec@chromium.org>
* servo_updater: consolidate common code-pathRuben Rodriguez Buchillon2021-02-121-31/+41
| | | | | | | | | | | | | | | | | | | | | Commonly the users of servo_updater (as a script, or a file) care about the firmware version string in addition to knowing what the filename is, and the configuration is. These are used to print informational messages, or check whether an update is needed among other things. This change consolidates that logic by making sure that the version string is always extracted when possible. BRANCH=None BUG=b:179310743 TEST=sudo servod -b soraka // observe logs print the servo firmware version information TEST=sudo servo_updater --board servo_micro // observe no errors Change-Id: Id7cb8f53e5fc3e1f557d74445d49fcafbda851ad Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2661020 Reviewed-by: Brian Nemec <bnemec@chromium.org>
* servo_updater: introduce channelsRuben Rodriguez Buchillon2021-02-121-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces the ability to pull an update from a specific channel (i.e. a specific file). See the bug for details on this project, but basically the `servo-firmware` package now bundles multiple firmware in the system, all of which are tagged to belong to a 'channel'. The name of those files is then [board_name].[channel].bin. The updater then now supports the notion of requesting a specific channel to update, if the default (stable) is not desired. Like the previous CL it also leverages choices for argparse to ensure no unknown channels are requested. BRANCH=None BUG=b:179310743 TEST=servo_updater --help | grep channel -c {alpha,dev,prev,stable}, --channel {alpha,dev,prev,stable} TEST=sudo servo_updater --board servo_micro -c alpha Current servo_micro version is servo_micro_v2.4.35-f1113c92b Available servo_micro version is servo_micro_v2.4.35-f1113c92b No version update needed Cq-Depend: chromium:2674405 Change-Id: I88c301cc4ff0ac246cbfda6498c27a1fd23f722f Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2661019 Reviewed-by: Brian Nemec <bnemec@chromium.org>
* servo_updater: cleanup and choicesRuben Rodriguez Buchillon2021-02-041-7/+14
| | | | | | | | | | | | | | | This change has some minor cleanup and introduces the usage of 'choices' to the board argument, to stop errors on argument parsing already. BRANCH=None BUG=b:179310743 TEST=servo_updater --help | grep board -b {c2d2,servo_micro,servo_v4,servo_v4p1,sweetberry}, --board [...] Change-Id: I676a5250d4721a309eec4a50a585a5ed719095b6 Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2661018 Reviewed-by: Brian Nemec <bnemec@chromium.org>
* docs: Run mdformat on all .md filesTom Hughes2021-01-284-129/+138
| | | | | | | | | | | BRANCH=none BUG=b:178648877 TEST=view in gitiles Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I0ac5581ba7bc512234d40dbf34222422afa9c725 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2650551 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* servo_updater.py: Make script more reliable and improve error reportingMichał Barnaś2021-01-211-10/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | Add verifying if jump to region was successful by executing sysinfo after every jump. Add retries if no response to command from servo was received. BUG=b:177673664 BRANCH=main TEST=Prepare a few firmware builds from different commits, to be able to verify if they were successfully flashed. Flash firmware using modified script from extra/usb_updater: sudo ./servo_updater.py -b servo_v4p1 -f <fw> Run servod to connect to servo console and execute command: version Check if both RO and RW sections have the same FW version. TEST=To check error handling, run servod in one terminal, and in another one try flashing firmware. There should be retries due to no response received. After 2-3 retries, close servod and flashing should automatically continue without errors. Signed-off-by: Michał Barnaś <mb@semihalf.com> Change-Id: Ic73e50592fdc5f0f8e2cd9cd2ab4f034ef17e4ec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2633993 Reviewed-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Commit-Queue: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
* stats_manager: formatting fix for md file outputRuben Rodriguez Buchillon2021-01-211-2/+3
| | | | | | | | | | | | | | | | | Minor formatting fix to make sure that .md files are \n terminated. Also a small change in the way we name the logger so that it derives the name directly from the class. BUG=b:174800621 BRANCH=None TEST=sudo servod -c kohaku_rev2_loc0.xml dut-power -t 3 // normal output Change-Id: I3e49068a7b0f3e8908fbcce6a13e083ce8e9216a Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2594689 Reviewed-by: Mengqi Guo <mqg@chromium.org>
* touchpad_updater: implement 512 byte transferTing Shen2021-01-191-32/+76
| | | | | | | | | | | | | | | | | | | Migrate the touchpad probe/update logic from CL:2551939 to touchpad_updater. Also adjust the memory allocation on Zed to allow 512 byte packet. BUG=b:177250972 TEST=On coachz, update detachable fw and run `ec_touchpad_updater -p 504c -f 282.0_2.bin` BRANCH=master Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: Icc7cec1f500dca04d6cdec5b66c10bcce05b67bd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2637304 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
* usb_updater2: fix incorrect console outputTing Shen2021-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | argv[optind] is the index of next arg to be processed, what we want to print here is actually argv[optind - 1]. BUG=None TEST=Run `usb_updater2 -d 18d1:503c -p 208.0_2.0.bin` on Krane and check console output. Before this CL: read 65536(0x10000) bytes from (null) After: read 65536(0x10000) bytes from 208.0_2.0.bin BRANCH=main Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: I45f584672f9c264d350374b43a3dd074b4a4ff7f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2623990 Tested-by: Ting Shen <phoenixshen@chromium.org> Auto-Submit: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Eric Yilun Lin <yllin@chromium.org> Commit-Queue: Eric Yilun Lin <yllin@chromium.org>
* task_set_event: remove the wait argumentDawid Niedzwiecki2020-12-142-4/+3
| | | | | | | | | | | | | | | | | | | | There is an option in the task_set_event function which force the calling task to wait for an event. However, the option is never used thus remove it. This also will help in the Zephyr migration process. BUG=b:172360521 BRANCH=none TEST=make buildall Signed-off-by: Dawid Niedzwiecki <dn@semihalf.com> Change-Id: Ic152fd3d6862d487bcc0024c48d136556c0b81bc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2521599 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
* servo_updater: make more robust on resetsRuben Rodriguez Buchillon2020-12-102-48/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | long-term, we need to pull this into hdctools, rather than reimplement everything twice. Short term, this is a fine solution. It essentially makes sure that 1. we only keep one pty/stm32uart/stm32usb object around for communication 2. we always reset it properly when it could need a reset e.g. when the stm32 is rebooting, or a new firmware was flashed 3. it expands the timeout for the chip to come back to 2s the tiny_servod will eventually also land in hdctools, though for now it just ensures that we can reset the pyusb communication without larger issues and a larger refactor. BUG=chromium:1152838 BRANCH=None // Timeout before change, runs after change TEST=sudo servo_updater --board servo_micro // Timeout before change, runs after change TEST=sudo servo_updater --board sweetberry // Timeout before change, runs after change TEST=sudo servo_updater --board servo_micro --force // to show the serialname support. This is a fake serial, and it gets stuck waiting TEST=sudo servo_updater -s MICRO-S-2009020022 --board servo_micro // to show the serialname support. This is a real serial and it proceeds TEST=sudo servo_updater -s MICRO-S-2009020022 --board servo_micro Change-Id: I747ca69881c13c1aadd8e90a35badecbf4e6a09e Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2580854 Reviewed-by: Otabek Kasimov <otabek@google.com> Reviewed-by: Garry Wang <xianuowang@chromium.org>
* stm32uart: add delay after readingRuben Rodriguez Buchillon2020-12-091-0/+3
| | | | | | | | | | | | | | | | | This implementation of the uart reading code lacks the fix inside hdctools that adds a delay here. Amend the code. BUG=chromium:1152838 BRANCH=None TEST=sudo servo_updater --board servo_micro TEST=sudo servo_updater --board sweetberry TEST=sudo servo_updater --board servo_micro --force Change-Id: I28f62f4553c726f1e63c7404508a5e59ce098990 Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2580853 Reviewed-by: Garry Wang <xianuowang@chromium.org> Reviewed-by: Otabek Kasimov <otabek@google.com>
* stats_manager: add export to b/ friendly .mdRuben Rodriguez Buchillon2020-12-071-18/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change in addition to our copy/paste friendly textfile also outputs a buganizer markdown friendly .md summary of the results, to paste into bugs. BUG=b:174800621 BRANCH=None TEST=dut-power -t 3 Storing .md summaries at: [...]/S?_20201204-104756/onboard_summary.md cat [...]/S?_20201204-104756/onboard_summary.md **Onboard INA** |NAME|COUNT|MEAN|STDDEV|MAX|MIN| |-|-:|-:|-:|-:|-:| |LCD_BL_VOUT_mw|3|0.00|0.00|0.00|0.00| |PP1200_BRIJ_mw|3|0.00|0.00|0.00|0.00| |PP1200_TCPC_C0_mw|3|0.00|0.00|0.00|0.00| |PP1800_EC_mw|3|0.00|0.00|0.00|0.00| |PP1800_SENSORS_mw|3|0.00|0.00|0.00|0.00| |PP1800_VR_mw|3|0.00|0.00|0.00|0.00| |PP3300_A_R_mw|3|0.00|0.00|0.00|0.00| |PP3300_EC_STBY_mw|3|0.00|0.00|0.00|0.00| |PP3300_EC_mw|3|0.00|0.00|0.00|0.00| |PP3300_H1_mw|3|0.00|0.00|0.00|0.00| |PP3300_HUB_mw|3|0.00|0.00|0.00|0.00| |PP3300_PD_A_mw|3|0.00|0.00|0.00|0.00| |PP3300_PD_EC_mw|3|0.00|0.00|0.00|0.00| |PP3300_TCPC_C0_mw|3|0.00|0.00|0.00|0.00| |PP5000_A_mw|3|0.00|0.00|0.00|0.00| |PPVAR_BAT_R_mw|3|0.00|0.00|0.00|0.00| |PPVAR_BAT_mw|3|0.00|0.00|0.00|0.00| TEST=pytest stats_manager_unittest.py 21 passed TEST=python2 -m py.test stats_manager_unittest.py 21 passed Change-Id: I94e2d00721e744614838992604cd7a3124c0e39f Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2573736 Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org>
* fw_update: fix python3 incompatibilityRuben Rodriguez Buchillon2020-11-191-1/+1
| | | | | | | | | | | | | | In py3 bytearrays are real, so we need to use 'encode' to make sure the right command is being sent BRANCH=None BUG=None TEST=None Change-Id: I28e6390d99563731f07e42a161065469aa009b11 Signed-off-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2548685 Reviewed-by: Dossym Nurmukhanov <dossym@chromium.org>
* fw_update: Pass bytes into `wr_command` functionYilin Yang2020-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | In `wr_command` function, we use `bytearray` to wrap the bytes argument. However, if we pass a `str` type to `bytearray` constructor, we need to specify the encoding. In this case, we need to use `bytes` here. BUG=b:172978731 BRANCH=master TEST=1. cros_workon --host start hdctools ec-devutils 2. sudo emerge hdctools ec-devutils 3. The fix applies into chroot TEST=ODM verifies in their side Signed-off-by: kerker <kerker@chromium.org> Change-Id: I57609c36e639cd6bd116b6f2f3a1baff02312070 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2543567 Tested-by: Henry Sun <henrysun@google.com> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Henry Sun <henrysun@google.com>
* tree: rename strtoul to strtoull since it is 64-bitJett Rink2020-11-114-10/+10
| | | | | | | | | | | | | | | A long is 32-bit, but a long long is 64-bit. The function name should be strtoull if it is returning 64 bits of data. BRANCH=none BUG=b:172592963 TEST=builds Signed-off-by: Jett Rink <jettrink@chromium.org> Change-Id: I04c40f9256ed37eb1cf9b6bd1b0ef0320fe49b0c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2530874 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* servo_updater: Add timeout on the pty flushBrian J. Nemec2020-10-211-2/+8
| | | | | | | | | | | | | | | | | | | If the servo is in a loop where it sends output on a continuous basis, the flush operation needs to eventually timeout. If the servo sends commands out faster than the timeout provided to the expects() call, it would never advance. This blocked the servo_updater from advancing. BUG=b:162628581 TEST=Connect Servo_v4p1 to DUT validate servo_updater works TEST=Modify Servo firmware to generate many console messages in a loop. Validate that the flush operation succeeds and servo updater still works. Change-Id: I8c0e65a0733b4d4ee25a9f9c866aa2b863cb0e5a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2487256 Reviewed-by: Matthew Blecker <matthewb@chromium.org> Tested-by: Brian Nemec <bnemec@chromium.org> Commit-Queue: Brian Nemec <bnemec@chromium.org>
* tigertool: Migrate tigertool.py to python2/3 compatibleYilin Yang2020-09-291-2/+4
| | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=None Signed-off-by: kerker <kerker@chromium.org> Change-Id: I50b9aa6724bc6d9db5c7f743909d81c0b2dfc849 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2431319 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* ecusb: Fix subprocess argument to make it py2/3 compatibleYilin Yang2020-09-262-8/+13
| | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=None Signed-off-by: kerker <kerker@chromium.org> Change-Id: I78713f635e00cf01e1df641436b3a6d2f5c3c00b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2431318 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* usb_serial: Migrate console.py to python2/3 compatibleYilin Yang2020-09-261-15/+26
| | | | | | | | | | | | | | | Trace pyusb source code to make sure the correct interface, and change them properly. BUG=chromium:1031705 BRANCH=master TEST=None Signed-off-by: kerker <kerker@chromium.org> Change-Id: I185bf8a7d47f641f6554ba2d36a11d56967661b0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2422929 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* usb_updater: Migrate fw_update.py to python2/3 compatibleYilin Yang2020-09-261-3/+4
| | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=None Signed-off-by: kerker <kerker@chromium.org> Change-Id: I00a1c0868980e9b8a03ad13ea000fbe94ef3192f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2425791 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* usb_updater: Migrate servo_updater.py to python2/3 compatibleYilin Yang2020-09-264-7/+22
| | | | | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=`sudo python3 ./extra/usb_updater/servo_updater.py -b servo_v4 --force` shows "update complete". TEST=`sudo python2 ./extra/usb_updater/servo_updater.py -b servo_v4 --force` shows "update complete". Signed-off-by: kerker <kerker@chromium.org> Change-Id: I632203b9eca4aa99dc63063c37f0ab5fc2e54dbb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2425784 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* usb_power: Migrate convert_servo_ina.py to python2/3 compatibleYilin Yang2020-09-251-4/+6
| | | | | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=` python2 convert_servo_ina.py kevin_r0_loc.py` can produce the same output as before TEST=` python3 convert_servo_ina.py kevin_r0_loc.py` can produce the same output as before Signed-off-by: kerker <kerker@chromium.org> Change-Id: Ieb162902cb00b3ece5d70921ed806ba204136221 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2422065 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* usb_power: Migrate convert_power_log_board.py to python2/3 compatibleYilin Yang2020-09-251-6/+9
| | | | | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=`python3 convert_power_log_board.py board/kevin/kevin.board` can produce the same output as before TEST=`python2 convert_power_log_board.py board/kevin/kevin.board` can produce the same output as before Signed-off-by: kerker <kerker@chromium.org> Change-Id: I681c4ff2d7c98ad25f516982a5bc4ebb1b8caee4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2422064 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* stack_analyzer: Migrate to python3Yilin Yang2020-09-253-38/+47
| | | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=stack_analyzer_unittest.py TEST=`make BOARD=kukui SECTION=RO analyzestack` runs successfully Signed-off-by: kerker <kerker@chromium.org> Change-Id: I4027c9c21bdf5fb456430231f1e9bfefed3e8fdb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2419737 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
* usb_spi: Remove stm32spi.py since no one uses itYilin Yang2020-09-241-140/+0
| | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=None Signed-off-by: kerker <kerker@chromium.org> Change-Id: Idf4f5342da6b3f3307e1948c165d44b83031543a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2425983 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* usb_power: Migrate powerlog.py to python2/3 compatibleYilin Yang2020-09-241-5/+7
| | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=`python3 powerlog_unittest.py` pass TEST=`python2 powerlog_unittest.py` pass Signed-off-by: kerker <kerker@chromium.org> Change-Id: I8507a1a5dd4ad06c6311a7d9259a23b8a6377f6a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2422063 Reviewed-by: Hung-Te Lin <hungte@chromium.org>
* usb_power: Migrate stats_manager.py to python2/3 compatibleYilin Yang2020-09-241-7/+9
| | | | | | | | | | | | BUG=chromium:1031705 BRANCH=master TEST=`python3 stats_manager_unittest.py` pass TEST=`python2 stats_manager_unittest.py` pass Signed-off-by: kerker <kerker@chromium.org> Change-Id: I4414eb99519ae43b1d94cebaea849a9b98beeb5d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2422062 Reviewed-by: Hung-Te Lin <hungte@chromium.org>
* COIL: change usage of sanityDaisuke Nojiri2020-08-141-4/+2
| | | | | | | | | | | | | | | | Google is working to change its source code to use more inclusive language. To that end, replace the term "sanity" with inclusive alternatives. BUG=b:163885307 BRANCH=None TEST=make -j buildall TEST=grep -ir sanity Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I487a50999d506a0337f1d3fbe173f193e5e4098a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2353516 Reviewed-by: Sam Hurst <shurst@google.com>
* ec: change usage of dummySam Hurst2020-08-051-13/+13
| | | | | | | | | | | | | | | | | | Google is working to change its source code to use more inclusive language. To that end, replace the term "dummy" with inclusive alternatives. BUG=b:162781382 BRANCH=None TEST=make -j buildall `grep -ir dummy *` The only results are in "private/nordic_keyboard/sdk8.0.0" which is not our code. Signed-off-by: Sam Hurst <shurst@google.com> Change-Id: I6a42183d998e4db4bb61625f962867fda10722e2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2335737 Reviewed-by: Tom Hughes <tomhughes@chromium.org>
* powerlog: fix "SusbError is not defined"David Herrig2020-07-311-1/+1
| | | | | | | | | | | | | | | | SusbError is not defined in powerlog.py This change raises Exception type instead. BUG=none BRANCH=none TEST=powerlog [..] -A=garbage => raises Exception: ('Power', 'USB device(garbage) not found') Change-Id: I8167a50796fec81f0fdf84d58e2e565f574c4f51 Signed-off-by: David Herrig <dherrig@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2324868 Reviewed-by: Nick Sanders <nsanders@chromium.org> Reviewed-by: Mengqi Guo <mqg@chromium.org>
* ec: change usage of whitelist/blacklistPaul Fagerburg2020-07-281-1/+1
| | | | | | | | | | | | | | | | | | | Google is working to change its source code to use more inclusive language. To that end, replace the terms "whitelist", "blacklist", and similar with inclusive alternatives. BUG=b:162262297 BRANCH=None TEST=`grep -Eirl "(white|black)[ _\-]*list" .` The only results are in "private/nordic_keyboard/sdk8.0.0" which is not our code. Signed-off-by: Paul Fagerburg <pfagerburg@google.com> Change-Id: Ie5210b98e1096c22d0e9284c101a42820bd3d79d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2321549 Tested-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
* ec: change usage of "sane" per inclusive languagePaul Fagerburg2020-07-221-4/+4
| | | | | | | | | | | | | | | | Google is working to change its source code to use more inclusive language. To that end, replace the terms "sane", "sanity check", and similar with inclusive/non-stigmatizing alternatives. BUG=b:161832469 BRANCH=None TEST=`make buildall -j` succeeds. `grep -Eir "sane|sanity" .` shows results only in third-party code or documentation. Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org> Change-Id: I29e78ab27f84f17b1ded75cfa10868fa4e5ae88c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2311169 Reviewed-by: Jett Rink <jettrink@chromium.org>
* docs: update CCD docs locationsVadim Bendebury2020-07-101-1/+3
| | | | | | | | | | | | | BRANCH=none BUG=none TEST=verified that gitfiles points at the correct documents. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Change-Id: I6123e74449d6dbda1645f4293dd24914ccaf0d37 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2276330 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Commit-Queue: Tom Hughes <tomhughes@chromium.org>
* servo_updater: Updates the Servo V4.1 nameBrian J. Nemec2020-06-022-1/+3
| | | | | | | | | | | | | | | | | | | | | | Updates the Servo V4.1 name from 'servo_v41' to 'servo_v4p1' and the corresponding files and fields. As the VID:PID is used to identify the device, no other changes are required. BUG=b:157059356 BRANCH=servod TEST=Updated the ServoV4.1 from 'servo_v41_v2.0.3735+440cf71e0' to 'servo_v4p1_v2.0.4232-514cb4e92' to verify the servo_updater supports renames. TEST=Verified servo_v4p1 manually: Validated console, firmware update, and servod can connect to the device. Signed-off-by: Brian Nemec <bnemec@chromium.org> Depends-On: Ia05134179fab4ff118355ba9b3b1b92cdf0748f2 Change-Id: Ie470469bf9115bbfef14a08c02b156dcd5aed849 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2219124 Tested-by: Brian Nemec <bnemec@chromium.org> Reviewed-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org>
* i2c-pseudo: Bring in FROMLIST v4 changes.Matthew Blecker2020-05-211-3/+4
| | | | | | | | | | | | | | | | | | | | Changes in this diff: - Documentation: I2C addresses on the controller streams are right-aligned without any read/write bit. - Documentation: fix "transacton" -> "transaction" typo Patch v4 on linux-i2c: https://lore.kernel.org/linux-i2c/20200521002907.176922-1-matthewb@chromium.org/ https://patchwork.ozlabs.org/project/linux-i2c/patch/20200521002907.176922-1-matthewb@chromium.org/ BRANCH=none BUG=none TEST=none (only documentation changes) Change-Id: I1673e8bbd4135e7905342fc2cbcb9fb415a77256 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2210834 Reviewed-by: Harry Cutts <hcutts@chromium.org>
* i2c-pseudo: Fall back on nonseekable_open when stream_open is unavailable.Matthew Blecker2020-05-193-1/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The FROMLIST revision of i2c-pseudo is targeted at the newest Linux versions, which have new stream_open function and it is preferred for a pure I/O stream device. However updating to the FROMLIST i2c-pseudo broke compilation with older kernels that lack stream_open. Since Linux kernel versions as old as 4.18 are still in common use among Chrome OS developers, this fixes compatibility by checking for nonseekable_open and stream_open symbols. nonseekable_open is only used when stream_open is not found and nonseekable_open is found. Otherwise stream_open is used. BRANCH=none BUG=none TEST=With Linux 4.18 and Linux 5.2: $ make $ # With 4.18 matches nonseekable_open, with 5.2 matches stream_open. $ strings i2c-pseudo.ko | grep -E -m1 '^(nonseekable_open|stream_open)$' $ make clean $ ./install Signed-off-by: Matthew Blecker <matthewb@chromium.org> Change-Id: I62c44b1b63e7c4c6a9683be547baa341747f5efa Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2205294 Reviewed-by: Harry Cutts <hcutts@chromium.org>
* i2c-pseudo: Bring in FROMLIST v3 revision.Matthew Blecker2020-05-192-158/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly a copy of: https://lore.kernel.org/linux-i2c/20200511234817.59365-1-matthewb@google.com/ https://patchwork.ozlabs.org/project/linux-i2c/patch/20200511234817.59365-1-matthewb@google.com/ Changes in this diff: - Move anprintf() into i2c-pseudo.c. - Use sizeof_field() instead of FIELD_SIZEOF(). - Add CONST_STRLEN macro for i2cp_cmds[].cmd_size values, because on some architectures strlen("literal") is not a compile-time constant. - Use stream_open() instead of nonseekable_open(). - When copy_from_user() returns non-zero, return -EFAULT instead of 0. BRANCH=none BUG=none TEST=With Linux 5.2: $ make $ make clean $ ./install Signed-off-by: Matthew Blecker <matthewb@chromium.org> Change-Id: Idd2b7a2c5630e95de3021c1920ded4cf303db721 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2205293 Reviewed-by: Harry Cutts <hcutts@chromium.org>
* cr50_rma_open: raise an error if cr50 is too oldMary Ruthven2020-05-181-2/+2
| | | | | | | | | | | | | | At this point images with testlab support are available. Fail if cr50 is running a prod image that is too old. BUG=none BRANCH=none TEST=none Change-Id: I096502417c4a44b4a2f458a2a5601de2d154d5cf Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2207572 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* cr50_rma_open: fix version checkMary Ruthven2020-05-181-6/+6
| | | | | | | | | | | BUG=none BRANCH=none TEST=script works with a cr50 running 0.6.2 Change-Id: I14cfd8d90bff40843493d22576307421524d3350 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2207571 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* servo_updater: Re-add board name's to servo_updaterBrian J. Nemec2020-05-081-1/+5
| | | | | | | | | | | | | | | | | | | | Adds the board names back into servo_updater. These are used by manufacturing scripts in hdctools to identify which strings to pass to servo_updater. BUG=b:154527792 TEST=sudo emerge chromeos-base/ec-devutils Verified that emerge was successful TEST=sudo servo_updater Verified that the ServoV4 configuration is default TEST=sudo mfg_c2d2 Verified that C2D2 is used as target Change-Id: I75f7a8bcdd2c87951917f7ea3ec57f9288fda862 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2157570 Tested-by: Brian Nemec <bnemec@chromium.org> Reviewed-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Commit-Queue: Brian Nemec <bnemec@chromium.org>
* i2c-pseudo: Fix wrong word in ADAPTER_START documentationMatthew Blecker2020-05-021-1/+1
| | | | | | | | | | | BRANCH=none BUG=none TEST=none Change-Id: Ia8c99a4d68ba350f03cafa6457e673b8ca66a737 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2176179 Reviewed-by: Harry Cutts <hcutts@chromium.org>
* servo_updater: Add Servo V4.1 to flash and servo updaterBrian J. Nemec2020-04-082-17/+30
| | | | | | | | | | | | | | | | | | | | | | | | | Adds the Servo V4.1 to the servo updater as the target 'servo_v41'. Some minor cleanup was done on the servo_updater logic to make it clearer which issue is occurring and to address common substrings in 'servo_v4' and 'servo_v41' by extracting the binary name from the config files directly rather than inferring from the name. BUG=b:153391164 TEST=sudo emerge chromeos-base/ec-devutils TEST=flash_ec --board=servo_v41 --image ec.bin Verify the flash_ec using the STM32 DFU to flash the image on reworked board with compatible BC1.2 change TEST=sudo servo_updater -b servo_v41 Verify the servo_updater finds the latest servo_v4.1 version and flashes it TEST=Attempted to flash V4 and V41 devices with each other's images verified that the checks prevent flashing the other version. Change-Id: I77d94ce9a641f39b7ee446af05e52441b7762c96 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2138638 Tested-by: Brian Nemec <bnemec@chromium.org> Reviewed-by: Ruben Rodriguez Buchillon <coconutruben@chromium.org> Commit-Queue: Brian Nemec <bnemec@chromium.org>
* i2c-pseudo: Add udev ruleDavid Schneider2020-04-072-0/+9
| | | | | | | | | | | | | | | | This removes the need for servod and iteflash to run as root when run from outside the chroot. BRANCH=none BUG=b:153196340 TEST=ran script outside chroot and confirmed permissions Change-Id: I4bb9230eb4f581ddb3a095fc5fec0f56c7c573eb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2136338 Reviewed-by: Matthew Blecker <matthewb@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Commit-Queue: David Schneider <dnschneid@chromium.org> Tested-by: David Schneider <dnschneid@chromium.org>
* servo_updater: Do not raise ServoUpdaterException on module importstabilize-12997.B-masterYu-Ping Wu2020-03-211-25/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | External tools such as platform/dev/contrib/dut-console may import servo_updater as a module. On import time, this module will check the existence of FIRMWARE_PATH and potentially raise ServoUpdaterException, which is unnecessary if the function the importing program calls does not have reference to the global variable FIRMWARE_PATH (for example, find_available_version()). In addition, there is only one function, findfiles(), that is currently using FIRMWARE_PATH and other similar global variables. Therefore, move the check for path existence inside findfiles(), so that ServoUpdaterException will not be raised on module import time. Also add servo board name constants to servo_updater to reduce duplicate string literals. BRANCH=none BUG=chromium:1061354 TEST=Run 'sudo servod -b kukui -m jacuzzi' and make sure findfiles() is called without exceptions Cq-Depend: chromium:2102179 Change-Id: I0179c44ba2a3947cb26035d97cd1ebeb453ef67a Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2102247 Reviewed-by: Wai-Hong Tam <waihong@google.com>
* remove cr50 related filesNamyoon Woo2020-03-095-3560/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUG=b:149350081 BRANCH=none TEST=build all, and emerged ec related packages for host and octopus. $ make buildall -j $ cros_workon --host list chromeos-base/chromeos-cr50-dev chromeos-base/chromeos-ec chromeos-base/chromeos-ec-headers chromeos-base/ec-devutils chromeos-base/ec-utils chromeos-base/ec-utils-test dev-util/hdctools $ sudo emerge chromeos-cr50-dev -j $ sudo emerge chromeos-ec -j $ sudo emerge chromeos-ec-headers -j $ sudo emerge ec-devutils -j $ sudo emerge ec-utils -j $ sudo emerge ec-utils-test -j $ sudo emerge hdctools -j $ cros_workon-octopus list chromeos-base/chromeos-ec chromeos-base/chromeos-ec-headers chromeos-base/ec-devutils chromeos-base/ec-utils chromeos-base/ec-utils-test dev-util/hdctools $ sudo emerge-octopus chromeos-ec -j $ sudo emerge-octopus chromeos-ec-headers -j $ sudo emerge-octopus ec-devutils -j $ sudo emerge-octopus ec-utils -j $ sudo emerge-octopus ec-utils-test -j $ sudo emerge-octopus hdctools -j Signed-off-by: Namyoon Woo <namyoon@chromium.org> Change-Id: If751b26b0635b0021c077338e96eaa8e8dcf17a5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2080631 Reviewed-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* cr50_rma_open: fix linter errorsMary Ruthven2020-02-141-193/+178
| | | | | | | | | | | | | | Fix errors from pylint. Use logging to print messages instead of print. BUG=b:149405690 BRANCH=none TEST=RMA open a device and enable testlab mode. Change-Id: I63a8b108b0f436291659f2f787ebcf72e8f4a523 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2052269 Reviewed-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Wai-Hong Tam <waihong@google.com>