From: Stewart Hildebrand <[email protected]>
Committer: Waldemar Kozaczuk <[email protected]>
Branch: master

Cadence: initialize from device tree

Add runtime map for Cadence UART

Signed-off-by: Stewart Hildebrand <[email protected]>
Message-Id: <[email protected]>

---
diff --git a/arch/aarch64/arch-setup.cc b/arch/aarch64/arch-setup.cc
--- a/arch/aarch64/arch-setup.cc
+++ b/arch/aarch64/arch-setup.cc
@@ -100,6 +100,13 @@ void arch_setup_free_memory()
                         mmu::mattr::dev);
     }
 
+    if (console::Cadence_Console::active) {
+        // linear_map [TTBR0 - UART]
+        addr = (mmu::phys)console::aarch64_console.cadence.get_base_addr();
+        mmu::linear_map((void *)addr, addr, 0x1000, mmu::page_size,
+                        mmu::mattr::dev);
+    }
+
     /* linear_map [TTBR0 - GIC DIST and GIC CPU] */
     u64 dist, cpu;
     size_t dist_len, cpu_len;
@@ -211,6 +218,16 @@ void arch_init_early_console()
         return;
     }
 
+    mmio_serial_address = dtb_get_cadence_uart(&irqid);
+    if (mmio_serial_address) {
+        new (&console::aarch64_console.cadence) console::Cadence_Console();
+        console::arch_early_console = console::aarch64_console.cadence;
+        console::aarch64_console.cadence.set_base_addr(mmio_serial_address);
+        console::aarch64_console.cadence.set_irqid(irqid);
+        console::Cadence_Console::active = true;
+        return;
+    }
+
     new (&console::aarch64_console.pl011) console::PL011_Console();
     console::arch_early_console = console::aarch64_console.pl011;
     console::PL011_Console::active = true;
diff --git a/arch/aarch64/early-console.hh b/arch/aarch64/early-console.hh
--- a/arch/aarch64/early-console.hh
+++ b/arch/aarch64/early-console.hh
@@ -10,6 +10,7 @@
 
 #include <drivers/console-driver.hh>
 #include <drivers/pl011.hh>
+#include <drivers/cadence-uart.hh>
 #include <drivers/xenconsole.hh>
 #include <drivers/mmio-isa-serial.hh>
 
@@ -18,6 +19,7 @@ namespace console {
 
 union AARCH64_Console {
     PL011_Console pl011;
+    Cadence_Console cadence;
     XEN_Console xen;
     mmio_isa_serial_console isa_serial;
 

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/000000000000bd359605bd8161ea%40google.com.

Reply via email to