aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Holland <samuel.holland@sifive.com>2024-07-30 21:58:56 -0700
committerAnup Patel <anup@brainfault.org>2024-08-24 13:03:01 +0530
commitc36801841e366fa3ddeb7d7888b8691006c0b552 (patch)
tree4af77b9a9684dd6d3a3bd6a88dd54c567a54c46d
parentfa6dfce017eed32cbae2581bc285bafd52929d42 (diff)
downloadopensbi-c36801841e366fa3ddeb7d7888b8691006c0b552.tar.gz
opensbi-c36801841e366fa3ddeb7d7888b8691006c0b552.tar.bz2
opensbi-c36801841e366fa3ddeb7d7888b8691006c0b552.zip
lib: utils/serial: Pass the FDT to fdt_serial_init()
Indicate that this function does not modify the FDT blob, and deduplicate the call to fdt_get_address(). Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Anup Patel <anup@brainfault.org>
-rw-r--r--include/sbi_utils/serial/fdt_serial.h4
-rw-r--r--lib/utils/serial/fdt_serial.c3
-rw-r--r--platform/generic/platform.c2
3 files changed, 4 insertions, 5 deletions
diff --git a/include/sbi_utils/serial/fdt_serial.h b/include/sbi_utils/serial/fdt_serial.h
index a0053a16..572475c9 100644
--- a/include/sbi_utils/serial/fdt_serial.h
+++ b/include/sbi_utils/serial/fdt_serial.h
@@ -19,11 +19,11 @@ struct fdt_serial {
int (*init)(const void *fdt, int nodeoff, const struct fdt_match *match);
};
-int fdt_serial_init(void);
+int fdt_serial_init(const void *fdt);
#else
-static inline int fdt_serial_init(void) { return 0; }
+static inline int fdt_serial_init(const void *fdt) { return 0; }
#endif
diff --git a/lib/utils/serial/fdt_serial.c b/lib/utils/serial/fdt_serial.c
index 6f995cf7..a2a96cb2 100644
--- a/lib/utils/serial/fdt_serial.c
+++ b/lib/utils/serial/fdt_serial.c
@@ -17,13 +17,12 @@
extern struct fdt_serial *fdt_serial_drivers[];
extern unsigned long fdt_serial_drivers_size;
-int fdt_serial_init(void)
+int fdt_serial_init(const void *fdt)
{
const void *prop;
struct fdt_serial *drv;
const struct fdt_match *match;
int pos, noff = -1, len, coff, rc;
- const void *fdt = fdt_get_address();
/* Find offset of node pointed to by stdout-path */
coff = fdt_path_offset(fdt, "/chosen");
diff --git a/platform/generic/platform.c b/platform/generic/platform.c
index 2850d55d..7c809b00 100644
--- a/platform/generic/platform.c
+++ b/platform/generic/platform.c
@@ -230,7 +230,7 @@ static int generic_early_init(bool cold_boot)
if (semihosting_enabled())
rc = semihosting_init();
else
- rc = fdt_serial_init();
+ rc = fdt_serial_init(fdt);
if (rc)
return rc;
}