aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/809-jailhouse-0020-jailhouse-Add-simple-debug-console-via-the-hyperviso.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/809-jailhouse-0020-jailhouse-Add-simple-debug-console-via-the-hyperviso.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/809-jailhouse-0020-jailhouse-Add-simple-debug-console-via-the-hyperviso.patch164
1 files changed, 0 insertions, 164 deletions
diff --git a/target/linux/layerscape/patches-5.4/809-jailhouse-0020-jailhouse-Add-simple-debug-console-via-the-hyperviso.patch b/target/linux/layerscape/patches-5.4/809-jailhouse-0020-jailhouse-Add-simple-debug-console-via-the-hyperviso.patch
deleted file mode 100644
index d3fb53ec58..0000000000
--- a/target/linux/layerscape/patches-5.4/809-jailhouse-0020-jailhouse-Add-simple-debug-console-via-the-hyperviso.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 58d058f1fe1cc5981c57be8b48d3b2f74f25c0d6 Mon Sep 17 00:00:00 2001
-From: Jan Kiszka <jan.kiszka@siemens.com>
-Date: Sun, 11 Sep 2016 23:30:04 +0200
-Subject: [PATCH] jailhouse: Add simple debug console via the hypervisor
-
-Jailhouse allows explicitly enabled cells to write character-wise
-messages to the hypervisor debug console. Make use of this for a
-platform-agnostic boot diagnosis channel, specifically for non-root
-cells. This also comes with earlycon support.
-
-Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
-(cherry picked from commit 60685bd589aef4972d20724863079edf2039eaa2)
-From http://git.kiszka.org/?p=linux.git;a=shortlog;h=refs/heads/queues/jailhouse
----
- MAINTAINERS | 1 +
- drivers/virt/Kconfig | 11 +++++
- drivers/virt/Makefile | 1 +
- drivers/virt/jailhouse_dbgcon.c | 103 ++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 116 insertions(+)
- create mode 100644 drivers/virt/jailhouse_dbgcon.c
-
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -8774,6 +8774,7 @@ L: jailhouse-dev@googlegroups.com
- S: Maintained
- F: arch/x86/kernel/jailhouse.c
- F: arch/x86/include/asm/jailhouse_para.h
-+F: drivers/virt/jailhouse_dbgcon.c
-
- JC42.4 TEMPERATURE SENSOR DRIVER
- M: Guenter Roeck <linux@roeck-us.net>
---- a/drivers/virt/Kconfig
-+++ b/drivers/virt/Kconfig
-@@ -31,5 +31,16 @@ config FSL_HV_MANAGER
- 4) A kernel interface for receiving callbacks when a managed
- partition shuts down.
-
-+config JAILHOUSE_DBGCON
-+ tristate "Jailhouse console driver"
-+ depends on X86 || ARM || ARM64
-+ help
-+ The Jailhouse hypervisor provides a simple write-only console for
-+ debugging the bootstrap process of its cells. This driver registers
-+ a console with the kernel to make use of it.
-+
-+ Note that Jailhouse has to be configured to permit a cell the usage
-+ of the console interface.
-+
- source "drivers/virt/vboxguest/Kconfig"
- endif
---- a/drivers/virt/Makefile
-+++ b/drivers/virt/Makefile
-@@ -4,4 +4,5 @@
- #
-
- obj-$(CONFIG_FSL_HV_MANAGER) += fsl_hypervisor.o
-+obj-$(CONFIG_JAILHOUSE_DBGCON) += jailhouse_dbgcon.o
- obj-y += vboxguest/
---- /dev/null
-+++ b/drivers/virt/jailhouse_dbgcon.c
-@@ -0,0 +1,103 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+/*
-+ * Console driver for running over the Jailhouse partitioning hypervisor
-+ *
-+ * Copyright (c) Siemens AG, 2016-2018
-+ *
-+ * Authors:
-+ * Jan Kiszka <jan.kiszka@siemens.com>
-+ */
-+
-+#include <linux/console.h>
-+#include <linux/hypervisor.h>
-+#include <linux/module.h>
-+#include <linux/serial_core.h>
-+#ifdef CONFIG_X86
-+#include <asm/alternative.h>
-+#endif
-+#ifdef CONFIG_ARM
-+#include <asm/opcodes-virt.h>
-+#endif
-+
-+#define JAILHOUSE_HC_DEBUG_CONSOLE_PUTC 8
-+
-+static void hypervisor_putc(char c)
-+{
-+#if defined(CONFIG_X86)
-+ int result;
-+
-+ asm volatile(
-+ ALTERNATIVE(".byte 0x0f,0x01,0xc1", ".byte 0x0f,0x01,0xd9",
-+ X86_FEATURE_VMMCALL)
-+ : "=a" (result)
-+ : "a" (JAILHOUSE_HC_DEBUG_CONSOLE_PUTC), "D" (c)
-+ : "memory");
-+#elif defined(CONFIG_ARM)
-+ register u32 num_res asm("r0") = JAILHOUSE_HC_DEBUG_CONSOLE_PUTC;
-+ register u32 arg1 asm("r1") = c;
-+
-+ asm volatile(
-+ __HVC(0x4a48)
-+ : "=r" (num_res)
-+ : "r" (num_res), "r" (arg1)
-+ : "memory");
-+#elif defined(CONFIG_ARM64)
-+ register u64 num_res asm("x0") = JAILHOUSE_HC_DEBUG_CONSOLE_PUTC;
-+ register u64 arg1 asm("x1") = c;
-+
-+ asm volatile(
-+ "hvc #0x4a48\n\t"
-+ : "=r" (num_res)
-+ : "r" (num_res), "r" (arg1)
-+ : "memory");
-+#else
-+#error Unsupported architecture.
-+#endif
-+}
-+
-+static void jailhouse_dbgcon_write(struct console *con, const char *s,
-+ unsigned count)
-+{
-+ while (count > 0) {
-+ hypervisor_putc(*s);
-+ count--;
-+ s++;
-+ }
-+}
-+
-+static int __init early_jailhouse_dbgcon_setup(struct earlycon_device *device,
-+ const char *options)
-+{
-+ device->con->write = jailhouse_dbgcon_write;
-+ return 0;
-+}
-+
-+EARLYCON_DECLARE(jailhouse, early_jailhouse_dbgcon_setup);
-+
-+static struct console jailhouse_dbgcon = {
-+ .name = "jailhouse",
-+ .write = jailhouse_dbgcon_write,
-+ .flags = CON_PRINTBUFFER | CON_ANYTIME,
-+ .index = -1,
-+};
-+
-+static int __init jailhouse_dbgcon_init(void)
-+{
-+ if (!jailhouse_paravirt())
-+ return -ENODEV;
-+
-+ register_console(&jailhouse_dbgcon);
-+ return 0;
-+}
-+
-+static void __exit jailhouse_dbgcon_exit(void)
-+{
-+ unregister_console(&jailhouse_dbgcon);
-+}
-+
-+module_init(jailhouse_dbgcon_init);
-+module_exit(jailhouse_dbgcon_exit);
-+
-+MODULE_LICENSE("GPL v2");
-+MODULE_DESCRIPTION("Jailhouse debug console driver");
-+MODULE_AUTHOR("Jan Kiszka <jan.kiszka@siemens.com>");