Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77caae89c6 | ||
|
|
a88f242a01 | ||
|
|
6c54214460 |
@@ -3,6 +3,8 @@
|
|||||||
* (C) Copyright 2012-2016 Stephen Warren
|
* (C) Copyright 2012-2016 Stephen Warren
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define LOG_CATEGORY LOGC_BOARD
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
#include <env.h>
|
#include <env.h>
|
||||||
@@ -325,19 +327,10 @@ static void set_fdtfile(void)
|
|||||||
env_set("fdtfile", fdtfile);
|
env_set("fdtfile", fdtfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* Allow U-Boot to use its control FDT with extlinux if one is not provided */
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
static void set_fdt_addr(void)
|
static void set_fdt_addr(void)
|
||||||
{
|
{
|
||||||
if (env_get("fdt_addr"))
|
env_set_hex("fdt_addr", (ulong)gd->fdt_blob);
|
||||||
return;
|
|
||||||
|
|
||||||
if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
|
|
||||||
return;
|
|
||||||
|
|
||||||
env_set_hex("fdt_addr", fw_dtb_pointer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -572,7 +565,10 @@ int ft_board_setup(void *blob, struct bd_info *bd)
|
|||||||
{
|
{
|
||||||
int node;
|
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");
|
node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
|
||||||
if (node < 0)
|
if (node < 0)
|
||||||
|
|||||||
@@ -69,9 +69,11 @@ fdt_high=ffffffff
|
|||||||
initrd_high=ffffffff
|
initrd_high=ffffffff
|
||||||
#endif
|
#endif
|
||||||
kernel_addr_r=0x00080000
|
kernel_addr_r=0x00080000
|
||||||
scriptaddr=0x02400000
|
kernel_comp_addr_r=0x02000000
|
||||||
pxefile_addr_r=0x02500000
|
kernel_comp_size=0x02000000
|
||||||
fdt_addr_r=0x02600000
|
scriptaddr=0x05400000
|
||||||
ramdisk_addr_r=0x02700000
|
pxefile_addr_r=0x05500000
|
||||||
|
fdt_addr_r=0x05600000
|
||||||
|
ramdisk_addr_r=0x05700000
|
||||||
|
|
||||||
boot_targets=mmc usb pxe dhcp
|
boot_targets=mmc usb pxe dhcp
|
||||||
|
|||||||
@@ -553,8 +553,10 @@ static int reserve_fdt(void)
|
|||||||
* section, then it will be relocated with other data.
|
* section, then it will be relocated with other data.
|
||||||
*/
|
*/
|
||||||
if (gd->fdt_blob) {
|
if (gd->fdt_blob) {
|
||||||
gd->boardf->fdt_size =
|
int size = fdt_totalsize(gd->fdt_blob);
|
||||||
ALIGN(fdt_totalsize(gd->fdt_blob), 32);
|
|
||||||
|
gd->boardf->fdt_size = ALIGN(size + CONFIG_OF_EXPAND,
|
||||||
|
32);
|
||||||
|
|
||||||
gd->start_addr_sp = reserve_stack_aligned(
|
gd->start_addr_sp = reserve_stack_aligned(
|
||||||
gd->boardf->fdt_size);
|
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
|
This is used for boards which normally provide a devicetree via a
|
||||||
runtime mechanism (such as OF_BOARD), to avoid confusion.
|
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
|
config DEFAULT_DEVICE_TREE
|
||||||
string "Default Device Tree for DT control"
|
string "Default Device Tree for DT control"
|
||||||
depends on OF_CONTROL
|
depends on OF_CONTROL
|
||||||
|
|||||||
Reference in New Issue
Block a user