And add two new debug types:
  JAILHOUSE_DBG_TYPE_PL011
  JAILHOUSE_DBG_TYPE_8250

Those drivers can now explicitely be chosen in the configuration, no
need for conditional compilation any more.

Signed-off-by: Ralf Ramsauer <[email protected]>
---
 configs/amd-seattle.c                      |  2 +-
 configs/bananapi.c                         |  2 +-
 configs/foundation-v8.c                    |  2 +-
 configs/hikey.c                            |  2 +-
 configs/jetson-tk1.c                       |  2 +-
 configs/vexpress.c                         |  2 +-
 hypervisor/arch/arm-common/Kbuild          |  4 +---
 hypervisor/arch/arm-common/dbg-write.c     | 10 +++++-----
 hypervisor/arch/arm-common/uart-8250.c     |  2 +-
 hypervisor/arch/arm-common/uart-pl011.c    |  2 +-
 hypervisor/include/jailhouse/cell-config.h |  5 +++--
 11 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/configs/amd-seattle.c b/configs/amd-seattle.c
index 575c883218..89e6c6a565 100644
--- a/configs/amd-seattle.c
+++ b/configs/amd-seattle.c
@@ -31,7 +31,7 @@ struct {
                .debug_console = {
                        .address = 0xe1010000,
                        .size = 0x1000,
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_PL011 |
                                 JAILHOUSE_DBG_FLAG_MMIO,
                },
                .platform_info = {
diff --git a/configs/bananapi.c b/configs/bananapi.c
index ce641f7a4d..7f5096255b 100644
--- a/configs/bananapi.c
+++ b/configs/bananapi.c
@@ -36,7 +36,7 @@ struct {
                        /* .clock_reg = 0x01c2006c, */
                        /* .gate_nr = 16 */
                        /* .divider = 0x0d, */
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_8250 |
                                 JAILHOUSE_DBG_FLAG_MMIO,
                },
                .platform_info = {
diff --git a/configs/foundation-v8.c b/configs/foundation-v8.c
index 43513560da..57387f810a 100644
--- a/configs/foundation-v8.c
+++ b/configs/foundation-v8.c
@@ -30,7 +30,7 @@ struct {
                .debug_console = {
                        .address = 0x1c090000,
                        .size = 0x1000,
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_PL011 |
                                 JAILHOUSE_DBG_FLAG_MMIO,
                },
                .platform_info.arm = {
diff --git a/configs/hikey.c b/configs/hikey.c
index aee4ab4dc0..7dd78808e7 100644
--- a/configs/hikey.c
+++ b/configs/hikey.c
@@ -31,7 +31,7 @@ struct {
                .debug_console = {
                        .address = 0xf7113000,
                        .size = 0x1000,
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_PL011 |
                                 JAILHOUSE_DBG_FLAG_MMIO,
                },
                .platform_info = {
diff --git a/configs/jetson-tk1.c b/configs/jetson-tk1.c
index 18e2840b6d..db2162bdca 100644
--- a/configs/jetson-tk1.c
+++ b/configs/jetson-tk1.c
@@ -39,7 +39,7 @@ struct {
                        /* .clock_reg = 0x60006000 + 0x330, */
                        /* .gate_nr = (65 % 32), */
                        /* .divider = 0xdd, */
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_8250 |
                                 JAILHOUSE_DBG_FLAG_MMIO,
                },
                .platform_info = {
diff --git a/configs/vexpress.c b/configs/vexpress.c
index ce788212be..675f621d4d 100644
--- a/configs/vexpress.c
+++ b/configs/vexpress.c
@@ -30,7 +30,7 @@ struct {
                .debug_console = {
                        .address = 0x1c090000,
                        .size = 0x1000,
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_PL011 |
                                 JAILHOUSE_DBG_FLAG_MMIO,
                },
                .platform_info.arm = {
diff --git a/hypervisor/arch/arm-common/Kbuild 
b/hypervisor/arch/arm-common/Kbuild
index b6930ae2bb..0aa613d322 100644
--- a/hypervisor/arch/arm-common/Kbuild
+++ b/hypervisor/arch/arm-common/Kbuild
@@ -13,9 +13,7 @@
 include $(CONFIG_MK)
 
 OBJS-y += dbg-write.o lib.o psci.o control.o paging.o mmu_cell.o
-OBJS-y += irqchip.o gic-common.o pci.o ivshmem.o
+OBJS-y += irqchip.o gic-common.o pci.o ivshmem.o uart-pl011.o uart-8250.o
 OBJS-$(CONFIG_ARM_GIC_V2) += gic-v2.o
-OBJS-$(CONFIG_SERIAL_8250) += uart-8250.o
-OBJS-$(CONFIG_SERIAL_AMBA_PL011) += uart-pl011.o
 
 COMMON_OBJECTS = $(addprefix ../arm-common/,$(OBJS-y))
diff --git a/hypervisor/arch/arm-common/dbg-write.c 
b/hypervisor/arch/arm-common/dbg-write.c
index ab5f2ba0f8..080d80ceb2 100644
--- a/hypervisor/arch/arm-common/dbg-write.c
+++ b/hypervisor/arch/arm-common/dbg-write.c
@@ -18,7 +18,7 @@
 #include <jailhouse/processor.h>
 #include <asm/uart.h>
 
-extern struct uart_chip uart_ops;
+extern struct uart_chip uart_8250_ops, uart_pl011_ops;
 
 static struct uart_chip *uart = NULL;
 
@@ -48,10 +48,10 @@ void arch_dbg_write_init(void)
        if (!DBG_IS_MMIO(system_config->debug_console.flags))
                return;
 
-       if (dbg_type != JAILHOUSE_DBG_TYPE_UART_ARM)
-               return;
-
-       uart = &uart_ops;
+       if (dbg_type == JAILHOUSE_DBG_TYPE_PL011)
+               uart = &uart_pl011_ops;
+       else if (dbg_type == JAILHOUSE_DBG_TYPE_8250)
+               uart = &uart_8250_ops;
 
        if (uart) {
                uart->debug_console = &system_config->debug_console;
diff --git a/hypervisor/arch/arm-common/uart-8250.c 
b/hypervisor/arch/arm-common/uart-8250.c
index 1224d0332e..d1afb545e7 100644
--- a/hypervisor/arch/arm-common/uart-8250.c
+++ b/hypervisor/arch/arm-common/uart-8250.c
@@ -55,7 +55,7 @@ static void uart_write(struct uart_chip *chip, char c)
        mmio_write32(chip->virt_base + UART_TX, c);
 }
 
-struct uart_chip uart_ops = {
+struct uart_chip uart_8250_ops = {
        .wait = uart_wait,
        .write = uart_write,
        .init = uart_init,
diff --git a/hypervisor/arch/arm-common/uart-pl011.c 
b/hypervisor/arch/arm-common/uart-pl011.c
index ba8560bb1a..113fc0bc58 100644
--- a/hypervisor/arch/arm-common/uart-pl011.c
+++ b/hypervisor/arch/arm-common/uart-pl011.c
@@ -67,7 +67,7 @@ static void uart_write(struct uart_chip *chip, char c)
        mmio_write32(chip->virt_base + UARTDR, c);
 }
 
-struct uart_chip uart_ops = {
+struct uart_chip uart_pl011_ops = {
        .wait = uart_wait,
        .write = uart_write,
        .init = uart_init,
diff --git a/hypervisor/include/jailhouse/cell-config.h 
b/hypervisor/include/jailhouse/cell-config.h
index 65bf28ed9e..d9ae03d750 100644
--- a/hypervisor/include/jailhouse/cell-config.h
+++ b/hypervisor/include/jailhouse/cell-config.h
@@ -169,8 +169,9 @@ struct jailhouse_iommu {
 /* Bits 0..3 are used to select the particular driver */
 #define JAILHOUSE_DBG_TYPE_NONE                0x0000
 #define JAILHOUSE_DBG_TYPE_UART_X86    0x0001
-#define JAILHOUSE_DBG_TYPE_UART_ARM    0x0002
-#define JAILHOUSE_DBG_TYPE_VGA         0x0003
+#define JAILHOUSE_DBG_TYPE_VGA         0x0002
+#define JAILHOUSE_DBG_TYPE_8250                0x0003
+#define JAILHOUSE_DBG_TYPE_PL011       0x0004
 #define JAILHOUSE_DBG_TYPE_MASK                0x000f
 
 #define DBG_TYPE(flags) ((flags) & JAILHOUSE_DBG_TYPE_MASK)
-- 
2.11.0.rc2

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to