diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-06-18 15:17:48 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-06-18 16:23:33 -0700 |
commit | bbdc155caf341a4c1cda5784f283f4a299413db6 (patch) | |
tree | ec360a72ed36b067f5cbae708b326556f7ccef6d /util/burn_my_ec.c | |
parent | c5b923d38defc535828e3b5399f03f1350e0dc54 (diff) | |
download | chrome-ec-bbdc155caf341a4c1cda5784f283f4a299413db6.tar.gz |
Optimize performance of flash reads/writes
1) Smaller start delay for commands
2) Reads can use the entire 128 byte parameter space
This improves read speed from 350ms/64kb to 210ms/64kb.
BUG=none
TEST=ectool flashread 81920 81920 then compare with ec.A.bin
Change-Id: I53d460bace5f21db845a3f8ec681507fca0f7b0e
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/25562
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'util/burn_my_ec.c')
-rw-r--r-- | util/burn_my_ec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/util/burn_my_ec.c b/util/burn_my_ec.c index 27a921123a..cb8ead87ac 100644 --- a/util/burn_my_ec.c +++ b/util/burn_my_ec.c @@ -87,9 +87,9 @@ int flash_partition(enum ec_current_image part, const uint8_t *payload, printf("Writing partition %s : 0x%x bytes at 0x%08x\n", part_name[part], size, offset); /* Write data in chunks */ - for (i = 0; i < size; i += EC_FLASH_SIZE_MAX) { + for (i = 0; i < size; i += sizeof(wr_req.data)) { wr_req.offset = offset + i; - wr_req.size = MIN(size - i, EC_FLASH_SIZE_MAX); + wr_req.size = MIN(size - i, sizeof(wr_req.data)); memcpy(wr_req.data, payload + i, wr_req.size); res = ec_command(EC_CMD_FLASH_WRITE, &wr_req, sizeof(wr_req), NULL, 0); @@ -102,9 +102,9 @@ int flash_partition(enum ec_current_image part, const uint8_t *payload, printf("Verifying partition %s : 0x%x bytes at 0x%08x\n", part_name[part], size, offset); /* Read data in chunks */ - for (i = 0; i < size; i += EC_FLASH_SIZE_MAX) { + for (i = 0; i < size; i += sizeof(rd_resp.data)) { rd_req.offset = offset + i; - rd_req.size = MIN(size - i, EC_FLASH_SIZE_MAX); + rd_req.size = MIN(size - i, sizeof(rd_resp.data)); res = ec_command(EC_CMD_FLASH_READ, &rd_req, sizeof(rd_req), &rd_resp, sizeof(rd_resp)); if (res) { |