Merge git://git.denx.de/u-boot-tegra
authorTom Rini <trini@konsulko.com>
Fri, 12 Jan 2018 19:18:34 +0000 (14:18 -0500)
committerTom Rini <trini@konsulko.com>
Fri, 12 Jan 2018 19:18:34 +0000 (14:18 -0500)
1  2 
Makefile

diff --combined Makefile
index 23cd34025f3d4d7d6d14fc3c79ae8a9af85e9ccc,52cd6ea72161f01a02c1eac7e0378fb4dd0af9d7..4981a2ed6f4ab16200fe347161c3f0774393f40e
+++ b/Makefile
@@@ -811,6 -811,10 +811,10 @@@ ifneq ($(CONFIG_BUILD_TARGET),
  ALL-y += $(CONFIG_BUILD_TARGET:"%"=%)
  endif
  
+ ifneq ($(CONFIG_SYS_INIT_SP_BSS_OFFSET),)
+ ALL-y += init_sp_bss_offset_check
+ endif
  LDFLAGS_u-boot += $(LDFLAGS_FINAL)
  
  # Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
@@@ -939,6 -943,33 +943,33 @@@ binary_size_check: u-boot-nodtb.bin FOR
                fi \
        fi
  
+ ifneq ($(CONFIG_SYS_INIT_SP_BSS_OFFSET),)
+ ifneq ($(CONFIG_SYS_MALLOC_F_LEN),)
+ subtract_sys_malloc_f_len = space=$$(($${space} - $(CONFIG_SYS_MALLOC_F_LEN)))
+ else
+ subtract_sys_malloc_f_len = true
+ endif
+ # The 1/4 margin below is somewhat arbitrary. The likely initial SP usage is
+ # so low that the DTB could probably use 90%+ of the available space, for
+ # current values of CONFIG_SYS_INIT_SP_BSS_OFFSET at least. However, let's be
+ # safe for now and tweak this later if space becomes tight.
+ # A rejected alternative would be to check that some absolute minimum stack
+ # space was available. However, since CONFIG_SYS_INIT_SP_BSS_OFFSET is
+ # deliberately build-specific, to take account of build-to-build stack usage
+ # differences due to different feature sets, there is no common absolute value
+ # to check against.
+ init_sp_bss_offset_check: u-boot.dtb FORCE
+       @dtb_size=$(shell wc -c u-boot.dtb | awk '{print $$1}') ; \
+       space=$(CONFIG_SYS_INIT_SP_BSS_OFFSET) ; \
+       $(subtract_sys_malloc_f_len) ; \
+       quarter_space=$$(($${space} / 4)) ; \
+       if [ $${dtb_size} -gt $${quarter_space} ]; then \
+               echo "u-boot.dtb is larger than 1 quarter of " >&2 ; \
+               echo "(CONFIG_SYS_INIT_SP_BSS_OFFSET - CONFIG_SYS_MALLOC_F_LEN)" >&2 ; \
+               exit 1 ; \
+       fi
+ endif
  u-boot-nodtb.bin: u-boot FORCE
        $(call if_changed,objcopy)
        $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
@@@ -1264,10 -1295,6 +1295,10 @@@ ifeq ($(CONFIG_KALLSYMS),y
        $(call cmd,u-boot__) common/system_map.o
  endif
  
 +ifeq ($(CONFIG_RISCV),y)
 +      @tools/prelink-riscv $@ 0
 +endif
 +
  quiet_cmd_sym ?= SYM     $@
        cmd_sym ?= $(OBJDUMP) -t $< > $@
  u-boot.sym: u-boot FORCE