qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 02/13] target/hppa: Add "diag 0x101" for console output suppo


From: Richard Henderson
Subject: Re: [PATCH 02/13] target/hppa: Add "diag 0x101" for console output support
Date: Thu, 8 Feb 2024 10:15:58 -1000
User-agent: Mozilla Thunderbird

On 2/7/24 08:20, deller@kernel.org wrote:
@@ -484,3 +486,33 @@ uint64_t HELPER(hshradd)(uint64_t r1, uint64_t r2, 
uint32_t sh)
      }
      return ret;
  }
+
+/*
+ * diag_console_output() is a helper function used during the initial bootup
+ * process of the SeaBIOS-hppa firmware.  During the bootup phase, addresses of
+ * serial ports on e.g. PCI busses are unknown and most other devices haven't
+ * been initialized and configured yet.  With help of a simple "diag" assembler
+ * instruction and an ASCII character code in register %r26 firmware can easily
+ * print debug output without any dependencies to the first serial port and use
+ * that as serial console.
+ */
+void HELPER(diag_console_output)(CPUHPPAState *env)
+{
+    CharBackend *serial_backend;
+    Chardev *serial_port;
+    unsigned char c;
+
+    /* find first serial port */
+    serial_port = serial_hd(0);
+    if (!serial_port)
+        return;
+
+    /* get serial_backend for the serial port */
+    serial_backend = serial_port->be;
+    if (!serial_backend ||
+        !qemu_chr_fe_backend_connected(serial_backend))
+        return;
+
+    c = (unsigned char)env->gr[26];
+    qemu_chr_fe_write(serial_backend, &c, sizeof(c));
+}

Looks like this should go in sys_helper.c instead.
Missing ifdefs break hppa-linux-user?

Also, missing braces.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]