Kyösti Mälkki (kyosti.malkki@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2702
-gerrit
commit adb3f655e72259ae43dd883d604391bf6289b331 Author: Kyösti Mälkki kyosti.malkki@gmail.com Date: Tue Mar 12 10:09:13 2013 +0200
Fix RAM filters
These filters had not been tested and had some typos in the names and missing .hide variables.
Once enable_ram() is called, also register physical RAM on Qemu side from 1 MiB to 8 MiB.
Change-Id: I4c398f006d684dfe71080a69664fa5c062e8a743 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- SerialICE/simba/memory.lua | 58 +++++++++++++++++++++++++++---------------- SerialICE/simba/serialice.lua | 3 +++ 2 files changed, 40 insertions(+), 21 deletions(-)
diff --git a/SerialICE/simba/memory.lua b/SerialICE/simba/memory.lua index b05f09c..bb09aef 100644 --- a/SerialICE/simba/memory.lua +++ b/SerialICE/simba/memory.lua @@ -53,7 +53,7 @@ function new_car_region(start, size) f.size = size f.pre = car_qemu_only f.post = car_post - f.hide = true + f.hide = hide_car enable_hook(mem_hooks, f) SerialICE_register_physical(start, size) end @@ -101,12 +101,15 @@ function mem_smi_vga(f, action) return true end
+function mem_ram_post(f, action) + return true +end
filter_ram_low = { - name = "MEM", - pre = mem_ram_low, - post = mem_post, - hide = true, + name = "RAM", + pre = mem_qemu_only, + post = mem_ram_post, + hide = hide_ram_low, base = 0x0, size = 0xa0000 } @@ -114,17 +117,17 @@ filter_ram_low = { filter_smi_vga = { name = "SMI_VGA", pre = mem_smi_vga, - post = mem_post, - hide = true, + post = mem_ram_post, + hide = hide_smi_vga, base = 0x000a0000, size = 0x00010000, }
filter_ram_low_2 = { - name = "MEM", - pre = mem_ram_low, - post = mem_post, - hide = true, + name = "RAM", + pre = mem_qemu_only, + post = mem_ram_post, + hide = hide_ram_low, base = 0xc0000, size = 0x20000 } @@ -132,18 +135,30 @@ filter_ram_low_2 = { -- 3.25GB RAM. This is handled by SerialICE. -- FIXME: use TOLM here
--- We refrain from backing up this memory in Qemu because Qemu would +tolm = 0xd0000000 +top_of_qemu_ram = 0x800000 + +-- We refrain from backing up most of memory in Qemu because Qemu would -- need lots of ram on the host and firmware usually does not intensively -- use high memory anyways. -filter_ram_high = { - name = "MEM", - pre = mem_target_only, - post = mem_post, - hide = true, + +filter_ram_high_qemu = { + name = "RAM", + pre = mem_qemu_only, + post = mem_ram_post, + hide = hide_ram_high, base = 0x100000, - size = 0xd0000000 - 0x100000 + size = top_of_qemu_ram - 0x100000, }
+filter_ram_high = { + name = "RAM", + pre = mem_target_only, + post = mem_ram_post, + hide = hide_ram_high, + base = top_of_qemu_ram, + size = tolm - top_of_qemu_ram +}
function ram_enabled() return ram_is_initialized @@ -153,6 +168,7 @@ function enable_ram() enable_hook(mem_hooks, filter_ram_low) enable_hook(mem_hooks, filter_smi_vga) enable_hook(mem_hooks, filter_ram_low_2) + enable_hook(mem_hooks, filter_ram_high_qemu) enable_hook(mem_hooks, filter_ram_high)
-- Register low RAM 0x00000000 - 0x000dffff @@ -160,9 +176,9 @@ function enable_ram() -- SMI/VGA memory should go to the target... SerialICE_register_physical(0x000c0000, 0x20000) --printf("Low RAM accesses are now directed to Qemu.\n") + + -- Register high RAM + SerialICE_register_physical(0x100000, top_of_qemu_ram - 0x100000) ram_is_initialized = true end
- - - diff --git a/SerialICE/simba/serialice.lua b/SerialICE/simba/serialice.lua index 434556f..2427ed5 100644 --- a/SerialICE/simba/serialice.lua +++ b/SerialICE/simba/serialice.lua @@ -27,6 +27,9 @@ io.write("SerialICE: Starting LUA script\n")
-- Set to "false" to show undecoded access for the specified class hide_rom_access = true +hide_ram_low = true +hide_ram_high = true +hide_smi_vga = true hide_pci_io_cfg = true hide_pci_mm_cfg = true hide_nvram_io = true