Hi Michal, On Mon, 7 Sep 2020 at 07:02, Michal Simek <michal.si...@xilinx.com> wrote: > > Hi, > > On 06. 09. 20 2:18, Simon Glass wrote: > > Hi Samuel, > > > > On Sat, 5 Sep 2020 at 17:10, Samuel Holland <sam...@sholland.org> wrote: > >> > >> On 9/1/20 6:14 AM, Simon Glass wrote: > >>> At present 64-bit sunxi boards use the Makefile to create a FIT, using > >>> USE_SPL_FIT_GENERATOR. This is deprecated. > >>> > >>> Update sunxi to use binman instead. > >>> > >>> Signed-off-by: Simon Glass <s...@chromium.org> > >>> --- > >>> > >>> (no changes since v2) > >>> > >>> Changes in v2: > >>> - Add a 'fit-fdt-list' property > >>> - Fix 'board' typo in commit message > >>> > >>> Kconfig | 3 +- > >>> Makefile | 18 ++-------- > >>> arch/arm/dts/sunxi-u-boot.dtsi | 61 +++++++++++++++++++++++++++++++++- > >>> 3 files changed, 63 insertions(+), 19 deletions(-) > >>> > >>> diff --git a/Kconfig b/Kconfig > >>> index 883e3f71d01..837b2f517ae 100644 > >>> --- a/Kconfig > >>> +++ b/Kconfig > >>> @@ -659,12 +659,11 @@ config SPL_FIT_SOURCE > >>> > >>> config USE_SPL_FIT_GENERATOR > >>> bool "Use a script to generate the .its script" > >>> - default y if SPL_FIT > >>> + default y if SPL_FIT && !ARCH_SUNXI > >> > >> Now `make u-boot.itb` doesn't work. > >> > >> u-boot.itb is helpful to have because, with CONFIG_OF_LIST, it can be > >> shared > >> across all boards of a platform. Only SPL is board-specific (on arm64 > >> sunxi, at > >> least). > > > > It is generated, just with a different filename. > > > >> > >> Is there a way to make binman also write the FIT without the SPL? Would > >> that > >> require duplicating the whole binman node? > > > > Yes it would. We could get more complicated and allow an image to > > build on another perhaps. I'm not sure what is easiest here. > > > >> > >>> config SPL_FIT_GENERATOR > >>> string ".its file generator script for U-Boot FIT image" > >>> depends on USE_SPL_FIT_GENERATOR > >>> - default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && > >>> ARCH_SUNXI > >>> default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && > >>> ARCH_ROCKCHIP > >>> default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT > >>> && ARCH_ZYNQMP > >>> default "arch/riscv/lib/mkimage_fit_opensbi.sh" if SPL_LOAD_FIT && > >>> RISCV > >>> diff --git a/Makefile b/Makefile > >>> index 5b4e60496d6..65024c74089 100644 > >>> --- a/Makefile > >>> +++ b/Makefile > >>> @@ -923,11 +923,6 @@ INPUTS-$(CONFIG_REMAKE_ELF) += u-boot.elf > >>> INPUTS-$(CONFIG_EFI_APP) += u-boot-app.efi > >>> INPUTS-$(CONFIG_EFI_STUB) += u-boot-payload.efi > >>> > >>> -# Build a combined spl + u-boot image for sunxi > >>> -ifeq ($(CONFIG_ARCH_SUNXI)$(CONFIG_ARM64)$(CONFIG_SPL),yyy) > >>> -INPUTS-y += u-boot-sunxi-with-spl.bin > >>> -endif > >>> - > >>> # Generate this input file for binman > >>> ifeq ($(CONFIG_SPL),) > >>> INPUTS-$(CONFIG_ARCH_MEDIATEK) += u-boot-mtk.bin > >>> @@ -1024,13 +1019,9 @@ PHONY += inputs > >>> inputs: $(INPUTS-y) > >>> > >>> all: .binman_stamp inputs > >>> -# Hack for sunxi which doesn't have a proper binman definition for > >>> -# 64-bit boards > >>> -ifneq ($(CONFIG_ARCH_SUNXI)$(CONFIG_ARM64),yy) > >>> ifeq ($(CONFIG_BINMAN),y) > >>> $(call if_changed,binman) > >>> endif > >>> -endif > >>> > >>> # Timestamp file to make sure that binman always runs > >>> .binman_stamp: FORCE > >>> @@ -1336,6 +1327,8 @@ cmd_binman = $(srctree)/tools/binman/binman $(if > >>> $(BINMAN_DEBUG),-D) \ > >>> $(if $(BINMAN_VERBOSE),-v$(BINMAN_VERBOSE)) \ > >>> build -u -d u-boot.dtb -O . -m --allow-missing \ > >>> -I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \ > >>> + -I arch/$(ARCH)/dts -a of-list=$(CONFIG_OF_LIST) \ > >>> + -a atf-bl31-path=${BL31} \ > >>> $(BINMAN_$(@F)) > >>> > >>> OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex > >>> @@ -1625,13 +1618,6 @@ u-boot-x86-reset16.bin: u-boot FORCE > >>> > >>> endif # CONFIG_X86 > >>> > >>> -ifneq ($(CONFIG_ARCH_SUNXI),) > >>> -ifeq ($(CONFIG_ARM64),y) > >>> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.itb FORCE > >>> - $(call if_changed,cat) > >>> -endif > >>> -endif > >>> - > >> > >> Now `make u-boot-sunxi-with-spl.bin` doesn't work. > >> > >> This is less of an issue, but still probably breaks some scripts. It breaks > >> mine, at least. > > > > Why do you specify a target? Doesn't it build the file without the target? > > > > One problem with buildman is that there is no definitely of what files > > it will produce when run, or at least there is, but it is in the > > binman description itself. > > > > This means that 'make clean' doesn't work fully, for example. I can > > think of a few ways to implement this. One would be to put a list of > > target files into a text file and have 'make clean' use that. We could > > also have an option to tell binman to produce a list of files it would > > generate if run. Then we might be able to tell binman to generate a > > particular file. > > Why not just to generate all binman images to specific folder?
We need to put at least some of them in the build directory. We could perhaps have a 'binman' subdir of that where intermediate images go. Regards, SImon