[U-Boot,13/13] binman: tegra: Convert to use binman

Message ID 20171114015506.25673-14-sjg@chromium.org
State New
Delegated to: Simon Glass
Headers show
Series
  • binman: Support run-time access to binman image positions
Related show

Commit Message

Simon Glass Nov. 14, 2017, 1:55 a.m.
Update tegra to use binman for image creation. This still includes the
current Makefile logic, but a later patch will remove this. Three output
files are created, all of which combine
SPL and U-Boot:

   u-boot-tegra.bin      - standard image
   u-boot-dtb-tegra.bin  - same as u-boot-tegra.bin
   u-boot-nodtb          - includes U-Boot without the appended device tree

The latter is useful for build systems where the device is appended later,
perhaps after being modified.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile                                   |  6 +++++
 arch/arm/dts/tegra-u-boot.dtsi             | 40 ++++++++++++++++++++++++++++++
 arch/arm/dts/tegra114-u-boot.dtsi          |  3 +++
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi |  2 ++
 arch/arm/dts/tegra124-u-boot.dtsi          |  3 +++
 arch/arm/dts/tegra20-u-boot.dtsi           | 11 +++-----
 arch/arm/dts/tegra210-u-boot.dtsi          |  3 +++
 arch/arm/dts/tegra30-u-boot.dtsi           |  3 +++
 arch/arm/mach-tegra/Kconfig                |  1 +
 9 files changed, 64 insertions(+), 8 deletions(-)
 create mode 100644 arch/arm/dts/tegra-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra114-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra124-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra210-u-boot.dtsi
 create mode 100644 arch/arm/dts/tegra30-u-boot.dtsi

Comments

Stephen Warren Nov. 14, 2017, 8:23 p.m. | #1
On 11/13/2017 06:55 PM, Simon Glass wrote:
> Update tegra to use binman for image creation. This still includes the
> current Makefile logic, but a later patch will remove this. Three output
> files are created, all of which combine
> SPL and U-Boot:
> 
>     u-boot-tegra.bin      - standard image
>     u-boot-dtb-tegra.bin  - same as u-boot-tegra.bin
>     u-boot-nodtb          - includes U-Boot without the appended device tree

I assume that last file is u-boot-nodtb-tegra.bin?

If this series doesn't change the set of binaries produced by the build 
system (add/drop/rename), then I'm fine with it.

For the record, I know of tools that use the following files, at least:

u-boot (ELF)
u-boot.bin
u-boot.dtb
u-boot-dtb.bin
u-boot-nodtb-tegra.bin
u-boot-dtb-tegra.bin

Patch

diff --git a/Makefile b/Makefile
index 999d10e4403..6e32391954f 100644
--- a/Makefile
+++ b/Makefile
@@ -1149,6 +1149,11 @@  u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img u-boot.dtb FORCE
 endif
 
 ifneq ($(CONFIG_TEGRA),)
+ifneq ($(CONFIG_BINMAN),)
+u-boot-dtb-tegra.bin u-boot-tegra.bin u-boot-nodtb-tegra.bin: \
+		spl/u-boot-spl u-boot.bin FORCE
+	$(call if_changed,binman)
+else
 OBJCOPYFLAGS_u-boot-nodtb-tegra.bin = -O binary --pad-to=$(CONFIG_SYS_TEXT_BASE)
 u-boot-nodtb-tegra.bin: spl/u-boot-spl u-boot-nodtb.bin FORCE
 	$(call if_changed,pad_cat)
@@ -1159,6 +1164,7 @@  u-boot-tegra.bin: spl/u-boot-spl u-boot.bin FORCE
 
 u-boot-dtb-tegra.bin: u-boot-tegra.bin FORCE
 	$(call if_changed,copy)
+endif  # binman
 endif
 
 OBJCOPYFLAGS_u-boot-app.efi := $(OBJCOPYFLAGS_EFI)
