projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pci: Do not skip legacy IDE device configuration
[oweals/u-boot.git]
/
common
/
image-fdt.c
diff --git
a/common/image-fdt.c
b/common/image-fdt.c
index 1d76bd60da843404d9dda64e4c5a93630e7ecb5e..7e2da7b3b7218d10c40167e1d80c0d678ff47c1a 100644
(file)
--- a/
common/image-fdt.c
+++ b/
common/image-fdt.c
@@
-14,6
+14,7
@@
#include <errno.h>
#include <image.h>
#include <libfdt.h>
#include <errno.h>
#include <image.h>
#include <libfdt.h>
+#include <mapmem.h>
#include <asm/io.h>
#ifndef CONFIG_SYS_FDT_PAD
#include <asm/io.h>
#ifndef CONFIG_SYS_FDT_PAD
@@
-190,7
+191,7
@@
int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
*of_flat_tree = of_start;
*of_size = of_len;
*of_flat_tree = of_start;
*of_size = of_len;
- set_working_fdt_addr(*of_flat_tree);
+ set_working_fdt_addr(
(ulong)
*of_flat_tree);
return 0;
error:
return 0;
error:
@@
-237,6
+238,7
@@
int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,
int fdt_noffset;
#endif
const char *select = NULL;
int fdt_noffset;
#endif
const char *select = NULL;
+ int ok_no_fdt = 0;
*of_flat_tree = NULL;
*of_size = 0;
*of_flat_tree = NULL;
*of_size = 0;
@@
-309,7
+311,7
@@
int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,
fdt_addr);
fdt_hdr = image_get_fdt(fdt_addr);
if (!fdt_hdr)
fdt_addr);
fdt_hdr = image_get_fdt(fdt_addr);
if (!fdt_hdr)
- goto
error
;
+ goto
no_fdt
;
/*
* move image data to the load address,
/*
* move image data to the load address,
@@
-379,7
+381,7
@@
int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,
break;
default:
puts("ERROR: Did not find a cmdline Flattened Device Tree\n");
break;
default:
puts("ERROR: Did not find a cmdline Flattened Device Tree\n");
- goto
error
;
+ goto
no_fdt
;
}
printf(" Booting using the fdt blob at %#08lx\n", fdt_addr);
}
printf(" Booting using the fdt blob at %#08lx\n", fdt_addr);
@@
-413,11
+415,11
@@
int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,
}
} else {
debug("## No Flattened Device Tree\n");
}
} else {
debug("## No Flattened Device Tree\n");
- goto
error
;
+ goto
no_fdt
;
}
} else {
debug("## No Flattened Device Tree\n");
}
} else {
debug("## No Flattened Device Tree\n");
- goto
error
;
+ goto
no_fdt
;
}
*of_flat_tree = fdt_blob;
}
*of_flat_tree = fdt_blob;
@@
-427,9
+429,15
@@
int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,
return 0;
return 0;
+no_fdt:
+ ok_no_fdt = 1;
error:
*of_flat_tree = NULL;
*of_size = 0;
error:
*of_flat_tree = NULL;
*of_size = 0;
+ if (!select && ok_no_fdt) {
+ debug("Continuing to boot without FDT\n");
+ return 0;
+ }
return 1;
}
return 1;
}