ectool: Support for dumping EC "index ram"
authorStefan Reinauer <stepan@coresystems.de>
Sat, 16 Jan 2010 17:50:55 +0000 (17:50 +0000)
committerStefan Reinauer <stepan@openbios.org>
Sat, 16 Jan 2010 17:50:55 +0000 (17:50 +0000)
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

util/ectool/ec.c
util/ectool/ec.h
util/ectool/ectool.c

index 56e9a61905834c9490accd3a8906114b19d03783..351015d05049379fae99038c1f4afbd73c2b5111 100644 (file)
@@ -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);
+}
index b06816de45f267b09fae3a9847458a3fc82b7830..7400778117b7084e56bb19be04cf651df48fc009 100644 (file)
@@ -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
index 91d42fe02d531a9d06268e09161ef6020249e8ae..b7bb0ef079505f80a8e62183bf66ff7ee8703439 100644 (file)
@@ -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;
 }