diff --git a/util/ectool/ec.c b/util/ectool/ec.c index 56e9a61905..351015d050 100644 --- a/util/ectool/ec.c +++ b/util/ectool/ec.c @@ -114,3 +114,13 @@ int ec_write(uint8_t addr, uint8_t data) return send_ec_data(data); } + +uint8_t ec_idx_read(uint16_t addr) +{ + uint16_t lpc_idx = 0x380; + + outb(addr & 0xff, lpc_idx + 2); + outb(addr >> 8, lpc_idx + 1); + + return inb(lpc_idx + 3); +} diff --git a/util/ectool/ec.h b/util/ectool/ec.h index b06816de45..7400778117 100644 --- a/util/ectool/ec.h +++ b/util/ectool/ec.h @@ -47,4 +47,5 @@ int send_ec_data_nowait(uint8_t data); uint8_t recv_ec_data(void); uint8_t ec_read(uint8_t addr); +uint8_t ec_idx_read(uint16_t addr); #endif diff --git a/util/ectool/ectool.c b/util/ectool/ectool.c index 91d42fe02d..b7bb0ef079 100644 --- a/util/ectool/ectool.c +++ b/util/ectool/ectool.c @@ -99,5 +99,14 @@ int main(int argc, char *argv[]) } printf("\n\n"); + printf("EC IDX RAM:\n"); + for (i = 0; i < 0x10000; i++) { + if ((i % 0x10) == 0) + printf("\n%04x: ", i); + printf("%02x ", ec_idx_read(i)); + } + printf("\n\n"); + + return 0; }