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 1b70d80103af..95e013eccd3e 100644
--- a/configs/amd-seattle.c
+++ b/configs/amd-seattle.c
@@ -30,7 +30,7 @@ struct {
                .debug_console = {
                        .address = 0xe1010000,
                        .size = 0x1000,
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_PL011 |
                                 JAILHOUSE_DBG_FLAG_MMIO |
                                 JAILHOUSE_DBG_FLAG_REG_WIDTH_32,
                },
diff --git a/configs/bananapi.c b/configs/bananapi.c
index 0f7f6df385b2..e712c5e16b38 100644
--- a/configs/bananapi.c
+++ b/configs/bananapi.c
@@ -35,7 +35,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 |
                                 JAILHOUSE_DBG_FLAG_REG_WIDTH_32,
                },
diff --git a/configs/foundation-v8.c b/configs/foundation-v8.c
index 479021fe0167..eea7e38160e8 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 |
                                 JAILHOUSE_DBG_FLAG_REG_WIDTH_32,
                },
diff --git a/configs/hikey.c b/configs/hikey.c
index 8da01d55a2b8..0496b02525f3 100644
--- a/configs/hikey.c
+++ b/configs/hikey.c
@@ -30,7 +30,7 @@ struct {
                .debug_console = {
                        .address = 0xf7113000,
                        .size = 0x1000,
-                       .flags = JAILHOUSE_DBG_TYPE_UART_ARM |
+                       .flags = JAILHOUSE_DBG_TYPE_PL011 |
                                 JAILHOUSE_DBG_FLAG_MMIO |
                                 JAILHOUSE_DBG_FLAG_REG_WIDTH_32,
                },
diff --git a/configs/jetson-tk1.c b/configs/jetson-tk1.c
index b24029a918e9..e2fbaad5fae9 100644
--- a/configs/jetson-tk1.c
+++ b/configs/jetson-tk1.c
@@ -38,7 +38,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 |
                                 JAILHOUSE_DBG_FLAG_REG_WIDTH_32,
                },
diff --git a/configs/vexpress.c b/configs/vexpress.c
index b407ca6cfe79..31c53c11718b 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 |
                                 JAILHOUSE_DBG_FLAG_REG_WIDTH_32,
                },
diff --git a/hypervisor/arch/arm-common/Kbuild 
b/hypervisor/arch/arm-common/Kbuild
index bf23f57d3efb..868adf971ca9 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
+OBJS-y += irqchip.o gic-common.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 9c091d0d0be5..eae367e2b0af 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;
 
@@ -49,10 +49,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 1224d0332e30..d1afb545e731 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 ba8560bb1a5a..113fc0bc58d3 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 ea6a235662e8..7695950f74fe 100644
--- a/hypervisor/include/jailhouse/cell-config.h
+++ b/hypervisor/include/jailhouse/cell-config.h
@@ -167,8 +167,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.10.2

-- 
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