summaryrefslogtreecommitdiff
path: root/lib/fdtdec.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-10-17 19:41:19 -0600
committerMichal Simek <michal.simek@xilinx.com>2015-11-04 14:49:52 +0100
commit10172962479ddd6609101fdb83bde66c0719852c (patch)
treee196e182c84e2bab9fecbfdc059e042f05a84965 /lib/fdtdec.c
parent021b4d117cc9df9dba65c07f40d242e6d09f3106 (diff)
downloadu-boot-imx-10172962479ddd6609101fdb83bde66c0719852c.zip
u-boot-imx-10172962479ddd6609101fdb83bde66c0719852c.tar.gz
u-boot-imx-10172962479ddd6609101fdb83bde66c0719852c.tar.bz2
dm: spl: Support device tree when BSS is in a different section
At present in SPL we place the device tree immediately after BSS. This avoids needing to copy it out of the way before BSS can be used. However on some boards BSS is not placed with the image - e.g. it can be in RAM if available. Add an option to tell U-Boot that the device tree should be placed at the end of the image binary (_image_binary_end) instead of at the end of BSS. Note: A common reason to place BSS in RAM is to support the FAT filesystem. We should update the code so that it does not use so much BSS. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'lib/fdtdec.c')
-rw-r--r--lib/fdtdec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index e1df144..c1b5177 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1222,8 +1222,11 @@ int fdtdec_setup(void)
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;
+ /* FDT is at end of BSS unless it is in a different memory region */
+ if (IS_ENABLED(CONFIG_SPL_SEPARATE_BSS))
+ gd->fdt_blob = (ulong *)&_image_binary_end;
+ else
+ gd->fdt_blob = (ulong *)&__bss_end;
# else
/* FDT is at end of image */
gd->fdt_blob = (ulong *)&_end;