diff options
author | Alistair Francis <alistair.francis@wdc.com> | 2022-02-24 08:01:46 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2022-02-28 07:20:09 +0300 |
commit | 4998a712b2ab504eff306110879ee05af6050177 (patch) | |
tree | 06d30b2ca0c802d89254ed61b13321a1a0b74935 /lib/utils/fdt | |
parent | f3f4604c196dea70b0bb64aba747aa6d7a9e244f (diff) | |
download | opensbi-4998a712b2ab504eff306110879ee05af6050177.tar.xz |
lib: utils: serial: Initial commit of xlnx-uartlite
Initial commit of the xlnx-uartlite device and FDT support. This was
tested by running OpenSBI on a modified QEMU virt machine using the
xlnx-uartlite for serial.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Xiang W <wxjstz@126.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib/utils/fdt')
-rw-r--r-- | lib/utils/fdt/fdt_helper.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/utils/fdt/fdt_helper.c b/lib/utils/fdt/fdt_helper.c index 3a306cb..4dd0602 100644 --- a/lib/utils/fdt/fdt_helper.c +++ b/lib/utils/fdt/fdt_helper.c @@ -467,6 +467,24 @@ int fdt_parse_uart8250(void *fdt, struct platform_uart_data *uart, return fdt_parse_uart8250_node(fdt, nodeoffset, uart); } +int fdt_parse_xlnx_uartlite_node(void *fdt, int nodeoffset, + struct platform_uart_data *uart) +{ + int rc; + uint64_t reg_addr, reg_size; + + if (nodeoffset < 0 || !uart || !fdt) + return SBI_ENODEV; + + rc = fdt_get_node_addr_size(fdt, nodeoffset, 0, + ®_addr, ®_size); + if (rc < 0 || !reg_addr || !reg_size) + return SBI_ENODEV; + uart->addr = reg_addr; + + return 0; +} + int fdt_parse_aplic_node(void *fdt, int nodeoff, struct aplic_data *aplic) { bool child_found; |