[U-Boot] [PATCH] kbuild: Do not append dtb for OF_EMBED case

dtb is already included in binary that's why there is no need to replace u-boot-spl.bin with u-boot-spl-dtb.bin. This is only needed for OF_SEPARATE is enabled. Only copy -nodtb.bin version which is straight output from objcopy -O binary.
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
scripts/Makefile.spl | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 44242842db31..79c680c1d62f 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -170,12 +170,17 @@ $(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin $(obj)/$(SPL_BIN)-pad.bin $(obj)/$(SPL_BIN).dtb FORCE $(call if_changed,cat)
+ifeq ($(CONFIG_OF_SEPARATE),y) $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-dtb.bin FORCE $(call if_changed,copy) else $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE $(call if_changed,copy) endif +else +$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE + $(call if_changed,copy) +endif
# Create a file that pads from the end of u-boot-spl-nodtb.bin to bss_end $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN)

Hi Michal, (+cc Simon)
2016-04-27 21:28 GMT+09:00 Michal Simek michal.simek@xilinx.com:
dtb is already included in binary that's why there is no need to replace u-boot-spl.bin with u-boot-spl-dtb.bin. This is only needed for OF_SEPARATE is enabled. Only copy -nodtb.bin version which is straight output from objcopy -O binary.
Correct.
(But, as you know, fdtgrep does not work for OF_EMBED, so this is only useful when SPL has enough memory footprint.)
Signed-off-by: Michal Simek michal.simek@xilinx.com
scripts/Makefile.spl | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 44242842db31..79c680c1d62f 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -170,12 +170,17 @@ $(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin $(obj)/$(SPL_BIN)-pad.bin $(obj)/$(SPL_BIN).dtb FORCE $(call if_changed,cat)
+ifeq ($(CONFIG_OF_SEPARATE),y) $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-dtb.bin FORCE $(call if_changed,copy) else $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE $(call if_changed,copy) endif +else +$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE
$(call if_changed,copy)
+endif
# Create a file that pads from the end of u-boot-spl-nodtb.bin to bss_end $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN)
The code is duplicated for - CONFIG_SPL_OF_CONTROL=y && CONFIG_OF_SEPARATE=n - CONFIG_SPL_OF_CONTROL=n
Could you refactor a bit like follows?
ifeq ($(CONFIG_SPL_OF_CONTROL)$(CONFIG_OF_SEPARATE),yy) $(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin $(obj)/$(SPL_BIN)-pad.bin \ $(obj)/$(SPL_BIN).dtb FORCE $(call if_changed,cat)
$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-dtb.bin FORCE $(call if_changed,copy) else $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE $(call if_changed,copy) endif

Hi Masahiro,
On 28.4.2016 07:54, Masahiro Yamada wrote:
Hi Michal, (+cc Simon)
2016-04-27 21:28 GMT+09:00 Michal Simek michal.simek@xilinx.com:
dtb is already included in binary that's why there is no need to replace u-boot-spl.bin with u-boot-spl-dtb.bin. This is only needed for OF_SEPARATE is enabled. Only copy -nodtb.bin version which is straight output from objcopy -O binary.
Correct.
(But, as you know, fdtgrep does not work for OF_EMBED, so this is only useful when SPL has enough memory footprint.)
That's fine and it is reasonable limitation.
Signed-off-by: Michal Simek michal.simek@xilinx.com
scripts/Makefile.spl | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 44242842db31..79c680c1d62f 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -170,12 +170,17 @@ $(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin $(obj)/$(SPL_BIN)-pad.bin $(obj)/$(SPL_BIN).dtb FORCE $(call if_changed,cat)
+ifeq ($(CONFIG_OF_SEPARATE),y) $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-dtb.bin FORCE $(call if_changed,copy) else $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE $(call if_changed,copy) endif +else +$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE
$(call if_changed,copy)
+endif
# Create a file that pads from the end of u-boot-spl-nodtb.bin to bss_end $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN)
The code is duplicated for
- CONFIG_SPL_OF_CONTROL=y && CONFIG_OF_SEPARATE=n
- CONFIG_SPL_OF_CONTROL=n
Could you refactor a bit like follows?
TBH: I was expecting that there will be better solution for it.
ifeq ($(CONFIG_SPL_OF_CONTROL)$(CONFIG_OF_SEPARATE),yy) $(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin $(obj)/$(SPL_BIN)-pad.bin \ $(obj)/$(SPL_BIN).dtb FORCE $(call if_changed,cat)
$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-dtb.bin FORCE $(call if_changed,copy) else $(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)-nodtb.bin FORCE $(call if_changed,copy) endif
Let me retest and send v2.
Thanks, Michal
participants (3)
-
Masahiro Yamada
-
Michal Simek
-
Michal Simek