summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2015-05-27 22:18:40 +0200
committerStefan Reinauer <stefan.reinauer@coreboot.org>2015-07-09 00:54:55 +0200
commit69b7c4142c75bc26a9b8d098209388080ae43cc5 (patch)
treeff12229c977efa5d3ea823654a5a92f50dfca353
parent9406bc17fa54747f958103826e8b1012b66f617d (diff)
X61: Add filtersd510mo
Work with x60 mainboard support, just: ln -s lenovo_x61.lua SerialICE/simba/mainboard/lenovo_x60.lua TODO: Something more clever instead of the above Change-Id: I542e4fce26737be4437544b6ef4b6b5e6ea8d296 Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Reviewed-on: http://review.coreboot.org/10327 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-rw-r--r--SerialICE/simba/mainboard/lenovo_x61.lua54
1 files changed, 54 insertions, 0 deletions
diff --git a/SerialICE/simba/mainboard/lenovo_x61.lua b/SerialICE/simba/mainboard/lenovo_x61.lua
new file mode 100644
index 0000000..2d59b1c
--- /dev/null
+++ b/SerialICE/simba/mainboard/lenovo_x61.lua
@@ -0,0 +1,54 @@
+-- For X61, chop off the bottom 2M: dd if=x61 bs=2048k skip=1 of=x61.2m
+-- Dies shortly after raminit
+
+function mainboard_io_pre(f, action)
+ -- src/mainboard/lenovo/x60/dock.c dock_connect():
+ -- Firmware attempts toggling the D_PLTRST GPIO pin,
+ -- disconnecting the dock we're connecting through
+ if action.write and action.addr == 0x1680 then
+ ignore_action(f, action)
+ return drop_action(f, action, 0)
+ end
+end
+
+function mainboard_io_post(f, action)
+ if action.write and action.addr == 0x1680 then
+ return true
+ end
+end
+
+filter_mainboard = {
+ name = "X61",
+ pre = mainboard_io_pre,
+ post = mainboard_io_post,
+ hide = hide_mainboard_io,
+ base = 0x0,
+ size = 0x10000
+}
+
+load_filter("i82801")
+load_filter("intel_bars")
+
+function do_mainboard_setup()
+ do_default_setup()
+
+ enable_hook_pc80()
+ -- Reasonably similar to ICH8/i82801hx
+ enable_hook_i82801gx()
+
+ enable_hook(io_hooks, filter_pci_io_cfg)
+ enable_hook(mem_hooks, filter_lapic)
+ enable_hook(mem_hooks, filter_ioapic)
+
+ enable_hook(cpumsr_hooks, filter_intel_microcode)
+ enable_hook(cpuid_hooks, filter_multiprocessor)
+
+ -- i965 happens to have 64-bit BARs too, on the same addresses
+ northbridge_i946()
+
+ enable_ram()
+ new_car_region(0xffde0000, 0x2000)
+
+ -- Apply mainboard hooks last, so they are the first ones to check
+ enable_hook(io_hooks, filter_mainboard)
+end