[SerialICE] Patch set updated for serialice: 03bea52 Treat PnP devices as fixed IO

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Wed Mar 6 20:21:31 CET 2013


Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2577

-gerrit

commit 03bea525ad9c9fa3b5b0c8ffb83717d454fd1cbf
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sun Mar 3 19:02:29 2013 +0200

    Treat PnP devices as fixed IO
    
    Usually these ISA/LPC devices are discussed using fixed I/O
    addresses so change the log output.
    
    In example below, superio 2e:05 IO base registers for keyboard
    are programmed with 0x60 and 0x64 and that effectively
    disables the i8042 filter. We explicitly prevent this pair
    of addresses from being treated as PnP device.
    
    0028.0029    RH..    [0000:0000]   IO,i8042: outb 0064 <= d1
    0028.002a    RH..    [0000:0000]   IO,i8042:  inb 0064 => 11
    0028.002b    .H..    [0000:0000]   i8042: A20 enabled
    0028.002b    RH..    [0000:0000]   IO,i8042: outb 0060 <= df
    0028.002c    RH..    [0000:0000]   IO,i8042:  inb 0064 => 11
    ...
    0000.0000    I...    [0000:0000]   Resource: [0033] IO [0060-0060] = PnP 2e:05
    0000.0000    I...    [0000:0000]   Resource: [0034] IO [0064-0064] = PnP 2e:05
    ...
    0706.0707    .H..    [0000:0000]   PnP 2e:05: [0000] <= d1
    0706.0708    .H..    [0000:0000]   PnP 2e:05: [0000] => ff
    0709.070a    .H..    [0000:0000]   PnP 2e:05: [0000] <= df
    070b.070c    .H..    [0000:0000]   PnP 2e:05: [0000] => ff
    
    Change-Id: Ibec34fe656dea9efd22ab4530ef9efb99c9c665d
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 SerialICE/simba/pc80.lua    |  1 +
 SerialICE/simba/superio.lua | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/SerialICE/simba/pc80.lua b/SerialICE/simba/pc80.lua
index 7ce439c..a9f4f0c 100644
--- a/SerialICE/simba/pc80.lua
+++ b/SerialICE/simba/pc80.lua
@@ -323,6 +323,7 @@ end
 
 filter_i8042 = {
 	id = -1,
+	decode = F_FIXED,
 	name = "i8042",
 	pre = i8042_pre,
 	post = i8042_post,
diff --git a/SerialICE/simba/superio.lua b/SerialICE/simba/superio.lua
index 1248af5..7f6210c 100644
--- a/SerialICE/simba/superio.lua
+++ b/SerialICE/simba/superio.lua
@@ -62,8 +62,11 @@ function superio_try_enable_io(f, idx)
 			if not ldn.bar0.name then
 				ldn.bar0.name = superio_pnpdev(f)
 			end
-			ldn.bar0.val = iobase
-			generic_io_bar(ldn.bar0)
+			if iobase ~= 0x60 then
+				ldn.bar0.val = iobase
+				generic_io_bar(ldn.bar0)
+				ldn.bar0.f.decode = F_FIXED
+			end
 		end
 		if idx == 1 and ldn.set[0x62] and ldn.set[0x63] then
 			local iobase = bit32.bor(bit32.lshift(ldn.data[0x62], 8), ldn.data[0x63])
@@ -73,8 +76,11 @@ function superio_try_enable_io(f, idx)
 			if not ldn.bar1.name then
 				ldn.bar1.name = superio_pnpdev(f)
 			end
-			ldn.bar1.val = iobase
-			generic_io_bar(ldn.bar1)
+			if iobase ~= 0x64 then
+				ldn.bar1.val = iobase
+				generic_io_bar(ldn.bar1)
+				ldn.bar1.f.decode = F_FIXED
+			end
 		end
 	end
 end



More information about the SerialICE mailing list