u32 phys_lo;
};
+extern u8 __dtb_dt_begin[]; /* embedded device tree blob */
+extern u8 __dtb_dt_spl_begin[]; /* embedded device tree blob for SPL/TPL */
+
/**
* Compute the size of a resource.
*
* @param bar returns base address of the pci device's registers
* @return 0 if ok, negative on error
*/
-int fdtdec_get_pci_bar32(struct udevice *dev, struct fdt_pci_addr *addr,
+int fdtdec_get_pci_bar32(const struct udevice *dev, struct fdt_pci_addr *addr,
u32 *bar);
/**
struct display_timing *config);
/**
- * fdtdec_setup_mem_size_base_fdt() - decode and setup gd->ram_size and
+ * fdtdec_setup_mem_size_base() - decode and setup gd->ram_size and
* gd->ram_start
*
* Decode the /memory 'reg' property to determine the size and start of the
* address instead of hard coding the value in the case where the memory size
* and start address cannot be detected automatically.
*
- * @param blob FDT blob
- *
* @return 0 if OK, -EINVAL if the /memory node or reg property is missing or
* invalid
*/
-int fdtdec_setup_mem_size_base_fdt(const void *blob);
+int fdtdec_setup_mem_size_base(void);
/**
- * fdtdec_setup_mem_size_base() - decode and setup gd->ram_size and
- * gd->ram_start
+ * fdtdec_setup_mem_size_base_lowest() - decode and setup gd->ram_size and
+ * gd->ram_start by lowest available memory base
*
- * Decode the /memory 'reg' property to determine the size and start of the
- * first memory bank, populate the global data with the size and start of the
- * first bank of memory.
+ * Decode the /memory 'reg' property to determine the lowest start of the memory
+ * bank bank and populate the global data with it.
*
* This function should be called from a boards dram_init(). This helper
* function allows for boards to query the device tree for DRAM size and start
* @return 0 if OK, -EINVAL if the /memory node or reg property is missing or
* invalid
*/
-int fdtdec_setup_mem_size_base(void);
-
-/**
- * fdtdec_setup_memory_banksize_fdt() - decode and populate gd->bd->bi_dram
- *
- * Decode the /memory 'reg' property to determine the address and size of the
- * memory banks. Use this data to populate the global data board info with the
- * phys address and size of memory banks.
- *
- * This function should be called from a boards dram_init_banksize(). This
- * helper function allows for boards to query the device tree for memory bank
- * information instead of hard coding the information in cases where it cannot
- * be detected automatically.
- *
- * @param blob FDT blob
- *
- * @return 0 if OK, -EINVAL if the /memory node or reg property is missing or
- * invalid
- */
-int fdtdec_setup_memory_banksize_fdt(const void *blob);
+int fdtdec_setup_mem_size_base_lowest(void);
/**
* fdtdec_setup_memory_banksize() - decode and populate gd->bd->bi_dram
*/
int fdtdec_setup(void);
+/**
+ * Perform board-specific early DT adjustments
+ */
+int fdtdec_board_setup(const void *fdt_blob);
+
#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
/**
* fdtdec_resetup() - Set up the device tree again