bootstd: Fix comment in bootmeth test
[platform/kernel/u-boot.git] / lib / fdtdec.c
index 8cfa958..96b6b71 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef USE_HOSTCC
 #include <common.h>
 #include <boot_fit.h>
+#include <display_options.h>
 #include <dm.h>
 #include <hang.h>
 #include <init.h>
@@ -76,6 +77,19 @@ static const char * const compat_names[COMPAT_COUNT] = {
        COMPAT(ALTERA_SOCFPGA_CLK_INIT, "altr,socfpga-a10-clk-init")
 };
 
+static const char *const fdt_src_name[] = {
+       [FDTSRC_SEPARATE] = "separate",
+       [FDTSRC_FIT] = "fit",
+       [FDTSRC_BOARD] = "board",
+       [FDTSRC_EMBED] = "embed",
+       [FDTSRC_ENV] = "env",
+};
+
+const char *fdtdec_get_srcname(void)
+{
+       return fdt_src_name[gd->fdt_src];
+}
+
 const char *fdtdec_get_compatible(enum fdt_compat_id id)
 {
        /* We allow reading of the 'unknown' ID for testing purposes */
@@ -238,14 +252,7 @@ int fdtdec_get_pci_bar32(const struct udevice *dev, struct fdt_pci_addr *addr,
 
        barnum = (barnum - PCI_BASE_ADDRESS_0) / 4;
 
-       /*
-        * There is a strange toolchain bug with nds32 which complains about
-        * an undefined reference here, even if fdtdec_get_pci_bar32() is never
-        * called. An #ifdef seems to be the only fix!
-        */
-#if !IS_ENABLED(CONFIG_NDS32)
        *bar = dm_pci_read_bar32(dev, barnum);
-#endif
 
        return 0;
 }
@@ -510,11 +517,8 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int offset,
                 * Adding an extra check to distinguish DT nodes with
                 * same name
                 */
-               if (IS_ENABLED(CONFIG_PHANDLE_CHECK_SEQ)) {
-                       if (fdt_get_phandle(blob, offset) !=
-                           fdt_get_phandle(blob, fdt_path_offset(blob, prop)))
-                               continue;
-               }
+               if (offset != fdt_path_offset(blob, prop))
+                       continue;
 
                val = trailing_strtol(name);
                if (val != -1) {
@@ -643,7 +647,7 @@ int fdtdec_lookup_phandle(const void *blob, int node, const char *prop_name)
  * @param min_len      minimum property length in bytes
  * @param err          0 if ok, or -FDT_ERR_NOTFOUND if the property is not
                        found, or -FDT_ERR_BADLAYOUT if not enough data
- * @return pointer to cell, which is only valid if err == 0
+ * Return: pointer to cell, which is only valid if err == 0
  */
 static const void *get_prop_check_min_len(const void *blob, int node,
                                          const char *prop_name, int min_len,
@@ -1206,12 +1210,15 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
 /**
  * fdt_find_separate() - Find a devicetree at the end of the image
  *
- * @return pointer to FDT blob
+ * Return: pointer to FDT blob
  */
 static void *fdt_find_separate(void)
 {
        void *fdt_blob = NULL;
 
+       if (IS_ENABLED(CONFIG_SANDBOX))
+               return NULL;
+
 #ifdef CONFIG_SPL_BUILD
        /* FDT is at end of BSS unless it is in a different memory region */
        if (IS_ENABLED(CONFIG_SPL_SEPARATE_BSS))
@@ -1582,6 +1589,7 @@ int fdtdec_set_carveout(void *blob, const char *node, const char *prop_name,
        return 0;
 }
 
+/* TODO(sjg@chromium.org): This function should not be weak */
 __weak int fdtdec_board_setup(const void *fdt_blob)
 {
        return 0;