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.
