diff --git a/lib/utils/serial/cadence-uart.c b/lib/utils/serial/cadence-uart.c index 8a2b6ba7..30fbb95f 100644 --- a/lib/utils/serial/cadence-uart.c +++ b/lib/utils/serial/cadence-uart.c @@ -6,6 +6,8 @@ * Author: Jun Liang Tan */ +#include +#include #include #include #include @@ -124,5 +126,7 @@ int cadence_uart_init(unsigned long base, u32 in_freq, u32 baudrate) sbi_console_set_device(&cadence_console); - return 0; + return sbi_domain_root_add_memrange(base, PAGE_SIZE, PAGE_SIZE, + (SBI_DOMAIN_MEMREGION_MMIO | + SBI_DOMAIN_MEMREGION_SHARED_SURW_MRW)); } diff --git a/lib/utils/serial/fdt_serial_htif.c b/lib/utils/serial/fdt_serial_htif.c index 61f66d68..7d88e7a1 100644 --- a/lib/utils/serial/fdt_serial_htif.c +++ b/lib/utils/serial/fdt_serial_htif.c @@ -7,6 +7,8 @@ * Anup Patel */ +#include +#include #include #include #include @@ -19,6 +21,7 @@ static const struct fdt_match serial_htif_match[] = { static int serial_htif_init(void *fdt, int nodeoff, const struct fdt_match *match) { + int rc; bool custom = false; uint64_t fromhost_addr = 0, tohost_addr = 0; @@ -29,6 +32,12 @@ static int serial_htif_init(void *fdt, int nodeoff, fdt_get_node_addr_size(fdt, nodeoff, 1, &tohost_addr, NULL); + rc = sbi_domain_root_add_memrange(fromhost_addr, PAGE_SIZE, PAGE_SIZE, + (SBI_DOMAIN_MEMREGION_MMIO | + SBI_DOMAIN_MEMREGION_SHARED_SURW_MRW)); + if (rc) + return rc; + return htif_serial_init(custom, fromhost_addr, tohost_addr); } diff --git a/lib/utils/serial/uart8250.c b/lib/utils/serial/uart8250.c index 99bf1bf7..4d158d3b 100644 --- a/lib/utils/serial/uart8250.c +++ b/lib/utils/serial/uart8250.c @@ -7,8 +7,10 @@ * Anup Patel */ +#include #include #include +#include #include /* clang-format off */ @@ -133,5 +135,8 @@ int uart8250_init(unsigned long base, u32 in_freq, u32 baudrate, u32 reg_shift, sbi_console_set_device(&uart8250_console); - return 0; + return sbi_domain_root_add_memrange(base + reg_offset, PAGE_SIZE, + PAGE_SIZE, + (SBI_DOMAIN_MEMREGION_MMIO | + SBI_DOMAIN_MEMREGION_SHARED_SURW_MRW)); }