summaryrefslogtreecommitdiffstats
path: root/util/ectool
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2010-01-16 17:50:55 +0000
committerStefan Reinauer <stepan@openbios.org>2010-01-16 17:50:55 +0000
commit984e0f3a0c3a82339ef8afcf7f315f377e0c81fc (patch)
tree392db09746292a1171b9953810a106d7166394fc /util/ectool
parent350ca4a94faa4f35b0b63045f9c7132c2801e1b8 (diff)
downloadcoreboot-984e0f3a0c3a82339ef8afcf7f315f377e0c81fc.tar.gz
coreboot-984e0f3a0c3a82339ef8afcf7f315f377e0c81fc.tar.bz2
coreboot-984e0f3a0c3a82339ef8afcf7f315f377e0c81fc.zip
ectool: Support for dumping EC "index ram"
Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5021 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/ectool')
-rw-r--r--util/ectool/ec.c10
-rw-r--r--util/ectool/ec.h1
-rw-r--r--util/ectool/ectool.c9
3 files changed, 20 insertions, 0 deletions
diff --git a/util/ectool/ec.c b/util/ectool/ec.c
index 56e9a6190583..351015d05049 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 b06816de45f2..7400778117b7 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 91d42fe02d53..b7bb0ef07950 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;
}