Hi AKASHI-san On Thu, Jun 27, 2019 at 9:44 AM AKASHI Takahiro <takahiro.aka...@linaro.org> wrote: > > Yamada-san, > > On Wed, Jun 26, 2019 at 01:51:46PM +0900, Masahiro Yamada wrote: > > By default, CONFIG_SYS_INIT_SP_BSS_OFFSET was made invisible by not > > giving a prompt to it. > > > > The only way to define it is to hard-code an extra entry in SoC/board > > Kconfig, like arch/arm/mach-tegra/tegra{186,210}/Kconfig. > > > > Add a prompt to it in order to allow defconfig files to specify the > > value of CONFIG_SYS_INIT_SP_BSS_OFFSET. > > > > With this, CONFIG_SYS_INIT_SP_BSS_OFFSET would become always visible. > > So, we need a new bool option to turn it off by default. > > > > I move the 'default 524288' to the common place. This value is not too > > big, but is big enough to avoid the overwrap of DT in most platforms. > > If 512KB is not a suitable choice for your platform, you can change it > > from your defconfig or menuconfig etc. > > > > Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> > > --- > > > > Perhaps, another idea is to use "offset from TEXT_BASE", > > allowing a negative offset value. > > > > For example, include/configs/uniphier.h defines: > > > > #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE) > > > > My intention is, allocate the early stack _before_ the U-Boot binary, > > not after it. > > > > With this, I do not need to care about the region conflict with > > other sections. > > > > The disadvantage of this approach is, you cannot load U-Boot > > to the very start of the memory. > > > > Just an idea. > > > > > > Makefile | 4 ++-- > > arch/arm/Kconfig | 20 ++++++++++++++----- > > .../armv8/linux-kernel-image-header-vars.h | 2 +- > > arch/arm/lib/crt0_64.S | 2 +- > > arch/arm/mach-tegra/Kconfig | 1 + > > arch/arm/mach-tegra/tegra186/Kconfig | 3 --- > > arch/arm/mach-tegra/tegra210/Kconfig | 3 --- > > 7 files changed, 20 insertions(+), 15 deletions(-) > > > > diff --git a/Makefile b/Makefile > > index 6335834d12e1..9a5afd3098ce 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -874,7 +874,7 @@ ifneq ($(CONFIG_BUILD_TARGET),) > > ALL-y += $(CONFIG_BUILD_TARGET:"%"=%) > > endif > > > > -ifneq ($(CONFIG_SYS_INIT_SP_BSS_OFFSET),) > > +ifdef CONFIG_INIT_SP_RELATIVE > > ALL-y += init_sp_bss_offset_check > > This config/target will create a dependency of u-boot.dtb target, > and it will cause an error in building dtbs for qemu_arm64 > which doesn't expect any dtb. You will see messages like: > >>> > Device Tree Source is not correctly specified. > Please define 'CONFIG_DEFAULT_DEVICE_TREE' > or build with 'DEVICE_TREE=<device_tree>' argument > > /home/akashi/arm/armv8/linaro/u-boot/dts/Makefile:28: recipe for target > 'arch/arm/dts/unset.dtb' failed > make[2]: *** [arch/arm/dts/unset.dtb] Error 1 > /home/akashi/arm/armv8/linaro/u-boot/Makefile:1052: recipe for target > 'dts/dt.dtb' failed > make[1]: *** [dts/dt.dtb] Error 2 > <<<
Nope. I do not see any build error for qemu_arm64_defconfig Probably because you *locally* defined CONFIG_INIT_SP_RELATIVE=y Moreover, the line causing this issue is this: init_sp_bss_offset_check: u-boot.dtb FORCE ..., which was added by the following commit: commit 5fed97af20da955625cc06563a725b49cebb99eb Author: Stephen Warren <swar...@nvidia.com> Date: Tue Jan 9 12:52:14 2018 -0700 Makefile: ensure DTB doesn't overflow into initial stack If you want to fix it, a patch is welcome, but my patch is innocent. Thanks. -- Best Regards Masahiro Yamada _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot