parisc: Add kgdb io_module to read chars via PDC
authorHelge Deller <deller@gmx.de>
Wed, 5 Jan 2022 21:44:12 +0000 (22:44 +0100)
committerHelge Deller <deller@gmx.de>
Fri, 7 Jan 2022 00:29:22 +0000 (01:29 +0100)
Add a simplistic keyboard driver for usage of PDC I/O functions
with kgdb. This driver makes it possible to use KGDB with QEMU.

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/kgdb.c

index c4554ac13eac797e68200ff1fe0e7738faa15c9c..ab7620f695be1143ff27b3111922ae974581f71c 100644 (file)
@@ -3,6 +3,7 @@
  * PA-RISC KGDB support
  *
  * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org>
+ * Copyright (c) 2022 Helge Deller <deller@gmx.de>
  *
  */
 
@@ -207,3 +208,23 @@ int kgdb_arch_handle_exception(int trap, int signo,
        }
        return -1;
 }
+
+/* KGDB console driver which uses PDC to read chars from keyboard */
+
+static void kgdb_pdc_write_char(u8 chr)
+{
+       /* no need to print char. kgdb will do it. */
+}
+
+static struct kgdb_io kgdb_pdc_io_ops = {
+       .name           = "kgdb_pdc",
+       .read_char      = pdc_iodc_getc,
+       .write_char     = kgdb_pdc_write_char,
+};
+
+static int __init kgdb_pdc_init(void)
+{
+       kgdb_register_io_module(&kgdb_pdc_io_ops);
+       return 0;
+}
+early_initcall(kgdb_pdc_init);