diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-06-27 14:42:39 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-07-01 16:14:15 -0700 |
commit | 2730daa5679bc0d2a048a60055a7dc89d060076e (patch) | |
tree | 8b8326fb10cf694ab551d955bd8c1bcb8ecff1cc /util/ec_flash.c | |
parent | 267dbb74d28e4d5d13e892488563ab439398513d (diff) | |
download | chrome-ec-2730daa5679bc0d2a048a60055a7dc89d060076e.tar.gz |
Comm interface now provides max I/O sizes and preallocated buffers
The maximum packet / param size differs depending on interface and
protocol version. Commands can now ask the comm interface what the
limits are, and can use preallocated buffers to avoid needless
malloc/free.
BUG=chrome-os-partner:20571
BRANCH=none
TEST=the following all work on link
burn_my_ec
ectool version
ectool chargedump
ectool console
ectool i2cxfer 5 0x41 2
Change-Id: Ib847994da3f79721e7fb4e347231b9147a3f485f
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/60275
Diffstat (limited to 'util/ec_flash.c')
-rw-r--r-- | util/ec_flash.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/util/ec_flash.c b/util/ec_flash.c index f776240e58..0c9c698600 100644 --- a/util/ec_flash.c +++ b/util/ec_flash.c @@ -15,22 +15,20 @@ int ec_flash_read(uint8_t *buf, int offset, int size) { struct ec_params_flash_read p; - /* TODO(rspangler): need better way to determine max read size */ - uint8_t rdata[EC_HOST_PARAM_SIZE - sizeof(struct ec_host_response)]; int rv; int i; /* Read data in chunks */ - for (i = 0; i < size; i += sizeof(rdata)) { + for (i = 0; i < size; i += ec_max_insize) { p.offset = offset + i; - p.size = MIN(size - i, sizeof(rdata)); + p.size = MIN(size - i, ec_max_insize); rv = ec_command(EC_CMD_FLASH_READ, 0, - &p, sizeof(p), rdata, sizeof(rdata)); + &p, sizeof(p), ec_inbuf, p.size); if (rv < 0) { fprintf(stderr, "Read error at offset %d\n", i); return rv; } - memcpy(buf + i, rdata, p.size); + memcpy(buf + i, ec_inbuf, p.size); } return 0; |