diff options
author | Anton Kochkov <anton.kochkov@gmail.com> | 2010-06-29 21:13:20 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2010-06-29 21:13:20 +0000 |
commit | 7e59f769ef02599a6e88df7443780727dc64e3ca (patch) | |
tree | 0107a088d81e0577899e47265ab64cc61afbf3a0 /util/ectool/ec.c | |
parent | 9a82eebe1a60ed5e49fbfc14cbe006c320846f01 (diff) |
Add support to extended EC series
Signed-off-by: Anton Kochkov <anton.kochkov@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5650 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/ectool/ec.c')
-rw-r--r-- | util/ectool/ec.c | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/util/ectool/ec.c b/util/ectool/ec.c index 35c8d789ab..233e9ba459 100644 --- a/util/ectool/ec.c +++ b/util/ectool/ec.c @@ -38,7 +38,7 @@ int send_ec_command(uint8_t command) debug("."); } if (!timeout) { - printf("Timeout while sending command 0x%02x to EC!\n", + debug("Timeout while sending command 0x%02x to EC!\n", command); // return -1; } @@ -57,8 +57,8 @@ int send_ec_data(uint8_t data) if ((timeout & 0xff) == 0) debug("."); } - if (!timeout) { - printf("Timeout while sending data 0x%02x to EC!\n", data); + if (timeout) { + debug("Timeout while sending data 0x%02x to EC!\n", data); // return -1; } @@ -89,7 +89,7 @@ uint8_t recv_ec_data(void) debug("."); } if (!timeout) { - printf("\nTimeout while receiving data from EC!\n"); + debug("\nTimeout while receiving data from EC!\n"); // return -1; } @@ -101,15 +101,37 @@ uint8_t recv_ec_data(void) uint8_t ec_read(uint8_t addr) { - send_ec_command(0x80); + send_ec_command(RD_EC); send_ec_data(addr); return recv_ec_data(); } +uint8_t ec_ext_read(uint16_t addr) +{ + send_ec_command(WR_EC); + send_ec_data(0x02); + send_ec_data(addr & 0xff); + send_ec_command(RX_EC); + send_ec_data(addr >> 8); + + return recv_ec_data(); +} + +int ec_ext_write(uint16_t addr, uint8_t data) +{ + send_ec_command(WR_EC); + send_ec_data(0x02); + send_ec_data(addr & 0xff); + send_ec_command(WX_EC); + send_ec_data(addr >> 8); + + return send_ec_data(data); +} + int ec_write(uint8_t addr, uint8_t data) { - send_ec_command(0x81); + send_ec_command(WR_EC); send_ec_data(addr); return send_ec_data(data); |