summaryrefslogtreecommitdiff
path: root/util/iteflash.c
Commit message (Collapse)AuthorAgeFilesLines
* iteflash: don't reset EC during flashingDino Li2022-06-281-24/+0
| | | | | | | | | | | | | | The reset is redundant after dbgr_disable_protect_path () routine is introduced. Remove it to avoid i2c transaction failure after erasing. BRANCH=none BUG=none TEST=Flashing Nereid successfully via C2D2. x10 Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Change-Id: Iddd1bf873474d57fda59b89aabd296d8eaadbfd3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3726596 Reviewed-by: Eric Yilun Lin <yllin@google.com>
* iteflash: fix sigactionDonald Huang2021-09-221-1/+5
| | | | | | | | | | | | | | | Clear sigaction to 0. BUG=none BRANCH=none TEST=Check it ok by cherry platform. Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Change-Id: I5d08158bd1aa8262e2abe6917ac7c4732d22fd46 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3162463 Tested-by: Donald Huang <donald.huang@ite.corp-partner.google.com> Reviewed-by: Ting Shen <phoenixshen@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org>
* Reland "iteflash: speed up data write"Ting Shen2021-04-011-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a reland of 3430629ed4e993594d83e9ea22f984f2cf5fce76 Original change's description: > iteflash: speed up data write > > In Cherry/Asurada, around 60% of the flash is not used. Skip writing > empty contents makes flash_ec runs 2x faster. > > BUG=none > TEST=Run `time util/flash_ec --board=cherry --image build/cherry/ec.bin` > Before this patch: 5min 54s > After: 2min 33s > And make sure the content is good. > BRANCH=none > > Signed-off-by: Ting Shen <phoenixshen@google.com> > Change-Id: I6aa5c3c00e2494b87a139f7a09aad9734e68c98d > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2785510 > Reviewed-by: Dino Li <dino.li@ite.corp-partner.google.com> > Reviewed-by: Eric Yilun Lin <yllin@chromium.org> > Commit-Queue: Ting Shen <phoenixshen@chromium.org> > Tested-by: Ting Shen <phoenixshen@chromium.org> Bug: none Change-Id: Icce2ffc404d0e83fa710a5fd1c201e7fbbf10101 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2796376 Tested-by: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org>
* Revert "iteflash: speed up data write"Aseda Aboagye2021-03-311-15/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3430629ed4e993594d83e9ea22f984f2cf5fce76. Reason for revert: Broke EC build util/iteflash.c: In function ‘is_empty_page’: util/iteflash.c:1216:2: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i < size; i++) { ^ Original change's description: > iteflash: speed up data write > > In Cherry/Asurada, around 60% of the flash is not used. Skip writing > empty contents makes flash_ec runs 2x faster. > > BUG=none > TEST=Run `time util/flash_ec --board=cherry --image build/cherry/ec.bin` > Before this patch: 5min 54s > After: 2min 33s > And make sure the content is good. > BRANCH=none > > Signed-off-by: Ting Shen <phoenixshen@google.com> > Change-Id: I6aa5c3c00e2494b87a139f7a09aad9734e68c98d > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2785510 > Reviewed-by: Dino Li <dino.li@ite.corp-partner.google.com> > Reviewed-by: Eric Yilun Lin <yllin@chromium.org> > Commit-Queue: Ting Shen <phoenixshen@chromium.org> > Tested-by: Ting Shen <phoenixshen@chromium.org> Bug: none Change-Id: I5efd9197b934ad8014739b81625475706ad3b39a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2796375 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org>
* iteflash: speed up data writeTing Shen2021-03-301-1/+15
| | | | | | | | | | | | | | | | | | | | In Cherry/Asurada, around 60% of the flash is not used. Skip writing empty contents makes flash_ec runs 2x faster. BUG=none TEST=Run `time util/flash_ec --board=cherry --image build/cherry/ec.bin` Before this patch: 5min 54s After: 2min 33s And make sure the content is good. BRANCH=none Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: I6aa5c3c00e2494b87a139f7a09aad9734e68c98d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2785510 Reviewed-by: Dino Li <dino.li@ite.corp-partner.google.com> Reviewed-by: Eric Yilun Lin <yllin@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
* util/iteflash: ftdi_usb_purge_buffers is deprecatedPatrick Georgi2021-02-241-0/+3
| | | | | | | | | | | | | | | According to http://developer.intra2net.com/mailarchive/html/libftdi/2018/msg00105.html there has been a renaming going on. To support both old and new libftdi disable the deprecation warning (that we then promote to an error). Signed-off-by: Patrick Georgi <pgeorgi@google.com> Change-Id: I1df660cb7e8d8c8a410a8d9ee5e4a45108dad493 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2692690 Tested-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
* extra/util: replace deprecated sys_siglist with strsignalAdrian Ratiu2021-02-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* flash_it83xx: implement --noverifyTing Shen2021-01-071-3/+12
| | | | | | | | | | | | | | | | | | | | Support --noverify to speed up flashing. Note that --noverify is enabled by default in flash_ec script, so people need to add --verify explicitly to back to the old behavior. This reduces ~20% time on my machine (7m45s -> 5m50s). BUG=None TEST=manually, Verify the line "Verify 1048576 bytes at 0x00000000" disappeared. BRANCH=main Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: Ia9e15a2f7221bd0af6da55de0bf90938a7afedeb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2612688 Reviewed-by: Eric Yilun Lin <yllin@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
* tree: rename strtoul to strtoull since it is 64-bitJett Rink2020-11-111-2/+2
| | | | | | | | | | | | | | | 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>
* iteflash: speed up flash (KGD) writeDino Li2020-09-211-52/+33
| | | | | | | | | | | | | | This change saved about 65 seconds in writing (over I2C) KGD 1M bytes part. BUG=none BRANCH=none TEST=Programming IT81202 over I2C. Change-Id: I84cc81dc16ceeabcfd15812a21a411ea660f2f7a Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2391035 Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: speed up flash readDino Li2020-09-031-20/+31
| | | | | | | | | | | | | | | | | | | | To save time, this patch removes unnecessary i2c transactions in reading (verifying) flash. BUG=none BRANCH=none TEST=Read 512k bytes without/with this patch: ======without patch / with patch============= servo v2 : 36s / 14s ( 22s reduced) servo micro: 2m:13s / 1m:04s (1m:09s reduced) c2d2 : 81s / 23s ( 58s reduced) Change-Id: I9dc05e107eaf004c4c2017de9ffe9aa97a0d9c68 Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2379368 Reviewed-by: Jett Rink <jettrink@chromium.org> Commit-Queue: Jett Rink <jettrink@chromium.org>
* iteflash: speed up flash (IT8315) writeDino Li2020-09-021-90/+76
| | | | | | | | | | | | | | | | | | To save time, this patch removes unnecessary i2c transactions in writing flash. BUG=none BRANCH=none TEST=Flashing 512k bytes FW image to EC (IT8320-512/DX): =======without patch / with patch============= servo micro: 11m:03s / 3m:00s (8m:03s reduced) c2d2 : 8m:20s / 1m:30s (6m:50s reduced) Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Change-Id: I935c64ce6521445e1c5804211cb248945d14af7e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2379369 Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: Reset EC's GPIOs while flashingDino Li2020-08-281-4/+64
| | | | | | | | | | | | | BUG=b:161957387 BRANCH=none TEST=- EC's GPIOs go back to default while flashing (No power rails are turned on). - EC will be only reset once after flashing. Change-Id: I776da7f5052219df18d570f23fb7fab93583c7fa Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1270299 Reviewed-by: Jett Rink <jettrink@chromium.org>
* it8xxx(iteflash): Support KGD FlashDonald Huang2020-04-301-14/+255
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KGD flash command is different on the erase and program. =================================================================== Command Eflash KGD Page Program No Support 0x02 (256 bytes) AAI WORD Program 0xAD No Support Sector Erase 0xD7(size:1K bytes) 0x20(size:4K bytes) =================================================================== BUG=none BRANCH=none TEST=Check it ok on IT81202 (cr) (333) donald@donald-Aspire-4752 ~/trunk/src/platform/ec $ sudo ./util/flash_ec --board=it8xxx2_evb INFO: Using servo_v2. INFO: Using ec image : /mnt/host/source/src/platform/ec/build/it8xxx2_evb/ec.bin INFO: Flashing chip it83xx. INFO: Closing servod connection to ftdi_i2c interface INFO: Programming EC firmware image using iteflash... Flash enter follow mode enter follow mode FAILED (-5) !please reset EC if flashing sequence is not starting! Flash enter follow mode enter follow mode FAILED (-5) CHIPID 81202, CHIPVER c0, Flash size 1024 kB Done with sending special waveform. EFLASH TYPE = KGD Disabling watchdog... Disabling protect path... Erasing flash...erase size=1048576 \100% Erasing Done. Writing 524288 bytes at 0x00000000....... \100% Writing Done. Verify 524288 bytes at 0x00000000 \ 99% Verify Done. INFO: Flashing done. INFO: Reinitializing ftdi_i2c interface Change-Id: I639a8d049b8a53085e103c4259a92ae5549c6fe6 Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1736409 Tested-by: Donald Huang <cguwinds@gmail.com> Reviewed-by: Namyoon Woo <namyoon@chromium.org> Commit-Queue: Donald Huang <cguwinds@gmail.com>
* iteflash: honor Ctrl+C signalJett Rink2020-02-251-12/+4
| | | | | | | | | | | | | | | Ensure all configuration (e.g. CCD, FTDI, linux) abort when Ctrl+c is pressed. BRANCH=none BUG=none TEST=Verify the Ctrl+c quits when using linux driver with C2D2 Change-Id: Idc0555ae9689a118d9375f2b31f24cc7d1e61a4b Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2064591 Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* util/iteflash: Close file on error pathPatrick Georgi2019-09-041-0/+1
| | | | | | | | | | | | | | | Found by Coverity Scan #58166 BUG=none TEST=none BRANCH=none Change-Id: I1caa2a407a2c623c006c500a56c7048649ebb158 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1781470 Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* it83xx(iteflash): Support Flash for it8xxx1 or it8xxx2Donald Huang2019-07-251-16/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support 3 Byte Chip ID. Support 3 Byte DBGR Address. Change the flash size determination method. BUG=none BRANCH=none TEST=Check it ok on both it8320 and it8xxx2 series. There are several new chip from ITE. The Chip ID : 81201 81202 83201 83202 We temporarily defined it as it8xxx1 and it8xxx2 series. The new chip id is from 2 bytes to 3 bytes. We verify it ok from Servo V2 + ITE evboard. (cr) (asus-serve-v4) donald@donald-Aspire-4752 ~/trunk/src/platform/ec $ sudo ~/trunk/src/platform/ec/util/flash_ec --board=it83xx_evb INFO: Using servo_v2. INFO: Using ec image : /mnt/host/source/src/platform/ec/build/it83xx_evb/ec.bin INFO: Flashing chip it83xx. INFO: Closing servod connection to ftdi_i2c interface INFO: Programming EC firmware image using iteflash... CHIPID 81201, CHIPVER 40, Flash size 256 kB Done with sending special waveform. Disabling watchdog... Disabling protect path... Erasing flash...erase size=262144 \100% Erasing Done. Writing 262144 bytes at 0x00000000....... \100% Writing Done. Verify 262144 bytes at 0x00000000 \ 99% Verify Done. INFO: Flashing done. INFO: Reinitializing ftdi_i2c interface Change-Id: If17f85cb5d67d262a85d5cdeb89044646c39a0e1 Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1655213 Reviewed-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Donald Huang <cguwinds@gmail.com> Tested-by: Donald Huang <cguwinds@gmail.com>
* LICENSE: remove unnecessary (c) after CopyrightTom Hughes2019-06-191-1/+1
| | | | | | | | | | | | | | | | Ran the following command: git grep -l 'Copyright (c)' | \ xargs sed -i 's/Copyright (c)/Copyright/g' BRANCH=none BUG=none TEST=make buildall -j Change-Id: I6cc4a0f7e8b30d5b5f97d53c031c299f3e164ca7 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1663262 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* iteflash: use serial number to find the ccd deviceMary Ruthven2019-05-141-9/+4
| | | | | | | | | | | | | | | There may be multiple ccd devices connected to the host. Use the serial number to choose the correct device. BUG=none BRANCH=none TEST=try to flash ampton with two CCD devices connected to the host Change-Id: I1554e94f31b5582955ea25c19da2c3da98012e46 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1600502 Reviewed-by: Matthew Blecker <matthewb@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* usb_if: use the device with the matching serial numberMary Ruthven2019-05-121-1/+1
| | | | | | | | | | | | | | There might be multiple devices with the same VID:PID connected to the host. Use the serial number to find the correct device if it is given. BUG=none BRANCH=none TEST=none Change-Id: I96f31e8e7ceb0dd2c3c643771b38752da88a2a9e Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1600500 Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* bip: Delete boardEvan Green2019-04-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | bip has an it8320bx with 256kB of flash space. After dividing by two and subtracting 0x800, this means the RO section of bip is 126kB. This is very tight. We've already removed a few commands to free up space, but this board hasn't been worked on since summer 2018. Delete it to avoid excessive maintenance burden. BUG=b:129283539 BRANCH=none TEST=make -j buildall CQ-DEPEND=CL:1538819,CL:*1086038 Signed-off-by: Evan Green <evgreen@chromium.org> Change-Id: Iac903397dd653c8e012c8b3956807ba1bacf681e Reviewed-on: https://chromium-review.googlesource.com/1536490 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Karthikeyan Ramasubramanian <kramasub@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* common: replace 1 << digits, with BIT(digits)Gwendal Grignou2019-03-261-2/+3
| | | | | | | | | | | | | | | | Requested for linux integration, use BIT instead of 1 << First step replace bit operation with operand containing only digits. Fix an error in motion_lid try to set bit 31 of a signed integer. BUG=None BRANCH=None TEST=compile Change-Id: Ie843611f2f68e241f0f40d4067f7ade726951d29 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1518659 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* iteflash: restore ability to build outside chrootVadim Bendebury2019-03-211-2/+2
| | | | | | | | | | | | | | | | | | | | It looks like ftdi library API is different outside chrtoot, in particular, some parameter pointers are not expected to be const. This patch restores the ability to build ec utils outside chroot. BRANCH=none BUG=none TEST=manual make BOARD=host utils succeeds both inside and outside chroot. Change-Id: I9d470df692821c095b9fab8186cb9dea384e3ad9 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1526488 Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash: Add --block-write-size flag.Matthew Blecker2019-03-211-16/+24
| | | | | | | | | | | | | | | | | | The previous hardcoded block_write_size values remain as defaults. The new flag can be used to override, with any I2C interface. BRANCH=none BUG=b:79684405,b:124388894 TEST=The following servo + board combinations were tested: flash_ec -> iteflash -> servo_micro -> bip flash_ec -> iteflash -> servo_v4 -> servo_micro -> bip flash_ec -> iteflash -> servo_v2 -> bip flash_ec -> iteflash -> servo_v4 -> cr50 -> bip Change-Id: I56d267fb6b9ec4b46abd1738895a1655cdfa9d12 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1523106 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* flash_ec,iteflash: Add support for flashing ITE EC with Servo Micro.Matthew Blecker2019-03-201-83/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In iteflash this adds support for using the Linux i2c-dev interface. When combined with the new i2c-pseudo module and servod's use of it, this allows for iteflash to work with any Servo version with no further code changes, so long as ITE direct firmware update mode can be enabled first. In flash_ec this triggers the special waveform via dut-control -> servod -> servo_micro firmware. When using Servo Micro, I2C is still handled by iteflash, whose communication path is now iteflash -> i2c-dev -> Linux -> i2c-pseudo -> servod -> servo_micro -> DUT. BRANCH=none BUG=b:79684405,b:124388894 CQ-DEPEND=CL:1282275,CL:1300373,CL:1351517,CL:1364327 TEST=The following servo + board combinations were tested: flash_ec -> iteflash -> servo_micro -> bip flash_ec -> iteflash -> servo_v4 -> servo_micro -> bip flash_ec -> iteflash -> servo_v2 -> bip flash_ec -> iteflash -> servo_v4 -> cr50 -> bip Change-Id: If68e86468aae07e29f5922a0fd77f62b9031e9fe Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1301154 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* iteflash: Error when given a non-page boundary read address.Matthew Blecker2019-03-141-5/+12
| | | | | | | | | | | | | | | | | | | Previously command_read_pages() would quietly ignore the last byte of the address. This also makes command_read_pages() address calculation look more like command_write_pages() and command_write_pages2(). BRANCH=none BUG=b:79684405 TEST=flash_ec -> iteflash -> servo_v2 -> bip flash_ec -> iteflash -> servo_v4 -> cr50 -> bip (verification step involves reads) Change-Id: I106263d820bd284474412ddb2215820e498a4900 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1364327 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* iteflash: Fix command_write_pages2() program page address calculation.Matthew Blecker2019-03-141-17/+13
| | | | | | | | | | | | | | | | | | | | Previously this function assumed block_write_size was a multiple of 256 B. This is analogous to the command_write_pages() change in: https://crrev.com/c/1195309 BRANCH=none BUG=b:79684405 TEST=flash_ec -> iteflash -> servo_v2 -> bip flash_ec -> iteflash -> servo_v4 -> cr50 -> bip When combined with further changes to use iteflash -> i2c-dev -> i2c-pseudo -> servod -> servo_micro -> DUT programming path, this fixes block alignment corruption when writing ampton EC firmware. Change-Id: I4aa208559973845ef5e4205935ce7979f98d9d4a Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1363890 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* iteflash: Make disabling of watchdog and protect path optional.Matthew Blecker2019-03-141-5/+31
| | | | | | | | | | | | | | | This adds --nodisable-watchdog and --nodisable-protect-path options. The default behavior remains to disable watchdog and disable protect path. BRANCH=none BUG=b:79684405 TEST=flash_ec -> iteflash -> servo_v2 -> bip flash_ec -> iteflash -> servo_v4 -> cr50 -> bip Change-Id: I243cc20f146ebdfea85091d56e117d65fccfb085 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1507328 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* iteflash: Cleanup interface_post_waveform handling, especially for FTDI.Matthew Blecker2019-03-141-42/+34
| | | | | | | | | | | | | | | This removes some redundant function invocations, and addeds error-checking of interface_post_waveform return value. BRANCH=none BUG=b:79684405 TEST=flash_ec -> iteflash -> servo_v2 -> bip flash_ec -> iteflash -> servo_v4 -> cr50 -> bip Change-Id: Ib8def60963d9e5b2e3ab3ca9ef71b91d5e4fb3ca Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1363689 Reviewed-by: Namyoon Woo <namyoon@chromium.org>
* iteflash: relocate "disable watchdog"Namyoon Woo2019-03-011-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Watchdog should be disabled no matter iteflash sent the special waveform or not. BUG=b:124976364 BRANCH=none TEST=manually ran iteflash or flash_ec on duts with ITE EC. [Bip with Servo V2] $ ./util/flash_ec --board=bip --image ${IMG} [Bip with CCD without ServoD] <send 0x00 at 0xF0 address to trigger special waveform> $ ./build/bip/util/iteflash -W 0 -c ccd -e -w ${IMG} -m [Bip with CCD without ServoD] $ ./build/bip/util/iteflash -W 1 -c ccd -e -w ${IMG} -m [DragonEgg with Servo V2] $ ./util/flash_ec --board=dragonegg --image ${IMG} [DragonEgg with CCD without ServoD] <send 0x00 at 0xF0 address to trigger special waveform> $ ./build/dragonegg/util/iteflash -W 0 -c ccd -e -w ${IMG} [DragonEgg with CCD without ServoD] $ ./build/dragonegg/util/iteflash -W 1 -c ccd -e -w ${IMG} Change-Id: I29ab2a4073e21c6d5c16c8dc8166b81c9630a404 Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1479874 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash: add '-m' flag to config I2C MUX channel.Namyoon Woo2019-02-211-36/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL enables iteflash to config I2C MUX to choose EC channel without Servo/Dut-control. Iteflash in CCD mode used to have servo-independence since DragonEgg, but Octopus ITE boards now have I2C MUX, which needs to be configured. This is to keep this servo-indepence in CCD mode. BUG=b:123901082 BRANCH=none TEST=manually ran iteflash with or without -m on duts with ITE EC. [Ampton] (checked dut_i2c_mux is none.) $ ./build/ampton/util/iteflash -W 1 -c ccd -e -w ${IMG} failed $ ./build/ampton/util/iteflash -W 1 -c ccd -r ${IMG_READ} failed $ ./build/ampton/util/iteflash -W 1 -c ccd -e -w ${IMG} -m $ ./build/ampton/util/iteflash -W 1 -c ccd -r ${IMG_READ} -m [Bip] (checked dut_i2c_mux is none.) $ ./build/bip/util/iteflash -W 1 -c ccd -e -w ${IMG} failed $ ./build/bip/util/iteflash -W 1 -c ccd -r ${IMG_READ} failed $ ./build/ampton/util/iteflash -W 1 -c ccd -e -w ${IMG} -m $ ./build/ampton/util/iteflash -W 1 -c ccd -r ${IMG_READ} -m [DragonEgg] $ ./build/dragonegg/util/iteflash -W 1 -c ccd -e -w ${IMG} $ ./build/dragonegg/util/iteflash -W 1 -c ccd -r ${IMG_READ} $ ./build/dragonegg/util/iteflash -W 1 -c ccd -e -w ${IMG} -m failed $ ./build/dragonegg/util/iteflash -W 1 -c ccd -r ${IMG_READ} -m failed Change-Id: I9be14a350d32f7716c583b1e5d5b568c16d09dbf Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1470782
* util: improve iteflash help outputVadim Bendebury2019-02-191-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some lines in 'itflash --help' output got quite long. This patch modifies the code so that the output looks as follows: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Usage: ./build/host/util/iteflash [-d] [-v <VID>] [-p <PID>] \ [-c <ccd|ftdi>] [-i <1|2>] [-s <serial>] [-u] \ [-e] [-r <file>] [-W <0|1|false|true>] [-w <file>] \ [-R base[:size]] --d[ebug] : output debug traces --e[rase] : erase all the flash content -c, --i2c-interface <ccd|ftdi> : I2C interface to use --i[interface] <1> : FTDI interface: A=1, B=2, ... --p[roduct] <0x1234> : USB product ID [-R|--range base[:size]] - allow to read or write just a slice of the file, starting at <base>:<size> bytes, or til the end of the file if <size> is not specified, expressed in hex --r[ead] <file> : read the flash content and write it into <file> --s[erial] <serialname> : USB serial string --u[nprotect] : remove flash write protect --v[endor] <0x1234> : USB vendor ID -W, --send-waveform <0|1|false|true> : Send the special waveform? Default is true. Set to false if ITE direct firmware update mode has already been enabled. --w[rite] <file> : read <file> and write it to flash ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ BRANCH=none BUG=none TEST=ran 'make BOARD=host utils' and verified that iteflash --help output matches the above. Change-Id: If10f62eb1050f3a92bca612ea854a3d30c0856f7 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1474894 Reviewed-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Matthew Blecker <matthewb@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: correct the typo in i2c-interface help desc.Namyoon Woo2019-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | s/i2c_interface/i2c-interface BUG=none BRANCH=none TEST=manually ran iteflash. $ ./build/ampton/util/iteflash -h ... -c, --i2c-interface <ccd|ftdi> : I2C interface to use ... $ ./build/ampton/util/iteflash --send-waveform=1 --i2c-interface ftdi --erase --write /home/namyoon/octopus/ampton/ec.bin Change-Id: Ibc98fde7341b4a785f0e86793b24c5bc6cc3576b Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1453319 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash: Delete do-nothing --unprotect flag.Matthew Blecker2018-12-061-14/+0
| | | | | | | | | | | | | | | This flag was never implemented. It has quietly done nothing since the inception of iteflash in 2013. BRANCH=octopus BUG=b:23576 TEST=flash_ec with servo_v2 -> bip continues to work Change-Id: I2f4066acd1edb24ae79864c99b686e7bc8293fdb Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1363537 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: allow specifying address range to read.Vadim Bendebury2018-11-071-17/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is handy to be able to quickly assess the sanity of the iteflash programming setup, in particular when verifying it in autotests, and reading of the full flash over CCD takes several minutes. Allowing to read a portion of the flash is a good way to speed up the checks. This patch allows to specify the offset and size of the range to read as extension added to the file name, separated by colons. The same command line option could be extended to use when writing flash, the limitation in that case being that writes are supposed to be page aligned. BRANCH=none BUG=b:75976718 TEST=verified that it is possible to read 256 bytes: $ ./build/dragonegg/util/iteflash -c -r ite.read -R 0:100 && \ \od -Ax -t x1 -v ite.read open_device 18d1:5014 found interface 5 endpoint 6, chunk_len 64 READY ------- Using CCD device Waiting for the EC power-on sequence ...open_device 18d1:5014 found interface 5 endpoint 6, chunk_len 64 READY ------- CHIPID 8320, CHIPVER 83, Flash size 512 kB Done. Reading 256 bytes at 0x00000000 256 bytes read. 000000 48 00 02 80 48 00 02 e6 48 00 02 e4 48 00 02 e2 000010 48 00 02 e0 48 00 02 de 48 00 02 dc 48 00 02 da 000020 48 00 00 50 48 00 00 6e 48 00 00 8c 48 00 00 aa 000030 48 00 00 c8 48 00 00 e6 48 00 01 04 48 00 01 22 000040 48 00 01 40 48 00 01 5e 48 00 01 7c 48 00 01 9a 000050 48 00 01 b8 48 00 01 d6 48 00 01 f4 48 00 02 12 000060 48 00 02 30 00 00 00 00 00 00 00 00 00 00 00 00 000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000080 a5 a5 a5 a5 a5 a5 a4 b4 85 12 5a 5a aa aa 55 55 000090 99 88 77 ce 64 72 61 67 6f 6e 65 67 67 5f 76 32 0000a0 2e 30 2e 32 34 32 2d 38 37 30 35 62 63 36 37 34 0000b0 00 00 00 00 ec ed 01 00 00 00 00 00 dd bb aa ce 0000c0 3a ff be fc 3a 0f 94 3c 3d ef fe 4d 3e 3f d0 c8 0000d0 83 9f e2 7f 41 f1 bc 1b 84 7f 3c 3f fe 4e 49 00 0000e0 05 34 49 00 04 f2 3c 2d fe 50 c2 03 48 00 9c cb 0000f0 49 00 9d a3 3a 0e 14 04 3a fe 3e c0 64 00 00 04 000100 $ Change-Id: If5db6ee0eddde959bfac5742fe55835c5af1f109 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1280925 Commit-Ready: Vadim Bendebury <vbendeb@google.com> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash: by default send ITE SYNC waveformVadim Bendebury2018-11-071-1/+2
| | | | | | | | | | | | | | | | | | | A recent patch changed behavior of iteflash utility such that it does not generate the ITE SYNC sequence unless explicitly requested. Let's keep the previous behavior, especially since all presently available programming modes require sending the sequence. BRANCH=none BUG=b:75976718 TEST=with the rest of the patches applied observed the sync sequence generated be default, as required. Change-Id: I0a83f6ee84722d12372088f0b5269d1036f920a9 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1318292 Commit-Ready: Vadim Bendebury <vbendeb@google.com> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash: re-connect to Cr50 after triggering sync sequenceVadim Bendebury2018-11-051-10/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | ITE SYNC sequence generation now requires rebooting the H1, which means that the USB connection to the CCD host would be shut down. This patch adds closing and re-opening of the connection when itflash requests sending the ITE SYNC sequence. BRANCH=none BUG=b:75976718 TEST=using dragonegg P1 hardware verified that the EC can be reprogrammed over CCD by running the following command: $ ./build/dragonegg/util/iteflash -c -e -w build/dragonegg/ec.bin ... Verify 524288 bytes at 0x00000000 \ 99% Verify Done. $ also verified that the EC is running the new image. Change-Id: I2a485a741d5e90ecc8c5a91f4cf4f29cfee04b73 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1305116 Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* iteflash: Refactor I2C interface and configuration handling.Matthew Blecker2018-11-021-167/+290
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iteflash supports two I2C interfaces, CCD and FTDI. While tracked in an enum, the function calls were handled by many "if" branches. Also, most configuration settings are stored in static global variables. This replaces the "if" branches after initial option parsing with a struct of callbacks, which can be implemented for any I2C interface. This also moves the static global config variables into a config struct, which becomes part of common_hnd which is already passed around ~everywhere. This replaces the -c / --ccd flag with a -c / --i2c-interface flag which takes an argument of an interface name, currently "ccd" or "ftdi", the latter being the default for compatibility with current flash_ec invocation of iteflash. (Refactoring bonus: The new flag can be specified anywhere on the command line.) This adds a -W / --send_waveform boolean flag which can be set explicitly true or false. The default is false, with flash_ec updated to set it to true to maintain the current behavior. This change is in preparation for supporting a third interface type, the Linux i2c-dev interface to Linux kernel I2C adapters. In the long term direct use of FTDI or CCD I2C interfaces may become unused, however at the very least there will need to be a migration period where all three I2C interfaces are supported, and we may want to continue supporting direct use of CCD and possibly FTDI indefinitely. (Both CCD and FTDI / Servo v2 will be supported indirectly via Linux i2c-dev, along with other Servo versions.) BRANCH=none BUG=b:79684405 TEST=With Servo v2 "flash_ec --board=bip" continues to work. Change-Id: I6d96777016d05947acc5b0c073a315dfa2fe72c3 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1300373 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* iteflash: Be more consistent with blank lines and static functions.Matthew Blecker2018-11-011-40/+29
| | | | | | | | | | | | | This is no-op cleanup. BRANCH=none BUG=b:79684405 TEST=With Servo v2 "flash_ec --board=bip" continues to work. Change-Id: I0131bd3f766c574a43e692ffd9a9ef842e4be2df Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1311758 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
* Disable the EC Read/Write Protect register at initial.Donald Huang2018-10-251-1/+23
| | | | | | | | | | | | | BRANCH=no BUG=None TEST=~/trunk/src/platform/ec/util/flash_ec --board=it83xx_evb Change-Id: Ie03605f4d10db0760a7e6e3067837b6f9a21417c Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1286316 Commit-Ready: Dino Li <Dino.Li@ite.com.tw> Tested-by: Dino Li <Dino.Li@ite.com.tw> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: make use of 256 byte pages when programming over CCDVadim Bendebury2018-10-081-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out the write command used by iteflash requires exactly one flash page to be written at a time. Recent usb_i2c protocol enhancement allow to pass up to 4K bytes in one transaction. This patch makes sure that when using CCD exactly one page at a time is programmed. Also, there is no point in trying to sync up more than 10 times. BRANCH=none BUG=b:75976718 TEST=verified that both servo controlled write, running $ make BOARD=dragonegg -j $ ./util/flash_ec --board=dragonegg and direct write over Cr50, running $ make BOARD=dragonegg -j $ cd ./build/dragonegg $ util/iteflash -c -e -w ec.bin succeed. Change-Id: I39c10389dfcccbb32252d8c42fc54bef96330d3a Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1266677 Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: tweak verify_flash()Vadim Bendebury2018-10-081-3/+4
| | | | | | | | | | | | | | | | | | | | There is no point in comparing read buffer with the file contents in case flash contents read back failed. BRANCH=none BUG=none TEST=verified that running $ make BOARD=dragonegg -j $ ./util/flash_ec --board=dragonegg still succeeds when servod is running and the DUT is connected through the servo-v2 board. Change-Id: I8cd33140be4e834490b368df58aa2fd4546fe280 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1266676 Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: do not erase by defaultVadim Bendebury2018-10-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | It could be beneficial to be able to write flash without erasing it explicitly, for instance when programming a brand new chip, or when testing modifications of the iteflash utility. This patch makes sure that flash is erased only if '-e' command line parameter is present. The only place this utility is used by a script in Chrome OS codebase is flash_ec, it is being updated to maintain current behavior. BRANCH=none BUG=none TEST=verified that running $ make BOARD=dragonegg -j $ ./util/flash_ec --board=dragonegg still succeeds when servod is running and the DUT is connected through the servo-v2 board. Change-Id: Ic238b895ff3324cf8c646908610ea3103d2b78c7 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1266675 Reviewed-by: Jett Rink <jettrink@chromium.org>
* it83xx(iteflash): disable watchdog before programming sequenceDino Li2018-10-011-25/+38
| | | | | | | | | | | | | | | | | With this patch, the watchdog reset won't break programming sequence. BUG=b:75976718 BRANCH=none TEST=flashing is done and no watchdog reset. Change-Id: I10b6e000aa872078f047f2a254d99a18092060bd Signed-off-by: Dino Li <Dino.Li@ite.com.tw> Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1247961 Commit-Ready: Jett Rink <jettrink@chromium.org> Tested-by: Donald Huang <cguwinds@gmail.com> Reviewed-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: add ability to program ITE chips over CCDVadim Bendebury2018-09-271-251/+424
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is necessary to be able to program ITE chips using Cr50 as the USB to I2C bridge when Closed Case Debugging (CCD) is enabled. The existing iteflash utility already implements all logic of translating programming commands into sequences of I2C transactions, all what's missing is the ability to send I2C transactions over Cr50 instead of FTDI. This patch adds a new command line option for the iteflash utility, -c for ccd. When given, the utility instead of opening an FTDI connection tries to find a Cr50 USB endpoint for the I2C bridge. A common structure is introduced to communicate the properties of the interface down the stack, such that at the lowest level, when I2C commands need to be synthesized the correct interface is used. Another addition is using a special I2C address to send command to Cr50 to trigger generation of the ITE EC sync sequence (not yet supported on the Cr50 side, implemented in the following patches). BRANCH=none BUG=b:75976718 TEST=verified that iteflash still operates properly - updated the EC image on the dragonegg board. No Cr50 tests yet. Change-Id: Ibcc052b86021c0c4b4dbccadc3fded3100c92ccf Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1212525 Reviewed-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash : enable global resetDonald Huang2018-09-051-8/+16
| | | | | | | | | | | | | | | | | | | | This patch let servo can perform a cold reset after flashing. Add reset flag after erase. BUG=none BRANCH=none TEST=1.make -j BOARD=reef_it8320 2.sudo servod -b reef & 3.~/trunk/src/platform/ec/util/flash_ec --board=reef_it8320 Change-Id: I35620f6a48edce16e028888beed413a8f32a7d8b Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1174191 Commit-Ready: Donald Huang <cguwinds@gmail.com> Tested-by: Donald Huang <cguwinds@gmail.com> Tested-by: Jett Rink <jettrink@chromium.org> Tested-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash : fix program page addressDonald Huang2018-09-031-7/+8
| | | | | | | | | | | | | | | | | | | | | The original program only assign the eflash high byte address. Filled the eflash address for high byte, mid byte , low byte. BUG=none BRANCH=none TEST=1.make -j BOARD=reef_it8320 2.sudo servod -b reef & 3.~/trunk/src/platform/ec/util/flash_ec --board=reef_it8320 It also test ok with different block size as below. Change-Id: I7c27836b667b078e88e0a12a3ea79c97f3de38e3 Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1195309 Commit-Ready: Donald Huang <cguwinds@gmail.com> Tested-by: Donald Huang <cguwinds@gmail.com> Tested-by: Matthew Blecker <matthewb@chromium.org> Reviewed-by: Matthew Blecker <matthewb@chromium.org>
* util/iteflash: Fix resource leakPatrick Georgi2018-07-301-0/+1
| | | | | | | | | | Change-Id: I68008a1ed0d33c5b8c99f7b3d4d8275970c6b04b Signed-off-by: Patrick Georgi <pgeorgi@google.com> Found-by: Coverity Scan #187193 Reviewed-on: https://chromium-review.googlesource.com/1151117 Commit-Ready: Patrick Georgi <pgeorgi@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
* The IT8320DX support 512KB internal flash.Donald Huang2018-07-251-10/+297
| | | | | | | | | | | | | | | | | | | | Support Both IT8320 BX and DX chip. For DX chip ,it supports up to 512KB flash. The patch change the erase(erase sector) and program method in DX chip. BUG=none BRANCH=none TEST=1.make -j BOARD=it83xx_evb 2.sudo ./build/it83xx_evb/util/iteflash -w ./build/it83xx_evb/ec.bin Change-Id: I9f5aed5b80e0019b77f30321ca9e8b8407c38733 Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1132906 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* iteflash: retry the special waveform sequence without delayDonald Huang2018-06-281-3/+0
| | | | | | | | | | | | | | | | | | | | | | On the special case,if you set the I2C pin as GPIO output low status. It can't flash after booting. You can press Reset Button before flash EC FW to do the operation successfully. BUG=none BRANCH=none TEST=1.Set GLK-RVP-ITE board I2C Channel setting as gpio output low (GPIO PIN A4 A5) 2.Flash FW => Fail Flash FW + Press Reset Button => OK Change-Id: I98d650da0792eeb194f5b155805adca25b876319 Signed-off-by: Donald Huang <donald.huang@ite.com.tw> Reviewed-on: https://chromium-review.googlesource.com/1114659 Commit-Ready: Jett Rink <jettrink@chromium.org> Tested-by: Donald Huang <cguwinds@gmail.com> Tested-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>