From 92e36b3995ce4a7e5ed6676373106d9aaad56816 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 19 Sep 2021 00:21:33 +0300 Subject: dbg initialized with path in /chosen/stdout-path --- arch/riscv/init/init.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'arch/riscv/init/init.c') diff --git a/arch/riscv/init/init.c b/arch/riscv/init/init.c index 105a23d..73727a7 100644 --- a/arch/riscv/init/init.c +++ b/arch/riscv/init/init.c @@ -73,17 +73,20 @@ static enum serial_dev_t serial_dev_enum(const char *dev_name) static void init_debug(void *fdt) { - int offset = fdt_path_offset(fdt, "/soc/uart"); + int chosen_offset = fdt_path_offset(fdt, "/chosen"); + const char *stdout = fdt_getprop(fdt, chosen_offset, "stdout-path", 0); + + int stdout_offset = fdt_path_offset(fdt, stdout); /* get serial device type */ - const char *dev_name = (const char *)fdt_getprop(fdt, offset, + const char *dev_name = (const char *)fdt_getprop(fdt, stdout_offset, "compatible", NULL); enum serial_dev_t dev = serial_dev_enum(dev_name); /* get serial device address */ - struct cell_info ci = get_cellinfo(fdt, offset); - void *reg_ptr = (void *)fdt_getprop(fdt, offset, "reg", NULL); + struct cell_info ci = get_cellinfo(fdt, stdout_offset); + void *reg_ptr = (void *)fdt_getprop(fdt, stdout_offset, "reg", NULL); void *uart_ptr = 0; if (ci.addr_cells == 2) -- cgit v1.3