diff --git a/arch/arm/dts/tegra-u-boot.dtsi b/arch/arm/dts/tegra-u-boot.dtsi
new file mode 100644
index 00000000000..cde591c5fca
--- /dev/null
+++ b/arch/arm/dts/tegra-u-boot.dtsi
@@ -0,0 +1,40 @@ 
+#include <config.h>
+
+/ {
+	binman {
+		multiple-images;
+		image1 {
+			filename = "u-boot-tegra.bin";
+			pad-byte = <0xff>;
+			u-boot-spl {
+			};
+			u-boot {
+				pos = <(CONFIG_SYS_TEXT_BASE -
+					CONFIG_SPL_TEXT_BASE)>;
+			};
+		};
+
+		/* Same as image1 - some tools still expect the -dtb suffix */
+		image2 {
+			filename = "u-boot-dtb-tegra.bin";
+			pad-byte = <0xff>;
+			u-boot-spl {
+			};
+			u-boot {
+				pos = <(CONFIG_SYS_TEXT_BASE -
+					CONFIG_SPL_TEXT_BASE)>;
+			};
+		};
+
+		image3 {
+			filename = "u-boot-nodtb-tegra.bin";
+			pad-byte = <0xff>;
+			u-boot-spl {
+			};
+			u-boot-nodtb {
+				pos = <(CONFIG_SYS_TEXT_BASE -
+					CONFIG_SPL_TEXT_BASE)>;
+			};
+		};
+	};
+};
diff --git a/arch/arm/dts/tegra114-u-boot.dtsi b/arch/arm/dts/tegra114-u-boot.dtsi
new file mode 100644
index 00000000000..7c119725528
--- /dev/null
+++ b/arch/arm/dts/tegra114-u-boot.dtsi
@@ -0,0 +1,3 @@ 
+#include <config.h>
+
+#include "tegra-u-boot.dtsi"
diff --git a/arch/arm/dts/tegra124-nyan-big-u-boot.dtsi b/arch/arm/dts/tegra124-nyan-big-u-boot.dtsi
index 65c3851affa..44e64998c5f 100644
--- a/arch/arm/dts/tegra124-nyan-big-u-boot.dtsi
+++ b/arch/arm/dts/tegra124-nyan-big-u-boot.dtsi
@@ -5,6 +5,8 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
+#include "tegra-u-boot.dtsi"
+
 / {
 	host1x@50000000 {
 		u-boot,dm-pre-reloc;
diff --git a/arch/arm/dts/tegra124-u-boot.dtsi b/arch/arm/dts/tegra124-u-boot.dtsi
new file mode 100644
index 00000000000..7c119725528
--- /dev/null
+++ b/arch/arm/dts/tegra124-u-boot.dtsi
@@ -0,0 +1,3 @@ 
+#include <config.h>
+
+#include "tegra-u-boot.dtsi"
diff --git a/arch/arm/dts/tegra20-u-boot.dtsi b/arch/arm/dts/tegra20-u-boot.dtsi
index 9b9835da7e9..7c119725528 100644
--- a/arch/arm/dts/tegra20-u-boot.dtsi
+++ b/arch/arm/dts/tegra20-u-boot.dtsi
@@ -1,8 +1,3 @@ 
-/ {
-	host1x@50000000 {
-		u-boot,dm-pre-reloc;
-		dc@54200000 {
-			u-boot,dm-pre-reloc;
-		};
-	};
-};
+#include <config.h>
+
+#include "tegra-u-boot.dtsi"
diff --git a/arch/arm/dts/tegra210-u-boot.dtsi b/arch/arm/dts/tegra210-u-boot.dtsi
new file mode 100644
index 00000000000..7c119725528
--- /dev/null
+++ b/arch/arm/dts/tegra210-u-boot.dtsi
@@ -0,0 +1,3 @@ 
+#include <config.h>
+
+#include "tegra-u-boot.dtsi"
diff --git a/arch/arm/dts/tegra30-u-boot.dtsi b/arch/arm/dts/tegra30-u-boot.dtsi
new file mode 100644
index 00000000000..7c119725528
--- /dev/null
+++ b/arch/arm/dts/tegra30-u-boot.dtsi
@@ -0,0 +1,3 @@ 
+#include <config.h>
+
+#include "tegra-u-boot.dtsi"
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 51e50907d27..51d143687b0 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -38,6 +38,7 @@  config TEGRA_COMMON
 	select OF_CONTROL
 	select VIDCONSOLE_AS_LCD if DM_VIDEO
 	select BOARD_EARLY_INIT_F
+	select BINMAN
 	imply CRC32_VERIFY
 
 config TEGRA_NO_BPMP