|
@@ -8,6 +8,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <common.h>
|
|
|
+#include <binman_sym.h>
|
|
|
#include <dm.h>
|
|
|
#include <spl.h>
|
|
|
#include <asm/u-boot.h>
|
|
@@ -32,6 +33,9 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
|
u32 *boot_params_ptr = NULL;
|
|
|
|
|
|
+/* See spl.h for information about this */
|
|
|
+binman_sym_declare(ulong, u_boot_any, pos);
|
|
|
+
|
|
|
/* Define board data structure */
|
|
|
static bd_t bdata __attribute__ ((section(".data")));
|
|
|
|
|
@@ -120,9 +124,17 @@ __weak void spl_board_prepare_for_boot(void)
|
|
|
|
|
|
void spl_set_header_raw_uboot(struct spl_image_info *spl_image)
|
|
|
{
|
|
|
+ ulong u_boot_pos = binman_sym(ulong, u_boot_any, pos);
|
|
|
+
|
|
|
spl_image->size = CONFIG_SYS_MONITOR_LEN;
|
|
|
- spl_image->entry_point = CONFIG_SYS_UBOOT_START;
|
|
|
- spl_image->load_addr = CONFIG_SYS_TEXT_BASE;
|
|
|
+ if (u_boot_pos != BINMAN_SYM_MISSING) {
|
|
|
+ /* biman does not support separate entry addresses at present */
|
|
|
+ spl_image->entry_point = u_boot_pos;
|
|
|
+ spl_image->load_addr = u_boot_pos;
|
|
|
+ } else {
|
|
|
+ spl_image->entry_point = CONFIG_SYS_UBOOT_START;
|
|
|
+ spl_image->load_addr = CONFIG_SYS_TEXT_BASE;
|
|
|
+ }
|
|
|
spl_image->os = IH_OS_U_BOOT;
|
|
|
spl_image->name = "U-Boot";
|
|
|
}
|