sunxi/arm64 build broken (was: [PATCH v4 12/27] x86: Makefile: Drop explicit targets built by binman)
sjg at chromium.org
Fri Aug 7 17:44:58 CEST 2020
On Thu, 6 Aug 2020 at 22:20, Samuel Holland <samuel at sholland.org> wrote:
> On 8/5/20 1:25 PM, Simon Glass wrote:
> >>> The last build steps with your patch are:
> >>> cat spl/sunxi-spl.bin u-boot.itb > u-boot-sunxi-with-spl.bin
> >>> ./tools/binman/binman --toolpath ./tools build -u -d u-boot.dtb -O .
> >>> -m --allow-missing -I . -I . -I ./board/sunxi
> >>> The file before binman is ok. After binman u-boot-sunxi-with-spl.bin is
> >>> broken.
> >>> Nowhere in the commit message you state that you want to run binman on
> >>> sunxi boards.
> > BTW the commit does not change this. Sunxi boards were already using binman.
> That is only half true. Before this commit, binman was *not* run for sunxi when
> CONFIG_ARM64=y. 32-bit boards used binman with u-boot.img, and 64-bit boards
> used mksunxi_fit_atf.sh to generate a FIT.
> Since converting mksunxi_fit_atf.sh to the binman equivalent is nontrivial (how
> do you expect to get environment variables into the device tree?), binman should
> be disabled for sunxi with CONFIG_ARM64=y.
> A workaround for those affected by this breakage: instead of running `make` with
> no goals, run `make u-boot-sunxi-with-spl.bin` or the recently-added `make
> inputs` to skip the binman step.
It's a bit confusing, but the problem is that binman does create that
file, overwriting what is there, but the binman definition lacks ATF.
So I think a little hack can fix it for now. Will send a patch.
More information about the U-Boot