Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77caae89c6 | ||
|
|
a88f242a01 | ||
|
|
6c54214460 |
@@ -3,6 +3,8 @@
|
||||
* (C) Copyright 2012-2016 Stephen Warren
|
||||
*/
|
||||
|
||||
#define LOG_CATEGORY LOGC_BOARD
|
||||
|
||||
#include <config.h>
|
||||
#include <dm.h>
|
||||
#include <env.h>
|
||||
@@ -325,19 +327,10 @@ static void set_fdtfile(void)
|
||||
env_set("fdtfile", fdtfile);
|
||||
}
|
||||
|
||||
/*
|
||||
* If the firmware provided a valid FDT at boot time, let's expose it in
|
||||
* ${fdt_addr} so it may be passed unmodified to the kernel.
|
||||
*/
|
||||
/* Allow U-Boot to use its control FDT with extlinux if one is not provided */
|
||||
static void set_fdt_addr(void)
|
||||
{
|
||||
if (env_get("fdt_addr"))
|
||||
return;
|
||||
|
||||
if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
|
||||
return;
|
||||
|
||||
env_set_hex("fdt_addr", fw_dtb_pointer);
|
||||
env_set_hex("fdt_addr", (ulong)gd->fdt_blob);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -572,7 +565,10 @@ int ft_board_setup(void *blob, struct bd_info *bd)
|
||||
{
|
||||
int node;
|
||||
|
||||
update_fdt_from_fw(blob, (void *)fw_dtb_pointer);
|
||||
if (blob == gd->fdt_blob)
|
||||
log_debug("Same FDT: nothing to do\n");
|
||||
else
|
||||
update_fdt_from_fw(blob, (void *)gd->fdt_blob);
|
||||
|
||||
node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
|
||||
if (node < 0)
|
||||
|
||||
@@ -69,9 +69,11 @@ fdt_high=ffffffff
|
||||
initrd_high=ffffffff
|
||||
#endif
|
||||
kernel_addr_r=0x00080000
|
||||
scriptaddr=0x02400000
|
||||
pxefile_addr_r=0x02500000
|
||||
fdt_addr_r=0x02600000
|
||||
ramdisk_addr_r=0x02700000
|
||||
kernel_comp_addr_r=0x02000000
|
||||
kernel_comp_size=0x02000000
|
||||
scriptaddr=0x05400000
|
||||
pxefile_addr_r=0x05500000
|
||||
fdt_addr_r=0x05600000
|
||||
ramdisk_addr_r=0x05700000
|
||||
|
||||
boot_targets=mmc usb pxe dhcp
|
||||
|
||||
@@ -553,8 +553,10 @@ static int reserve_fdt(void)
|
||||
* section, then it will be relocated with other data.
|
||||
*/
|
||||
if (gd->fdt_blob) {
|
||||
gd->boardf->fdt_size =
|
||||
ALIGN(fdt_totalsize(gd->fdt_blob), 32);
|
||||
int size = fdt_totalsize(gd->fdt_blob);
|
||||
|
||||
gd->boardf->fdt_size = ALIGN(size + CONFIG_OF_EXPAND,
|
||||
32);
|
||||
|
||||
gd->start_addr_sp = reserve_stack_aligned(
|
||||
gd->boardf->fdt_size);
|
||||
|
||||
11
dts/Kconfig
11
dts/Kconfig
@@ -219,6 +219,17 @@ config OF_OMIT_DTB
|
||||
This is used for boards which normally provide a devicetree via a
|
||||
runtime mechanism (such as OF_BOARD), to avoid confusion.
|
||||
|
||||
config OF_EXPAND
|
||||
hex # "Amount to allow the control FDT to expand"
|
||||
default SYS_FDT_PAD if OF_LIBFDT
|
||||
default 0
|
||||
help
|
||||
Some boards make use of the control FDT to boot an OS, thus when
|
||||
image_setup_libfdt() adds extra things to the end of the FDT, there
|
||||
needs to be enough space.
|
||||
|
||||
Set this to the number of bytes of extra space required for the FDT.
|
||||
|
||||
config DEFAULT_DEVICE_TREE
|
||||
string "Default Device Tree for DT control"
|
||||
depends on OF_CONTROL
|
||||
|
||||
Reference in New Issue
Block a user