summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-12-31 10:57:54 -0600
committerTom Rini <trini@konsulko.com>2024-12-31 10:57:54 -0600
commit6c76f67ac5f0c796610b624fb839e3f9fc19f775 (patch)
tree6ea22d828039a96400421f486a2c6e68c20cad31 /lib
parentc6fd2a1c29ac3626e14557ac58e15883fbc80ac0 (diff)
parente2f0e9a320d1efba9ed280e9a4b14df661daef54 (diff)
Merge patch series "Keep the access to dtb_dt_embedded() within fdtdec"
Evgeny Bachinin <EABachinin@salutedevices.com> says: The 1st patch addresses comments from the post-review, available by link [1]. The 2nd patch fixes problems of dtb_dt_embedded() with checkpatch. Links: [1] https://lore.kernel.org/u-boot/CAFLszTgEKamsa6FTnjzrEWQBLkqAR7EBbZqffx09AKgQ7ppuVA@mail.gmail.com/#t Link: https://lore.kernel.org/r/20241211-dtb_dt_embedded_within_fdtdec-v1-0-7840469f0084@salutedevices.com
Diffstat (limited to 'lib')
-rw-r--r--lib/fdtdec.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index c5d29d4385a..f09c9926a7a 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -93,6 +93,23 @@ static const char *const fdt_src_name[] = {
[FDTSRC_BLOBLIST] = "bloblist",
};
+extern u8 __dtb_dt_begin[]; /* embedded device tree blob */
+extern u8 __dtb_dt_spl_begin[]; /* embedded device tree blob for SPL/TPL */
+
+/* Get a pointer to the embedded devicetree, if there is one, else NULL */
+static u8 *dtb_dt_embedded(void)
+{
+ u8 *addr = NULL;
+
+ if (IS_ENABLED(CONFIG_OF_EMBED)) {
+ addr = __dtb_dt_begin;
+
+ if (IS_ENABLED(CONFIG_XPL_BUILD))
+ addr = __dtb_dt_spl_begin;
+ }
+ return addr;
+}
+
const char *fdtdec_get_srcname(void)
{
return fdt_src_name[gd->fdt_src];
@@ -1664,6 +1681,12 @@ static void setup_multi_dtb_fit(void)
}
}
+void fdtdec_setup_embed(void)
+{
+ gd->fdt_blob = dtb_dt_embedded();
+ gd->fdt_src = FDTSRC_EMBED;
+}
+
int fdtdec_setup(void)
{
int ret = -ENOENT;
@@ -1699,8 +1722,7 @@ int fdtdec_setup(void)
gd->fdt_blob = fdt_find_separate();
gd->fdt_src = FDTSRC_SEPARATE;
} else { /* embed dtb in ELF file for testing / development */
- gd->fdt_blob = dtb_dt_embedded();
- gd->fdt_src = FDTSRC_EMBED;
+ fdtdec_setup_embed();
}
}