aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-09-19 00:21:33 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2021-09-19 13:58:44 +0300
commit92e36b3995ce4a7e5ed6676373106d9aaad56816 (patch)
tree8f63b05f49d9e29cbf7eb619bd29e6357787a77e /arch
parent605c7d9258c129b66b76f1b55a8a6f3cea68c13e (diff)
downloadkmi-92e36b3995ce4a7e5ed6676373106d9aaad56816.tar.gz
kmi-92e36b3995ce4a7e5ed6676373106d9aaad56816.zip
dbg initialized with path in /chosen/stdout-path
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv/init/init.c11
1 files changed, 7 insertions, 4 deletions
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)