[OpenBIOS] [PATCH 3/3] SPARC64: fix up PCI-EBus interrupt map and ino for PS/2 keyboard device

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Sat Jul 8 21:19:41 CEST 2017


This allows the PS/2 keyboard device to be detected and used under *BSD
for SPARC64.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
---
 drivers/pci.c |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/pci.c b/drivers/pci.c
index b533898..e803ab2 100644
--- a/drivers/pci.c
+++ b/drivers/pci.c
@@ -866,12 +866,21 @@ int ebus_config_cb(const pci_config_t *config)
     ucell virt;
     phys_addr_t io_phys_base = 0;
 
+    /* Serial */
     props[0] = 0x14;
     props[1] = 0x3f8;
     props[2] = 1;
     props[3] = find_dev("/");
     props[4] = 0x2b;
-    set_property(dev, "interrupt-map", (char *)props, 5 * sizeof(props[0]));
+    
+    /* PS2 keyboard */
+    props[5] = 0x14;
+    props[6] = 0x60;
+    props[7] = 1;
+    props[8] = find_dev("/");
+    props[9] = 0x29;
+    
+    set_property(dev, "interrupt-map", (char *)props, 10 * sizeof(props[0]));
 
     props[0] = 0x000001ff;
     props[1] = 0xffffffff;
@@ -940,7 +949,7 @@ int ebus_config_cb(const pci_config_t *config)
     ob_pc_serial_init(config->path, "su", (PCI_BASE_ADDR_1 | 0ULL) << 32, 0x3f8ULL, 0);
 #endif
 #ifdef CONFIG_DRIVER_PC_KBD
-    ob_pc_kbd_init(config->path, "kb_ps2", (PCI_BASE_ADDR_1 | 0ULL) << 32, 0x60ULL, 0);
+    ob_pc_kbd_init(config->path, "kb_ps2", (PCI_BASE_ADDR_1 | 0ULL) << 32, 0x60ULL, 1);
 #endif
 #endif
     return 0;
-- 
1.7.10.4




More information about the OpenBIOS mailing list