[SerialICE] Patch set updated for serialice: c48b7f8 Convert memory logging to hooks
Patrick Georgi (patrick@georgi-clan.de)
gerrit at coreboot.org
Thu Dec 22 21:28:44 CET 2011
Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/467
-gerrit
commit c48b7f86def235983825dc3d0afaa8186b096202
Author: Patrick Georgi <patrick.georgi at secunet.com>
Date: Thu Dec 1 15:23:14 2011 +0100
Convert memory logging to hooks
Change-Id: I09c2a97964d4e3101000a10fac86df283eb9506c
Signed-off-by: Patrick Georgi <patrick.georgi at secunet.com>
---
SerialICE/scripts/serialice.lua | 64 +++++++++++++++++++++++---------------
1 files changed, 39 insertions(+), 25 deletions(-)
diff --git a/SerialICE/scripts/serialice.lua b/SerialICE/scripts/serialice.lua
index 3a8bf74..0e7e902 100644
--- a/SerialICE/scripts/serialice.lua
+++ b/SerialICE/scripts/serialice.lua
@@ -97,12 +97,40 @@ function walk_list(list, ...)
return false
end
-io_write_hooks = new_list()
-io_write_log_hooks = new_list()
io_read_hooks = new_list()
+io_write_hooks = new_list()
io_read_log_hooks = new_list()
-msr_write_hooks = new_list()
+io_write_log_hooks = new_list()
+
msr_read_hooks = new_list()
+msr_write_hooks = new_list()
+
+mem_read_log_hooks = new_list()
+mem_write_log_hooks = new_list()
+
+prepend_to_list(mem_read_log_hooks, function(addr, size, data, target)
+ if (PCIe_bar ~= 0) and addr >= PCIe_bar and addr <= (PCIe_bar + PCIe_size) then
+ printf("PCIe %x:%02x.%x R.%02x => %s\n",
+ bit.band(0xff,bit.rshift(addr, 20)),
+ bit.band(0x1f,bit.rshift(addr, 15)),
+ bit.band(0x7,bit.rshift(addr, 12)),
+ bit.band(0xfff,addr),
+ size_data(size, data))
+ return true
+ end
+end)
+
+prepend_to_list(mem_write_log_hooks, function(addr, size, data, target)
+ if (PCIe_bar ~= 0) and addr >= PCIe_bar and addr <= (PCIe_bar + PCIe_size) then
+ printf("PCIe %x:%02x.%x R.%02x <= %s\n",
+ bit.band(0xff,bit.rshift(addr, 20)),
+ bit.band(0x1f,bit.rshift(addr, 15)),
+ bit.band(0x7,bit.rshift(addr, 12)),
+ bit.band(0xfff,addr),
+ size_data(size, data))
+ return true
+ end
+end)
prepend_to_list(io_write_log_hooks, function(port, size, data, target)
if port == 0xcf9 then
@@ -646,22 +674,15 @@ function SerialICE_memory_write_log(addr, size, data, target)
log_cs_ip()
+ if walk_list(mem_write_log_hooks, addr, size, data, target) then
+ return
+ end
+
printf("MEM: write%s %08x <= %s", size_suffix(size), addr, size_data(size, data))
if target then
printf(" *")
end
printf("\n")
-
- -- **********************************************************
- --
-
- if (PCIe_bar ~= 0) and addr >= PCIe_bar and addr <= (PCIe_bar + PCIe_size) then
- printf("PCIe %x:%02x.%x R.%02x\n",
- bit.band(0xff,bit.rshift(addr, 20)),
- bit.band(0x1f,bit.rshift(addr, 15)),
- bit.band(0x7,bit.rshift(addr, 12)),
- bit.band(0xfff,addr))
- end
end
function SerialICE_memory_read_log(addr, size, data, target)
@@ -680,22 +701,15 @@ function SerialICE_memory_read_log(addr, size, data, target)
log_cs_ip()
+ if walk_list(mem_read_log_hooks, addr, size, data, target) then
+ return
+ end
+
printf("MEM: read%s %08x => %s", size_suffix(size), addr, size_data(size, data))
if target then
printf(" *")
end
printf("\n")
-
- -- **********************************************************
- --
-
- if (PCIe_bar ~= 0) and addr >= PCIe_bar and addr <= (PCIe_bar + PCIe_size) then
- printf("PCIe %x:%02x.%x R.%02x\n",
- bit.band(0xff,bit.rshift(addr, 20)),
- bit.band(0x1f,bit.rshift(addr, 15)),
- bit.band(0x7,bit.rshift(addr, 12)),
- bit.band(0xfff,addr))
- end
end
function SerialICE_io_write_log(port, size, data, target)
More information about the SerialICE
mailing list