Merge branch 'master' of git://git.denx.de/u-boot-dm
This commit is contained in:
@@ -44,6 +44,12 @@ obj-$(CONFIG_BITREVERSE) += bitrev.o
|
||||
obj-y += list_sort.o
|
||||
endif
|
||||
|
||||
ifndef CONFIG_SPL_DISABLE_OF_CONTROL
|
||||
obj-$(CONFIG_OF_LIBFDT) += libfdt/
|
||||
obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o
|
||||
obj-$(CONFIG_OF_CONTROL) += fdtdec.o
|
||||
endif
|
||||
|
||||
ifdef CONFIG_SPL_BUILD
|
||||
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += crc16.o
|
||||
obj-$(CONFIG_SPL_NET_SUPPORT) += net_utils.o
|
||||
|
||||
39
lib/fdtdec.c
39
lib/fdtdec.c
@@ -9,6 +9,7 @@
|
||||
#include <serial.h>
|
||||
#include <libfdt.h>
|
||||
#include <fdtdec.h>
|
||||
#include <asm/sections.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
@@ -565,9 +566,11 @@ int fdtdec_prepare_fdt(void)
|
||||
{
|
||||
if (!gd->fdt_blob || ((uintptr_t)gd->fdt_blob & 3) ||
|
||||
fdt_check_header(gd->fdt_blob)) {
|
||||
printf("No valid FDT found - please append one to U-Boot "
|
||||
"binary, use u-boot-dtb.bin or define "
|
||||
"CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>\n");
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
puts("Missing DTB\n");
|
||||
#else
|
||||
puts("No valid device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d <file.dtb>\n");
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
@@ -1035,4 +1038,34 @@ int fdtdec_decode_memory_region(const void *blob, int config_node,
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fdtdec_setup(void)
|
||||
{
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
# ifdef CONFIG_OF_EMBED
|
||||
/* Get a pointer to the FDT */
|
||||
gd->fdt_blob = __dtb_dt_begin;
|
||||
# elif defined CONFIG_OF_SEPARATE
|
||||
# ifdef CONFIG_SPL_BUILD
|
||||
/* FDT is at end of BSS */
|
||||
gd->fdt_blob = (ulong *)&__bss_end;
|
||||
# else
|
||||
/* FDT is at end of image */
|
||||
gd->fdt_blob = (ulong *)&_end;
|
||||
#endif
|
||||
# elif defined(CONFIG_OF_HOSTFILE)
|
||||
if (sandbox_read_fdt_from_file()) {
|
||||
puts("Failed to read control FDT\n");
|
||||
return -1;
|
||||
}
|
||||
# endif
|
||||
# ifndef CONFIG_SPL_BUILD
|
||||
/* Allow the early environment to override the fdt address */
|
||||
gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16,
|
||||
(uintptr_t)gd->fdt_blob);
|
||||
# endif
|
||||
#endif
|
||||
return fdtdec_prepare_fdt();
|
||||
}
|
||||
|
||||
#endif /* !USE_HOSTCC */
|
||||
|
||||
@@ -842,13 +842,11 @@ int sprintf(char *buf, const char *fmt, ...)
|
||||
return i;
|
||||
}
|
||||
|
||||
void panic(const char *fmt, ...)
|
||||
static void panic_finish(void) __attribute__ ((noreturn));
|
||||
|
||||
static void panic_finish(void)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vprintf(fmt, args);
|
||||
putc('\n');
|
||||
va_end(args);
|
||||
#if defined(CONFIG_PANIC_HANG)
|
||||
hang();
|
||||
#else
|
||||
@@ -859,6 +857,21 @@ void panic(const char *fmt, ...)
|
||||
;
|
||||
}
|
||||
|
||||
void panic_str(const char *str)
|
||||
{
|
||||
puts(str);
|
||||
panic_finish();
|
||||
}
|
||||
|
||||
void panic(const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vprintf(fmt, args);
|
||||
va_end(args);
|
||||
panic_finish();
|
||||
}
|
||||
|
||||
void __assert_fail(const char *assertion, const char *file, unsigned line,
|
||||
const char *function)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user