Control retitle 979296 u-boot: Restructure the packaging
Control: tags 979296 -pending

There is a lot in this patch worth considering for the future...


live well,
  vagrant
From 0e0a0b17107572e1b3bdb1929fe3c1d9e2fd5bab Mon Sep 17 00:00:00 2001
From: Nicolas Boulenguez <[email protected]>
Date: Sat, 19 Dec 2020 12:03:53 +0100
Subject: [PATCH 7/7] Restructure the packaging

Replace targets list and platform-specific parts of debian/rules with
separate files for each platform.

Replace shell loops and variables, executable debhelper files and
temporary files with Make structures, so that actually executed
command lines are visible in logs.

Delegate more things to debhelper:
DEB_BUILD_OPTIONS=parallel=N        -> dh_auto_make
native strip                        -> dh_strip
selection of packages for this arch -> dh_listpackages
DEB_BUILD_OPTIONS=nodoc             -> dh_installdocs

Differences in the resulting packages:
rockchip and sunxi stop installing arm-trusted-firmware stuff on armhf
(namely: make_fit_atf, mksunxi_fit_atf, u-boot-install-sunxi64).

Bug fix:
puma-rk3399 was not exporting BL31 (the option was missing in debian/targets)
The bug is probably currently hidden because the value exported for
previous platform happened to also be valid for puma-rk3399.

The following configurations build on arm64, lintian finds no problem
and the debdiff with 2020.10+dfsg-1 .debs is empty.
--build=source
--build=all
--build=any
--build=any -aarmel
--build=any -aarmhf -Ppkg.uboot.notools,pkg.uboot.subarch.imx
--build=any -aarmhf -Ppkg.uboot.notools,pkg.uboot.subarch.rockchip
--build=any -aarmhf -Ppkg.uboot.notools,pkg.uboot.subarch.sunxi
--build=any -aarmhf -Ppkg.uboot.notools,pkg.uboot.subarch.omap
--build=any -aarm64 -Ppkg.uboot.notools,pkg.uboot.subarch.rockchip
--build=any -aarm64 -Ppkg.uboot.notools,pkg.uboot.subarch.sunxi
--build=any -aarm64 -Ppkg.uboot.notools,pkg.uboot.subarch.tegra
--build=any -aarm64 -Ppkg.uboot.notools,pkg.uboot.subarch.amlogic
---
 debian/bin/u-boot-install-targets             |   6 -
 debian/bin/update-substvars                   |  18 --
 debian/control                                |  26 ++
 debian/rules                                  | 275 +++++++++++-------
 debian/targets                                | 270 -----------------
 debian/u-boot-amlogic.install                 |  16 +-
 debian/u-boot-amlogic_arm64.mk                |  14 +
 debian/u-boot-exynos.install                  |  11 +-
 debian/u-boot-exynos_armhf.mk                 |   6 +
 debian/u-boot-imx.install                     |  35 ++-
 debian/u-boot-imx_armhf.mk                    |  36 +++
 debian/u-boot-mvebu.install                   |   5 +-
 debian/u-boot-mvebu_arm64.mk                  |   5 +
 debian/u-boot-omap.install                    |  32 +-
 debian/u-boot-omap_armhf.mk                   |  27 ++
 debian/u-boot-qcom.install                    |   7 +-
 debian/u-boot-qcom_arm64.mk                   |   6 +
 debian/u-boot-qemu.install                    |   2 -
 debian/u-boot-rockchip.install                |   6 -
 debian/u-boot-rockchip.install.arm64          |  57 ++++
 debian/u-boot-rockchip.install.armhf          |   7 +
 debian/u-boot-rockchip_arm64.mk               |  33 +++
 debian/u-boot-rockchip_armhf.mk               |   8 +
 debian/u-boot-rpi.install                     |   2 -
 debian/u-boot-rpi.install.arm64               |   8 +
 debian/u-boot-rpi.install.armel               |   5 +
 debian/u-boot-rpi.install.armhf               |   8 +
 debian/u-boot-rpi_arm64.mk                    |   8 +
 debian/u-boot-rpi_armel.mk                    |   6 +
 debian/u-boot-rpi_armhf.mk                    |   8 +
 debian/u-boot-sifive.install                  |   4 +-
 debian/u-boot-sifive_riscv64.mk               |   6 +
 debian/u-boot-sunxi.install                   |   6 -
 debian/u-boot-sunxi.install.arm64             |  67 +++++
 debian/u-boot-sunxi.install.armhf             |  77 +++++
 ...i.manpages => u-boot-sunxi.manpages.arm64} |   0
 debian/u-boot-sunxi_arm64.mk                  |  32 ++
 debian/u-boot-sunxi_armhf.mk                  |  63 ++++
 debian/u-boot-tegra.install                   |   2 -
 debian/u-boot-tegra.install.arm64             |   2 +
 debian/u-boot-tegra.install.armhf             |   2 +
 debian/u-boot-tegra.links                     |   7 -
 debian/u-boot-tegra.links.arm64               |   1 +
 debian/u-boot-tegra_arm64.mk                  |   5 +
 debian/u-boot-tegra_armhf.mk                  |   5 +
 debian/u-boot-tools.install                   |   3 -
 debian/u-boot.install                         |   2 -
 debian/u-boot.install.armel                   |  11 +
 debian/u-boot.install.avr32                   |   2 +
 debian/u-boot.install.sh4                     |   2 +
 debian/u-boot_armel.mk                        |   8 +
 debian/u-boot_avr32.mk                        |   3 +
 debian/u-boot_sh4.mk                          |   3 +
 53 files changed, 816 insertions(+), 450 deletions(-)
 delete mode 100755 debian/bin/u-boot-install-targets
 delete mode 100755 debian/bin/update-substvars
 delete mode 100644 debian/targets
 mode change 100755 => 100644 debian/u-boot-amlogic.install
 create mode 100644 debian/u-boot-amlogic_arm64.mk
 mode change 100755 => 100644 debian/u-boot-exynos.install
 create mode 100644 debian/u-boot-exynos_armhf.mk
 mode change 100755 => 100644 debian/u-boot-imx.install
 create mode 100644 debian/u-boot-imx_armhf.mk
 mode change 100755 => 100644 debian/u-boot-mvebu.install
 create mode 100644 debian/u-boot-mvebu_arm64.mk
 mode change 100755 => 100644 debian/u-boot-omap.install
 create mode 100644 debian/u-boot-omap_armhf.mk
 mode change 100755 => 100644 debian/u-boot-qcom.install
 create mode 100644 debian/u-boot-qcom_arm64.mk
 delete mode 100755 debian/u-boot-qemu.install
 delete mode 100755 debian/u-boot-rockchip.install
 create mode 100644 debian/u-boot-rockchip.install.arm64
 create mode 100644 debian/u-boot-rockchip.install.armhf
 create mode 100644 debian/u-boot-rockchip_arm64.mk
 create mode 100644 debian/u-boot-rockchip_armhf.mk
 delete mode 100755 debian/u-boot-rpi.install
 create mode 100644 debian/u-boot-rpi.install.arm64
 create mode 100644 debian/u-boot-rpi.install.armel
 create mode 100644 debian/u-boot-rpi.install.armhf
 create mode 100644 debian/u-boot-rpi_arm64.mk
 create mode 100644 debian/u-boot-rpi_armel.mk
 create mode 100644 debian/u-boot-rpi_armhf.mk
 mode change 100755 => 100644 debian/u-boot-sifive.install
 create mode 100644 debian/u-boot-sifive_riscv64.mk
 delete mode 100755 debian/u-boot-sunxi.install
 create mode 100644 debian/u-boot-sunxi.install.arm64
 create mode 100644 debian/u-boot-sunxi.install.armhf
 rename debian/{u-boot-sunxi.manpages => u-boot-sunxi.manpages.arm64} (100%)
 create mode 100644 debian/u-boot-sunxi_arm64.mk
 create mode 100644 debian/u-boot-sunxi_armhf.mk
 delete mode 100755 debian/u-boot-tegra.install
 create mode 100644 debian/u-boot-tegra.install.arm64
 create mode 100644 debian/u-boot-tegra.install.armhf
 delete mode 100755 debian/u-boot-tegra.links
 create mode 100644 debian/u-boot-tegra.links.arm64
 create mode 100644 debian/u-boot-tegra_arm64.mk
 create mode 100644 debian/u-boot-tegra_armhf.mk
 delete mode 100755 debian/u-boot.install
 create mode 100644 debian/u-boot.install.armel
 create mode 100644 debian/u-boot.install.avr32
 create mode 100644 debian/u-boot.install.sh4
 create mode 100644 debian/u-boot_armel.mk
 create mode 100644 debian/u-boot_avr32.mk
 create mode 100644 debian/u-boot_sh4.mk

diff --git a/debian/bin/u-boot-install-targets b/debian/bin/u-boot-install-targets
deleted file mode 100755
index 2eee8e76f8..0000000000
--- a/debian/bin/u-boot-install-targets
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-target=$1
-subarch_install_file="debian/build/targets.${target}"
-if [ -f "${subarch_install_file}" ]; then
-    cat "${subarch_install_file}"
-fi
diff --git a/debian/bin/update-substvars b/debian/bin/update-substvars
deleted file mode 100755
index 667ebda7bd..0000000000
--- a/debian/bin/update-substvars
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-for file in debian/build/platforms.* ; do
-    subarch=$(echo ${file} | sed -e 's,.*platforms.,,g')
-    case "${subarch}" in
-	-) package=u-boot ;;
-	*) package=u-boot-${subarch} ;;
-    esac
-    echo $(LC_ALL=C sort -u ${file}) | \
-	sed -e 's, ,${Newline},g' \
-	-e 's,^,uboot:platforms=${Newline}Included platforms:${Newline},g' \
-	>> debian/${package}.substvars
-	case "${subarch}" in
-		rockchip|sunxi)
-			printf "uboot:Built-Using=$(dpkg-query -f '${source:Package} (= ${source:Version}) [arm64]' -W arm-trusted-firmware)\n"\
-				   >> debian/${package}.substvars
-			;;
-	esac
-done
diff --git a/debian/control b/debian/control
index 364b6f48b0..6334e6bc1d 100644
--- a/debian/control
+++ b/debian/control
@@ -46,6 +46,8 @@ Description: A boot loader for embedded systems
  intended to be easy to port and to debug, and runs on many
  supported architectures, including PPC, ARM, MIPS, x86, m68k,
  NIOS, and Microblaze.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-amlogic
@@ -61,6 +63,8 @@ Description: A boot loader for amlogic systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various amlogic platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-imx
@@ -77,6 +81,8 @@ Description: A boot loader for imx systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various imx platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-qemu
@@ -93,6 +99,8 @@ Description: A boot loader for qemu
  NIOS, and Microblaze.
  .
  This package includes boot loaders for qemu/kvm.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-qcom
@@ -107,6 +115,8 @@ Description: A boot loader for qcom systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various qcom platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-tegra
@@ -123,6 +133,8 @@ Description: A boot loader for NVIDIA Tegra systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various NVIDIA Tegra platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-omap
@@ -140,6 +152,8 @@ Description: A boot loader for omap systems
  .
  This package includes boot loaders for various omap and related
  platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-sunxi
@@ -159,6 +173,8 @@ Description: A boot loader for sunxi systems
  .
  This package includes boot loaders for various Allwinner/sunxi
  platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-exynos
@@ -173,6 +189,8 @@ Description: A boot loader for exynos systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various Exynos platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-mvebu
@@ -187,6 +205,8 @@ Description: A boot loader for marvell systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various Marvell platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-rockchip
@@ -203,6 +223,8 @@ Description: A boot loader for rockchip systems
  NIOS, and Microblaze.
  .
  This package includes boot loaders for various Rockchip platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-rpi
@@ -218,6 +240,8 @@ Description: A boot loader for Raspberry PI systems
  .
  This package includes boot loaders for various Raspberry PI
  platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-sifive
@@ -233,6 +257,8 @@ Description: A boot loader for SiFive systems
  .
  This package includes boot loaders for various SiFive
  platforms.
+ .
+ Included platforms:
  ${uboot:platforms}
 
 Package: u-boot-tools
diff --git a/debian/rules b/debian/rules
index 6b249f72a5..2ab89d59b2 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,5 +1,13 @@
 #!/usr/bin/make -f
 
+# The usual Debian targets are of course available, but you may also:
+# check the build of a platform:
+#   dpkg-buildpackage -aarm64 --build=any -Ppkg.uboot.notools -T puma-rk3399
+# check the build of a package:
+#   dpkg-buildpackage -aarm64 --build=any -Ppkg.uboot.notools -T u-boot-rockchip
+# fully build a specific .deb package:
+#   dpkg-buildpackage -aarm64 --build=any -Ppkg.uboot.notools,pkg.uboot.subarch.rockchip
+
 include /usr/share/dpkg/architecture.mk
 include /usr/share/dpkg/pkg-info.mk
 export DEBIAN_REVISION ?= $(shell echo $(DEB_VERSION) | sed 's,.*\+dfsg,+dfsg,')
@@ -9,9 +17,6 @@ export CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
 cross_build_tools ?= y
 endif
 
-# support parallel build using DEB_BUILD_OPTIONS=parallel=N
-DEB_UBOOT_FLAGS += $(patsubst parallel=%,-j%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
-
 # Enable verbose build by default, disable when terse is specified.
 ifneq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
 VERBOSE=0
@@ -25,134 +30,180 @@ endif
 comma := ,
 LDFLAGS := $(patsubst -Wl$(comma)%,%,$(LDFLAGS))
 
+notools := $(filter pkg.uboot.notools,$(DEB_BUILD_PROFILES))
+
+# Select the subarchs for DEB_HOST_ARCH
+all_subarchs := $(shell dh_listpackages --arch --no-package=u-boot-tools)
+# DEB_BUILD_PROFILES=pkg.uboot.subarch.SUBARCH may
 # limit builds to only certain subarchitectures
 # e.g. pkg.uboot.subarch.rockchip will only build rockchip targets.
-ifeq (,$(filter pkg.uboot.subarch.%,$(DEB_BUILD_PROFILES)))
-TARGETSUBARCH = .
+subarch_profile := $(filter pkg.uboot.subarch.%,$(DEB_BUILD_PROFILES))
+ifeq ($(subarch_profile),)
+  built_subarchs := $(all_subarchs)
+  ignored_subarchs :=
 else
-TARGETSUBARCH = $(patsubst pkg.uboot.subarch.%,%,$(filter pkg.uboot.subarch.%,$(DEB_BUILD_PROFILES)))
+  built_subarchs := $(patsubst pkg.uboot.subarch.%,u-boot-%,$(subarch_profile))
+  ifeq ($(filter $(built_subarchs),$(all_subarchs)),)
+    $(error DEB_BUILD_PROFILES=$(DEB_BUILD_PROFILES) DEB_HOST_ARCH=$(DEB_HOST_ARCH))
+  endif
+  ignored_subarchs := $(filter-out $(built_subarchs),$(all_subarchs))
 endif
 
-%:
-	dh $@
+# Load instructions for the built platforms.
+$(foreach subarch,$(built_subarchs),\
+  $(eval include debian/$(subarch)_$(DEB_HOST_ARCH).mk))
 
-configs/novena-rawsd_defconfig: configs/novena_defconfig
-	sed -e 's,CONFIG_SPL_FS_FAT=y,# CONFIG_SPL_FS_FAT is not set,' \
-		configs/novena_defconfig > configs/novena-rawsd_defconfig
+## Debian policy targets
 
-configs/am335x_boneblack_defconfig: configs/am335x_evm_defconfig
-	sed -e 's,CONFIG_OF_LIST=.*,CONFIG_OF_LIST="am335x-evm am335x-boneblack",g' \
-		configs/am335x_evm_defconfig > configs/am335x_boneblack_defconfig
+# The -N options prevents a lots of warnings about obviously missing files.
+%:
+	dh $@ $(addprefix -N,$(ignored_subarchs))
 
-override_dh_auto_build-arch: TOOLSDIR := debian/build/tools
-override_dh_auto_build-arch: TARGETARCH := $(DEB_HOST_ARCH)
-ifeq (,$(filter pkg.uboot.notools,$(DEB_BUILD_PROFILES)))
-override_dh_auto_build-arch: build-targets build-tools
-else
-override_dh_auto_build-arch: build-targets
+override_dh_auto_build-indep: u-boot-qemu
+override_dh_auto_build-arch: $(built_subarchs)
+ifeq ($(notools),)
+  override_dh_auto_build-arch: build-tools
 endif
 
-override_dh_auto_build-indep: TOOLSDIR := debian/build/tools
-override_dh_auto_build-indep: TARGETARCH := all
-override_dh_auto_build-indep: build-targets
-
-build-targets: configs/novena-rawsd_defconfig configs/am335x_boneblack_defconfig
-	echo run build-targets for $(TARGETARCH)
-	set -e; grep ^$(TARGETARCH)[^a-z0-9] debian/targets \
-	    | grep $(TARGETSUBARCH) \
-	    | while read arch subarch platform bl31 targets; do \
-	        builddir=debian/build/$$platform; \
-		case $$bl31 in \
-			/usr/lib/arm-trusted-firmware/*) export BL31=$$bl31 ;; \
-			*) targets="$$bl31 $$targets" ;; \
-		esac; \
-		case $$platform in \
-			novena-rawsd) targets="$$targets" ;\
-				;; \
-			*) targets="$$targets uboot.elf" ;\
-				;; \
-		esac;\
-			maketargets="all" ;\
-		case $$subarch in \
-			-) subpackage="u-boot" ;\
-				;; \
-			*) subpackage="u-boot-$$subarch" ;\
-				;; \
-		esac;\
-		case $$arch in \
-			all:armhf) export CROSS_COMPILE=arm-linux-gnueabihf- ;;\
-			all:arm64) export CROSS_COMPILE=aarch64-linux-gnu- ;;\
-			all:mips) export CROSS_COMPILE=mips-linux-gnu- ;;\
-			all:mipsel) export CROSS_COMPILE=mipsel-linux-gnu- ;;\
-			all:mips64el) export CROSS_COMPILE=mips64el-linux-gnuabi64- ;;\
-			all:powerpc) export CROSS_COMPILE=powerpc-linux-gnu- ;;\
-			all:riscv64) export CROSS_COMPILE=riscv64-linux-gnu- ;;\
-			all:i386) export CROSS_COMPILE=i686-linux-gnu- ;;\
-			all:amd64) export CROSS_COMPILE=x86_64-linux-gnu- ;;\
-			*) ;; \
-		esac;\
-		mkdir -p $$builddir; \
-		$(MAKE) V=$(VERBOSE) O=$$builddir $${platform}_defconfig; \
-		sed -i -e 's,CONFIG_FIT_SIGNATURE=y,# CONFIG_FIT_SIGNATURE is not set,g' $$builddir/.config; \
-		$(MAKE) V=$(VERBOSE) $(DEB_UBOOT_FLAGS) O=$$builddir $${maketargets}; \
-		case "$$targets" in \
-			*uboot.elf*) \
-				install -m 644 $$builddir/u-boot $$builddir/uboot.elf; \
-				$${CROSS_COMPILE}strip --remove-section=.comment \
-					--remove-section=.note \
-					$$builddir/uboot.elf; \
-				;; \
-		esac; \
-		for target in $$targets; do \
-			chmod -x $$builddir/$$target; \
-			echo $$builddir/$$target /usr/lib/u-boot/$$platform/ \
-				>> debian/build/targets.$$subarch; \
-			echo $$platform >> debian/build/platforms.$$subarch; \
-		done ; \
-		cp $$builddir/.config $$builddir/config.$$platform; \
-		echo $$builddir/config.$$platform /usr/share/doc/$$subpackage/configs/ \
-			>> debian/build/targets.$$subarch; \
-	done
-
+# These intermediate per-package targets allow to export a variable
+# for all platforms within a subarch, but they are empty by default so
+# we need to tell Make that the default %: recipe above does not
+# apply.
+.PHONY: u-boot-qemu $(built_subarchs)
+
+## Platforms
+
+define build_template
+
+  # Tell Make to build the platform as part of the package.
+  $(package): $(platform)
+
+  $(platform):
+	# debian/rules: building platform: $(platform)
+	mkdir -p debian/build/$(platform)
+	dh_auto_build -- V=$(VERBOSE) O=debian/build/$(platform) CROSS_COMPILE=$(CROSS_COMPILE) $(platform)_defconfig
+	sed -i 's,CONFIG_FIT_SIGNATURE=y,# CONFIG_FIT_SIGNATURE is not set,' debian/build/$(platform)/.config
+	dh_auto_build -- V=$(VERBOSE) O=debian/build/$(platform) CROSS_COMPILE=$(CROSS_COMPILE) all
+
+    # This renaming prepares the dh_install step.
+	cp -u debian/build/$(platform)/u-boot debian/build/$(platform)/uboot.elf
+
+endef
+$(foreach package, $(built_subarchs),\
+  $(foreach platform, $($(package)_platforms),\
+    $(eval $(build_template))))
+
+## {Re,Ab}use the platform generic recipe for qemu cross-built images.
+
+u-boot-qemu_platforms := \
+  qemu-ppce500 \
+  qemu-riscv64 \
+  qemu-riscv64_smode \
+  qemu-x86 \
+  qemu-x86_64 \
+  qemu_arm \
+  qemu_arm64 \
+
+qemu-ppce500_gnu_type       := powerpc-linux-gnu
+qemu-riscv64_gnu_type       := riscv64-linux-gnu
+qemu-riscv64_smode_gnu_type := riscv64-linux-gnu
+qemu-x86_gnu_type           := i686-linux-gnu
+qemu-x86_64_gnu_type        := x86_64-linux-gnu
+qemu_arm_gnu_type           := arm-linux-gnueabihf
+qemu_arm64_gnu_type         := aarch64-linux-gnu
+
+# Make will always export CROSS_COMPILE because of the directive
+# above, it is sufficient to override it for each target.
+$(foreach package, u-boot-qemu,\
+  $(foreach platform, $($(package)_platforms),\
+    $(foreach CROSS_COMPILE, $($(platform)_gnu_type)-,\
+      $(eval $(build_template)))))
+
+## tools
+
+TOOLSDIR := debian/build/tools
 build-tools:
-	$(MAKE) V=$(VERBOSE) O=$(TOOLSDIR) CROSS_COMPILE=$(CROSS_COMPILE) tools-only_defconfig
+	# debian/rules: building tools
+	dh_auto_build -- V=$(VERBOSE) O=$(TOOLSDIR) CROSS_COMPILE=$(CROSS_COMPILE) tools-only_defconfig
 	# Disable fit signatures, which requires OpenSSL which triggers
 	# licensing incompatibilities with the GPL:
 	# https://people.gnome.org/~markmc/openssl-and-the-gpl.html
 	sed -i -e 's,CONFIG_FIT_SIGNATURE=y,# CONFIG_FIT_SIGNATURE is not set,g' $(TOOLSDIR)/.config
-	cp $(TOOLSDIR)/.config $(TOOLSDIR)/config
 	# board-independent tools
-	$(MAKE) V=$(VERBOSE) O=$(TOOLSDIR) $(DEB_UBOOT_FLAGS) \
+	dh_auto_build -- V=$(VERBOSE) O=$(TOOLSDIR) \
 		CROSS_COMPILE=$(CROSS_COMPILE) \
 		CROSS_BUILD_TOOLS=$(cross_build_tools) \
 		NO_SDL=1 \
 	    tools-only
-	$(CROSS_COMPILE)strip --strip-unneeded --remove-section=.comment --remove-section=.note $(TOOLSDIR)/tools/mkimage
-	$(CROSS_COMPILE)strip --strip-unneeded --remove-section=.comment --remove-section=.note $(TOOLSDIR)/tools/mkenvimage
-	$(CROSS_COMPILE)strip --strip-unneeded --remove-section=.comment --remove-section=.note $(TOOLSDIR)/tools/kwboot
-	$(CROSS_COMPILE)strip --strip-unneeded --remove-section=.comment --remove-section=.note $(TOOLSDIR)/tools/mksunxiboot
-	$(CROSS_COMPILE)strip --strip-unneeded --remove-section=.comment --remove-section=.note $(TOOLSDIR)/tools/dumpimage
-
-override_dh_auto_test:
-ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
-	# only run tests on native builds
-	if [ -e debian/build/tools/tools/mkimage ] ; then \
-		BASEDIR=debian/build/tools test/image/test-imagetools.sh ;\
-	fi
-endif
-
-override_dh_strip:
-	# dh_strip tries to strip the cross compiled qemu images, which doesn't
-	# work
-	dh_strip -X qemu
 
+## auto_install
+
+# Do not spend time searching for an install target in Makefile.
+override_dh_auto_install:
+
+## auto_test
+
+# Only test when tools are built and native.
+override_dh_auto_test-arch:
+  ifeq ($(notools)$(cross_build_tools),)
+	BASEDIR=$(TOOLSDIR) test/image/test-imagetools.sh
+  endif
+override_dh_auto_test-indep:
+
+## install
+
+override_dh_install-indep: $(addprefix install-,$(u-boot-qemu_platforms))
+install-%:
+	dh_install -pu-boot-qemu $(addprefix debian/build/$*/,u-boot.bin uboot.elf) usr/lib/u-boot/$*
+  # dh_strip does not act on architecture:all packages, and would use
+  # the native toolchain anyway.
+  # TODO: --strip-unneeded as policy recommends? If not, why?
+	$($*_gnu_type)-strip --remove-section=.comment --remove-section=.note \
+	  debian/u-boot-qemu/usr/lib/u-boot/$*/uboot.elf
+
+## installdocs
+
+# Rename the configurations and install them as documentation.
+override_dh_installdocs-indep: installdocs-u-boot-qemu
+override_dh_installdocs-arch: $(addprefix installdocs-,$(built_subarchs))
+  ifeq ($(notools),)
+	cp -u $(TOOLSDIR)/.config $(TOOLSDIR)/config
+	dh_installdocs -pu-boot-tools $(TOOLSDIR)/config
+  endif
+installdocs-%:
+	mkdir -p debian/build/$*/configs
+	for platform in $($*_platforms); do \
+	  cp -u debian/build/$$platform/.config debian/build/$*/configs/config.$$platform; \
+	done
+	dh_installdocs -p$* debian/build/$*/configs
+
+## fixperms
+
+# Upstream generates executable targets (last checked with 2020-10).
+# It is easyer and consistent with debhelper to fix this after installation.
+# override_dh_fixperms would interfer with tools/notools.
+# Split per-package targets because the debian/*/usr/lib/u-boot/*/*
+# global pattern would not match when building native tools on amd64.
+execute_after_dh_fixperms-indep: fixperms-u-boot-qemu
+execute_after_dh_fixperms-arch: $(addprefix fixperms-,$(built_subarchs))
+fixperms-%:
+	chmod -x debian/$*/usr/lib/u-boot/*/*
+
+## gencontrol
+
+# Allow *.mk to:    PACKAGE_substvars := -Vuboot:NAME=VALUE
+override_dh_gencontrol-indep: gencontrol-u-boot-qemu
+override_dh_gencontrol-arch: $(addprefix gencontrol-,$(built_subarchs))
+  ifeq ($(notools),)
+	dh_gencontrol -pu-boot-tools
+  endif
+gencontrol-%:
+	dh_gencontrol -p$* -- $($*_substvars) \
+	  "-Vuboot:platforms=$$(echo $($*_platforms) | sed 's, ,$${Newline},g')"
+
+## clean
+
+# Allow .mk to:     dh_clean_args += FILE DIRECTORY/
 override_dh_clean:
-	rm -rf debian/build/
-	rm -f configs/novena-rawsd_defconfig
-	rm -f configs/am335x_boneblack_defconfig
-	rm -f linux.itb linux.its
-	dh_clean
-
-override_dh_gencontrol:
-	debian/bin/update-substvars
-	dh_gencontrol
+	dh_clean debian/build/ linux.itb linux.its $(dh_clean_args)
+	find . -type d -name __pycache__ -delete
diff --git a/debian/targets b/debian/targets
deleted file mode 100644
index e6c75f3241..0000000000
--- a/debian/targets
+++ /dev/null
@@ -1,270 +0,0 @@
-# ARCH	subarch		platform	target
-# --------------------------------------------
-armel	-		dockstar	u-boot.kwb
-
-# Ian Campbell <[email protected]>
-armel	-		dreamplug	u-boot.kwb
-
-# drEagle <[email protected]>
-armel	-		guruplug	u-boot.kwb
-
-# Vagrant Cascadian <[email protected]>, rpi B 256M
-armel	rpi		rpi		u-boot.bin
-# Romain Perier <[email protected]>, rpi zero w
-armel	rpi		rpi_0_w		u-boot.bin
-
-# drEagle <[email protected]>
-# Rick Thomas <[email protected]>
-armel	-		sheevaplug	u-boot.kwb
-
-armhf	exynos		arndale		u-boot.bin spl/arndale-spl.bin
-
-# Joost van Zwieten <[email protected]>, Odroid-U3
-armhf	exynos		odroid		u-boot.bin
-
-# Vagrant Cascadian <[email protected]>, Odroid-XU4
-armhf	exynos		odroid-xu3	u-boot.bin
-
-# Marek Vasut <[email protected]>
-armhf	imx		dh_imx6		u-boot-with-spl.imx
-
-# Robert Nelson <[email protected]>
-armhf	imx		mx53loco	u-boot.imx
-
-# Steve Langasek <[email protected]>, CuBox-i4
-# Vagrant Cascadian <[email protected]>, CuBox-i4pro, Cubox-i4x4, hummingboard-i1, hummingboard-i2ex
-# Rainer Dorsch <[email protected]>, CuBox-i2u (i2u-300-d)
-# Rick Thomas <[email protected]>, Cubox-i4x4, Cubox-i4PRO
-armhf	imx		mx6cuboxi	u-boot.img SPL
-
-# Martyn Welch <[email protected]>
-armhf	imx		mx6qsabrelite	u-boot-dtb.imx
-
-# Hector Oron <[email protected]>
-armhf	imx		nitrogen6q	u-boot-dtb.imx
-
-# Vagrant Cascadian <[email protected]>
-armhf	imx		novena		u-boot.img SPL
-armhf	imx		novena-rawsd SPL
-
-# Michael Fladischer <[email protected]>
-armhf	imx		udoo		u-boot.img SPL
-
-# Vagrant Cascadian <[email protected]>
-armhf	imx		usbarmory	u-boot.imx
-
-# Vagrant Cascadian <[email protected]>
-# Robert Nelson <[email protected]>
-armhf	imx		wandboard	u-boot.img SPL
-
-# Vagrant Cascadian <[email protected]>
-# Andrew M.A. Cater <[email protected]>
-armhf	omap		am335x_boneblack u-boot.img MLO
-armhf	omap		am335x_evm u-boot.img MLO
-
-# Vagrant Cascadian <[email protected]>
-armhf	omap		am57xx_evm	u-boot.img MLO
-
-armhf 	omap		dra7xx_evm	u-boot.img MLO
-
-# Robert Nelson <[email protected]>
-armhf	omap		igep00x0	u-boot.img MLO
-
-armhf	omap		nokia_rx51	u-boot.bin
-
-# Robert Nelson <[email protected]>
-armhf	omap		omap3_beagle	u-boot.img MLO
-
-# Robert Nelson <[email protected]>
-armhf	omap		omap4_panda	u-boot.img MLO
-
-# Vagrant Cascadian <[email protected]>, 2GB and 4GB variants
-armhf	rockchip	firefly-rk3288		u-boot.bin u-boot.img spl/u-boot-spl.bin idbloader.img
-
-# Vagrant Cascadian <[email protected]>, Raspberry PI 2B
-armhf	rpi		rpi_2		u-boot.bin
-
-# Ryan Finnie <[email protected]>
-armhf	rpi		rpi_3_32b	u-boot.bin
-
-# Lucas Nussbaum <[email protected]>
-# Andreas Henriksson <[email protected]>
-armhf	rpi		rpi_4_32b	u-boot.bin
-
-# Christian Kastner <[email protected]>
-armhf	sunxi		A10-OLinuXino-Lime	u-boot-sunxi-with-spl.bin
-
-# Benedikt Wildenhain <[email protected]>
-armhf	sunxi		A10s-OLinuXino-M	u-boot-sunxi-with-spl.bin
-
-# Karsten Merker <[email protected]>
-armhf	sunxi		A20-Olimex-SOM-EVB	u-boot-sunxi-with-spl.bin
-
-# Christian Kastner <[email protected]>
-armhf	sunxi		A20-OLinuXino-Lime	u-boot-sunxi-with-spl.bin
-
-# Karsten Merker <[email protected]>
-armhf	sunxi		A20-OLinuXino-Lime2	u-boot-sunxi-with-spl.bin
-
-# Andreas B. Mundt <[email protected]>
-armhf	sunxi		A20-OLinuXino-Lime2-eMMC	u-boot-sunxi-with-spl.bin
-
-# Arne Ploese <[email protected]>
-armhf  sunxi		A20-OLinuXino_MICRO	u-boot-sunxi-with-spl.bin
-
-# Ian Campbell <[email protected]>
-# Vagrant Cascadian <[email protected]>
-armhf	sunxi		Bananapi	u-boot-sunxi-with-spl.bin
-
-# Karsten Merker <[email protected]>
-armhf	sunxi		Bananapro	u-boot-sunxi-with-spl.bin
-
-# Lucas Nussbaum <[email protected]>
-armhf   sunxi           bananapi_m2_berry u-boot-sunxi-with-spl.bin
-
-# Bernhard Wörner <[email protected]>
-armhf   sunxi           Bananapi_M2_Ultra u-boot-sunxi-with-spl.bin
-
-# Vagrant Cascadian <[email protected]>
-armhf	sunxi		CHIP		u-boot-sunxi-with-spl.bin
-
-# Vagrant Cascadian <[email protected]>
-armhf	sunxi		Cubieboard	u-boot-sunxi-with-spl.bin
-
-# Ian Campbell <[email protected]>
-# Karsten Merker <[email protected]>
-armhf	sunxi		Cubieboard2	u-boot-sunxi-with-spl.bin
-
-# Vagrant Cascadian <[email protected]>
-armhf	sunxi		Cubieboard4	u-boot-sunxi-with-spl.bin
-
-# Ian Campbell <[email protected]>
-# Robert Nelson <[email protected]>
-# Karsten Merker <[email protected]>
-armhf	sunxi		Cubietruck	u-boot-sunxi-with-spl.bin
-
-# Vagrant Cascadian <[email protected]>
-armhf	sunxi		Cubietruck_plus	u-boot-sunxi-with-spl.bin
-
-# Vagrant Cascadian <[email protected]>
-armhf	sunxi		Lamobo_R1	u-boot-sunxi-with-spl.bin
-
-# Robert Hegner <[email protected]>
-armhf	sunxi		Linksprite_pcDuino	u-boot-sunxi-with-spl.bin
-
-# Patrice Go <[email protected]>
-armhf	sunxi		Linksprite_pcDuino3	u-boot-sunxi-with-spl.bin
-
-# Jochen Sprickerhof <[email protected]>
-armhf	sunxi		Mini-X	u-boot-sunxi-with-spl.bin
-
-# Paul Tagliamonte <[email protected]>
-armhf	sunxi		nanopi_neo	u-boot-sunxi-with-spl.bin
-
-# Philip Hands <[email protected]>
-armhf	sunxi		nanopi_neo_air	u-boot-sunxi-with-spl.bin
-
-# Vagrant Cascadian <[email protected]>, Orange PI Plus2
-armhf	sunxi		orangepi_plus	u-boot-sunxi-with-spl.bin
-
-# Mateusz Łukasik <[email protected]>, Orange PI Zero
-armhf	sunxi		orangepi_zero	u-boot-sunxi-with-spl.bin
-
-# Bernhard <[email protected]>
-armhf	sunxi		Sinovoip_BPI_M3	u-boot-sunxi-with-spl.bin
-
-# Ian Campbell <[email protected]>
-armhf	tegra		jetson-tk1	u-boot-tegra.bin
-
-# Neil Armstrong <[email protected]>
-arm64	amlogic		khadas-vim	u-boot.bin
-arm64	amlogic		khadas-vim2	u-boot.bin
-
-# Frederic Danis <[email protected]>
-arm64	amlogic		libretech-cc	u-boot.bin
-
-# Neil Armstrong <[email protected]>
-arm64	amlogic		nanopi-k2	u-boot.bin
-
-# Vagrant Cascadian <[email protected]>
-arm64	amlogic		odroid-c2	u-boot.bin
-
-# Vagrant Cascadian <[email protected]>
-arm64	  mvebu		mvebu_espressobin-88f3720	u-boot.bin arch/arm/dts/armada-3720-espressobin.dtb
-
-# Riku Voipio <[email protected]>
-arm64	qcom		dragonboard410c	u-boot.bin
-arm64	qcom		dragonboard820c	u-boot.bin
-
-# Vagrant Cascadian <[email protected]>
-arm64  rockchip        firefly-rk3399  /usr/lib/arm-trusted-firmware/rk3399/bl31.elf u-boot.img u-boot.bin u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/rk3399-firefly.dtb u-boot.itb idbloader.img
-
-# Vagrant Cascadian <[email protected]>
-arm64  rockchip        pinebook-pro-rk3399  /usr/lib/arm-trusted-firmware/rk3399/bl31.elf u-boot.img u-boot.bin u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/rk3399-pinebook-pro.dtb u-boot.itb idbloader.img
-
-# Vagrant Cascadian <[email protected]>
-arm64  rockchip        rockpro64-rk3399  /usr/lib/arm-trusted-firmware/rk3399/bl31.elf u-boot.img u-boot.bin u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/rk3399-rockpro64.dtb u-boot.itb idbloader.img
-
-# Vagrant Cascadian <[email protected]>
-arm64  rockchip        rock64-rk3328  /usr/lib/arm-trusted-firmware/rk3328/bl31.elf u-boot.img u-boot.bin u-boot-nodtb.bin spl/u-boot-spl.bin tpl/u-boot-tpl.bin arch/arm/dts/rk3328-rock64.dtb u-boot.itb idbloader.img
-
-# Vagrant Cascadian <[email protected]>
-arm64  rockchip        puma-rk3399  u-boot.img u-boot.bin u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/rk3399-puma-haikou.dtb idbloader.img
-
-# Walter Lozano <[email protected]>
-arm64  rockchip        rock-pi-4-rk3399 /usr/lib/arm-trusted-firmware/rk3399/bl31.elf u-boot.img u-boot.bin u-boot-nodtb.bin spl/u-boot-spl.bin arch/arm/dts/rk3399-rock-pi-4a.dtb arch/arm/dts/rk3399-rock-pi-4b.dtb u-boot.itb idbloader.img
-
-# Ryan Finnie <[email protected]>
-arm64	rpi		rpi_3		u-boot.bin
-
-# Lucas Nussbaum <[email protected]>
-# Andreas Henriksson <[email protected]>
-arm64	rpi		rpi_4		u-boot.bin
-
-# Denis Pynkin <[email protected]>
-arm64	rpi		rpi_arm64	u-boot.bin
-
-# Rodrigo Exterckötter Tjäder <[email protected]>
-arm64	sunxi		a64-olinuxino	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-a64-olinuxino.dtb u-boot.itb
-
-# Philip Rinn <[email protected]>
-arm64	sunxi		a64-olinuxino-emmc	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-a64-olinuxino-emmc.dtb u-boot.itb
-
-# Domenico Andreoli <[email protected]>
-arm64	sunxi		nanopi_neo2	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-h5-nanopi-neo2.dtb u-boot.itb
-
-# Steev Klimaszewski <[email protected]>
-arm64	sunxi		nanopi_neo_plus2	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dtb u-boot.itb
-
-# Frederic Danis <[email protected]>
-arm64	sunxi		orangepi_zero_plus2	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dtb u-boot.itb
-
-# Vagrant Cascadian <[email protected]>
-arm64	sunxi		pine64_plus	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-a64-pine64-plus.dtb arch/arm/dts/sun50i-a64-pine64.dtb u-boot.itb
-
-# Sunil Mohan Adapa <[email protected]>
-arm64	sunxi		pine64-lts	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-a64-pine64-lts.dtb arch/arm/dts/sun50i-a64-pine64.dtb u-boot.itb
-
-# Vagrant Cascadian <[email protected]>
-arm64	sunxi		pinebook	/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-a64-pinebook.dtb u-boot.itb
-
-# Jonas Smedegaard <[email protected]>
-arm64	sunxi		teres_i		/usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin u-boot.bin spl/sunxi-spl.bin u-boot-nodtb.bin arch/arm/dts/sun50i-a64-teres-i.dtb u-boot.itb
-
-# Vagrant Cascadian <[email protected]>
-arm64	tegra		p2371-2180	u-boot.bin
-
-avr32	-		hammerhead	u-boot.img
-
-# Hector Oron <[email protected]>
-riscv64	sifive	sifive_fu540	u-boot.bin
-
-sh4	-		r2dplus		u-boot.bin
-
-all:amd64	qemu	qemu-x86_64	u-boot.bin
-all:armhf	qemu	qemu_arm	u-boot.bin
-all:arm64	qemu	qemu_arm64	u-boot.bin
-all:i386	qemu	qemu-x86	u-boot.bin
-all:powerpc	qemu	qemu-ppce500	u-boot.bin
-all:riscv64	qemu	qemu-riscv64	u-boot.bin
-all:riscv64	qemu	qemu-riscv64_smode	u-boot.bin
diff --git a/debian/u-boot-amlogic.install b/debian/u-boot-amlogic.install
old mode 100755
new mode 100644
index 17ec78ee51..5d0c7a1c90
--- a/debian/u-boot-amlogic.install
+++ b/debian/u-boot-amlogic.install
@@ -1,2 +1,14 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets amlogic
+debian/build/khadas-vim/u-boot.bin      usr/lib/u-boot/khadas-vim
+debian/build/khadas-vim/uboot.elf       usr/lib/u-boot/khadas-vim
+
+debian/build/khadas-vim2/u-boot.bin     usr/lib/u-boot/khadas-vim2
+debian/build/khadas-vim2/uboot.elf      usr/lib/u-boot/khadas-vim2
+
+debian/build/libretech-cc/u-boot.bin    usr/lib/u-boot/libretech-cc
+debian/build/libretech-cc/uboot.elf     usr/lib/u-boot/libretech-cc
+
+debian/build/nanopi-k2/u-boot.bin       usr/lib/u-boot/nanopi-k2
+debian/build/nanopi-k2/uboot.elf        usr/lib/u-boot/nanopi-k2
+
+debian/build/odroid-c2/u-boot.bin       usr/lib/u-boot/odroid-c2
+debian/build/odroid-c2/uboot.elf        usr/lib/u-boot/odroid-c2
diff --git a/debian/u-boot-amlogic_arm64.mk b/debian/u-boot-amlogic_arm64.mk
new file mode 100644
index 0000000000..69de9e929e
--- /dev/null
+++ b/debian/u-boot-amlogic_arm64.mk
@@ -0,0 +1,14 @@
+# Helper for debian/rules
+
+u-boot-amlogic_platforms := \
+  khadas-vim \
+  khadas-vim2 \
+  libretech-cc \
+  nanopi-k2 \
+  odroid-c2
+
+# khadas-vim                Neil Armstrong <[email protected]>
+# khadas-vim2               Neil Armstrong <[email protected]>
+# nanopi-k2                 Neil Armstrong <[email protected]>
+# libretech-cc              Frederic Danis <[email protected]>
+# odroid-c2                 Vagrant Cascadian <[email protected]>
diff --git a/debian/u-boot-exynos.install b/debian/u-boot-exynos.install
old mode 100755
new mode 100644
index e4408cf003..f640b9981c
--- a/debian/u-boot-exynos.install
+++ b/debian/u-boot-exynos.install
@@ -1,2 +1,9 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets exynos
+debian/build/arndale/spl/arndale-spl.bin usr/lib/u-boot/arndale
+debian/build/arndale/u-boot.bin         usr/lib/u-boot/arndale
+debian/build/arndale/uboot.elf          usr/lib/u-boot/arndale
+
+debian/build/odroid/u-boot.bin          usr/lib/u-boot/odroid
+debian/build/odroid/uboot.elf           usr/lib/u-boot/odroid
+
+debian/build/odroid-xu3/u-boot.bin      usr/lib/u-boot/odroid-xu3
+debian/build/odroid-xu3/uboot.elf       usr/lib/u-boot/odroid-xu3
diff --git a/debian/u-boot-exynos_armhf.mk b/debian/u-boot-exynos_armhf.mk
new file mode 100644
index 0000000000..3c327dbd40
--- /dev/null
+++ b/debian/u-boot-exynos_armhf.mk
@@ -0,0 +1,6 @@
+# Helper for debian/rules
+
+u-boot-exynos_platforms := arndale odroid odroid-xu3
+
+# odroid                    Joost van Zwieten <[email protected]>, Odroid-U3
+# odroid-xu3                Vagrant Cascadian <[email protected]>, Odroid-XU4
diff --git a/debian/u-boot-imx.install b/debian/u-boot-imx.install
old mode 100755
new mode 100644
index cc4eb34ec3..23352aa5ac
--- a/debian/u-boot-imx.install
+++ b/debian/u-boot-imx.install
@@ -1,2 +1,33 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets imx
+debian/build/dh_imx6/u-boot-with-spl.imx usr/lib/u-boot/dh_imx6
+debian/build/dh_imx6/uboot.elf          usr/lib/u-boot/dh_imx6
+
+debian/build/mx53loco/u-boot.imx        usr/lib/u-boot/mx53loco
+debian/build/mx53loco/uboot.elf         usr/lib/u-boot/mx53loco
+
+debian/build/mx6cuboxi/SPL              usr/lib/u-boot/mx6cuboxi
+debian/build/mx6cuboxi/u-boot.img       usr/lib/u-boot/mx6cuboxi
+debian/build/mx6cuboxi/uboot.elf        usr/lib/u-boot/mx6cuboxi
+
+debian/build/mx6qsabrelite/u-boot-dtb.imx usr/lib/u-boot/mx6qsabrelite
+debian/build/mx6qsabrelite/uboot.elf    usr/lib/u-boot/mx6qsabrelite
+
+debian/build/nitrogen6q/u-boot-dtb.imx  usr/lib/u-boot/nitrogen6q
+debian/build/nitrogen6q/uboot.elf       usr/lib/u-boot/nitrogen6q
+
+debian/build/novena/SPL                 usr/lib/u-boot/novena
+debian/build/novena/u-boot.img          usr/lib/u-boot/novena
+debian/build/novena/uboot.elf           usr/lib/u-boot/novena
+
+debian/build/novena-rawsd/SPL           usr/lib/u-boot/novena-rawsd
+debian/build/novena-rawsd/uboot.elf     usr/lib/u-boot/novena-rawsd
+
+debian/build/udoo/SPL                   usr/lib/u-boot/udoo
+debian/build/udoo/u-boot.img            usr/lib/u-boot/udoo
+debian/build/udoo/uboot.elf             usr/lib/u-boot/udoo
+
+debian/build/usbarmory/u-boot.imx       usr/lib/u-boot/usbarmory
+debian/build/usbarmory/uboot.elf        usr/lib/u-boot/usbarmory
+
+debian/build/wandboard/SPL              usr/lib/u-boot/wandboard
+debian/build/wandboard/u-boot.img       usr/lib/u-boot/wandboard
+debian/build/wandboard/uboot.elf        usr/lib/u-boot/wandboard
diff --git a/debian/u-boot-imx_armhf.mk b/debian/u-boot-imx_armhf.mk
new file mode 100644
index 0000000000..35b20f85f9
--- /dev/null
+++ b/debian/u-boot-imx_armhf.mk
@@ -0,0 +1,36 @@
+# Helper for debian/rules
+
+u-boot-imx_platforms := \
+  dh_imx6 \
+  mx53loco \
+  mx6cuboxi \
+  mx6qsabrelite \
+  nitrogen6q \
+  novena \
+  novena-rawsd \
+  udoo \
+  usbarmory \
+  wandboard \
+
+# dh_imx6       Marek Vasut <[email protected]>
+# mx53loco      Robert Nelson <[email protected]>
+# mx6cuboxi     Steve Langasek <[email protected]>, CuBox-i4
+#               Vagrant Cascadian <[email protected]>, CuBox-i4pro, Cubox-i4x4, hummingboard-i1, hummingboard-i2ex
+#               Rainer Dorsch <[email protected]>, CuBox-i2u (i2u-300-d)
+#               Rick Thomas <[email protected]>, Cubox-i4x4, Cubox-i4PRO
+# mx6qsabrelite Martyn Welch <[email protected]>
+# nitrogen6q    Hector Oron <[email protected]>
+# novena        Vagrant Cascadian <[email protected]>
+# novena-rawsd  Vagrant Cascadian <[email protected]>
+
+novena-rawsd_targets := SPL
+novena-rawsd: configs/novena-rawsd_defconfig
+configs/novena-rawsd_defconfig: configs/novena_defconfig
+	sed -e 's,CONFIG_SPL_FS_FAT=y,# CONFIG_SPL_FS_FAT is not set,' \
+		configs/novena_defconfig > configs/novena-rawsd_defconfig
+dh_clean_args += configs/novena-rawsd_defconfig
+
+# udoo          Michael Fladischer <[email protected]>
+# usbarmory     Vagrant Cascadian <[email protected]>
+# wandboard     Vagrant Cascadian <[email protected]>
+#               Robert Nelson <[email protected]>
diff --git a/debian/u-boot-mvebu.install b/debian/u-boot-mvebu.install
old mode 100755
new mode 100644
index 96c98cef78..2588f8684d
--- a/debian/u-boot-mvebu.install
+++ b/debian/u-boot-mvebu.install
@@ -1,2 +1,3 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets mvebu
+debian/build/mvebu_espressobin-88f3720/arch/arm/dts/armada-3720-espressobin.dtb usr/lib/u-boot/mvebu_espressobin-88f3720
+debian/build/mvebu_espressobin-88f3720/u-boot.bin usr/lib/u-boot/mvebu_espressobin-88f3720
+debian/build/mvebu_espressobin-88f3720/uboot.elf usr/lib/u-boot/mvebu_espressobin-88f3720
diff --git a/debian/u-boot-mvebu_arm64.mk b/debian/u-boot-mvebu_arm64.mk
new file mode 100644
index 0000000000..3750efd3a0
--- /dev/null
+++ b/debian/u-boot-mvebu_arm64.mk
@@ -0,0 +1,5 @@
+# Helper for debian/rules
+
+u-boot-mvebu_platforms := mvebu_espressobin-88f3720
+
+# mvebu_espressobin-88f3720 Vagrant Cascadian <[email protected]>
diff --git a/debian/u-boot-omap.install b/debian/u-boot-omap.install
old mode 100755
new mode 100644
index 8a9873e043..1a12d84104
--- a/debian/u-boot-omap.install
+++ b/debian/u-boot-omap.install
@@ -1,2 +1,30 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets omap
+debian/build/am335x_boneblack/MLO       usr/lib/u-boot/am335x_boneblack
+debian/build/am335x_boneblack/u-boot.img usr/lib/u-boot/am335x_boneblack
+debian/build/am335x_boneblack/uboot.elf usr/lib/u-boot/am335x_boneblack
+
+debian/build/am335x_evm/MLO             usr/lib/u-boot/am335x_evm
+debian/build/am335x_evm/u-boot.img      usr/lib/u-boot/am335x_evm
+debian/build/am335x_evm/uboot.elf       usr/lib/u-boot/am335x_evm
+
+debian/build/am57xx_evm/MLO             usr/lib/u-boot/am57xx_evm
+debian/build/am57xx_evm/u-boot.img      usr/lib/u-boot/am57xx_evm
+debian/build/am57xx_evm/uboot.elf       usr/lib/u-boot/am57xx_evm
+
+debian/build/dra7xx_evm/MLO             usr/lib/u-boot/dra7xx_evm
+debian/build/dra7xx_evm/u-boot.img      usr/lib/u-boot/dra7xx_evm
+debian/build/dra7xx_evm/uboot.elf       usr/lib/u-boot/dra7xx_evm
+
+debian/build/igep00x0/MLO               usr/lib/u-boot/igep00x0
+debian/build/igep00x0/u-boot.img        usr/lib/u-boot/igep00x0
+debian/build/igep00x0/uboot.elf         usr/lib/u-boot/igep00x0
+
+debian/build/nokia_rx51/u-boot.bin      usr/lib/u-boot/nokia_rx51
+debian/build/nokia_rx51/uboot.elf       usr/lib/u-boot/nokia_rx51
+
+debian/build/omap3_beagle/MLO           usr/lib/u-boot/omap3_beagle
+debian/build/omap3_beagle/u-boot.img    usr/lib/u-boot/omap3_beagle
+debian/build/omap3_beagle/uboot.elf     usr/lib/u-boot/omap3_beagle
+
+debian/build/omap4_panda/MLO            usr/lib/u-boot/omap4_panda
+debian/build/omap4_panda/u-boot.img     usr/lib/u-boot/omap4_panda
+debian/build/omap4_panda/uboot.elf      usr/lib/u-boot/omap4_panda
diff --git a/debian/u-boot-omap_armhf.mk b/debian/u-boot-omap_armhf.mk
new file mode 100644
index 0000000000..b17045a788
--- /dev/null
+++ b/debian/u-boot-omap_armhf.mk
@@ -0,0 +1,27 @@
+# Helper for debian/rules
+
+u-boot-omap_platforms := \
+  am335x_boneblack \
+  am335x_evm \
+  am57xx_evm \
+  dra7xx_evm \
+  igep00x0 \
+  nokia_rx51 \
+  omap3_beagle \
+  omap4_panda \
+
+# am335x_boneblack          Vagrant Cascadian <[email protected]>
+#                           Andrew M.A. Cater <[email protected]>
+
+am335x_boneblack: configs/am335x_boneblack_defconfig
+configs/am335x_boneblack_defconfig: configs/am335x_evm_defconfig
+	sed -e 's,CONFIG_OF_LIST=.*,CONFIG_OF_LIST="am335x-evm am335x-boneblack",g' \
+		configs/am335x_evm_defconfig > configs/am335x_boneblack_defconfig
+dh_clean_args += configs/am335x_boneblack_defconfig
+
+# am335x_evm                Vagrant Cascadian <[email protected]>
+#                           Andrew M.A. Cater <[email protected]>
+# am57xx_evm                Vagrant Cascadian <[email protected]>
+# igep00x0                  Robert Nelson <[email protected]>
+# omap3_beagle              Robert Nelson <[email protected]>
+# omap4_panda               Robert Nelson <[email protected]>
diff --git a/debian/u-boot-qcom.install b/debian/u-boot-qcom.install
old mode 100755
new mode 100644
index 0ff7e5bfac..32d3f2071c
--- a/debian/u-boot-qcom.install
+++ b/debian/u-boot-qcom.install
@@ -1,2 +1,5 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets qcom
+debian/build/dragonboard410c/u-boot.bin usr/lib/u-boot/dragonboard410c
+debian/build/dragonboard410c/uboot.elf  usr/lib/u-boot/dragonboard410c
+
+debian/build/dragonboard820c/u-boot.bin usr/lib/u-boot/dragonboard820c
+debian/build/dragonboard820c/uboot.elf  usr/lib/u-boot/dragonboard820c
diff --git a/debian/u-boot-qcom_arm64.mk b/debian/u-boot-qcom_arm64.mk
new file mode 100644
index 0000000000..fc8fc76c2d
--- /dev/null
+++ b/debian/u-boot-qcom_arm64.mk
@@ -0,0 +1,6 @@
+# Helper for debian/rules
+
+u-boot-qcom_platforms := dragonboard410c dragonboard820c
+
+# dragonboard410c           Riku Voipio <[email protected]>
+# dragonboard820c           Riku Voipio <[email protected]>
diff --git a/debian/u-boot-qemu.install b/debian/u-boot-qemu.install
deleted file mode 100755
index 5dca5d720e..0000000000
--- a/debian/u-boot-qemu.install
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets qemu
diff --git a/debian/u-boot-rockchip.install b/debian/u-boot-rockchip.install
deleted file mode 100755
index 89856b7c6c..0000000000
--- a/debian/u-boot-rockchip.install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets rockchip
-cp arch/arm/mach-rockchip/make_fit_atf.py debian/build/rockchip_make_fit_atf
-sed -i -e 's,/usr/bin/env python.*,/usr/bin/python3,g' debian/build/rockchip_make_fit_atf
-echo debian/build/rockchip_make_fit_atf /usr/bin/
-echo debian/bin/u-boot-install-rockchip /usr/bin/
diff --git a/debian/u-boot-rockchip.install.arm64 b/debian/u-boot-rockchip.install.arm64
new file mode 100644
index 0000000000..fdd36f0c9b
--- /dev/null
+++ b/debian/u-boot-rockchip.install.arm64
@@ -0,0 +1,57 @@
+debian/bin/u-boot-install-rockchip      usr/bin
+debian/build/rockchip_make_fit_atf      usr/bin
+
+debian/build/firefly-rk3399/arch/arm/dts/rk3399-firefly.dtb usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/idbloader.img usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/spl/u-boot-spl.bin usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/u-boot-nodtb.bin usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/u-boot.bin  usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/u-boot.img  usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/u-boot.itb  usr/lib/u-boot/firefly-rk3399
+debian/build/firefly-rk3399/uboot.elf   usr/lib/u-boot/firefly-rk3399
+
+debian/build/pinebook-pro-rk3399/arch/arm/dts/rk3399-pinebook-pro.dtb usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/idbloader.img usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/spl/u-boot-spl.bin usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/u-boot-nodtb.bin usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/u-boot.bin usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/u-boot.img usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/u-boot.itb usr/lib/u-boot/pinebook-pro-rk3399
+debian/build/pinebook-pro-rk3399/uboot.elf usr/lib/u-boot/pinebook-pro-rk3399
+
+debian/build/puma-rk3399/arch/arm/dts/rk3399-puma-haikou.dtb usr/lib/u-boot/puma-rk3399
+debian/build/puma-rk3399/idbloader.img  usr/lib/u-boot/puma-rk3399
+debian/build/puma-rk3399/spl/u-boot-spl.bin usr/lib/u-boot/puma-rk3399
+debian/build/puma-rk3399/u-boot-nodtb.bin usr/lib/u-boot/puma-rk3399
+debian/build/puma-rk3399/u-boot.bin     usr/lib/u-boot/puma-rk3399
+debian/build/puma-rk3399/u-boot.img     usr/lib/u-boot/puma-rk3399
+debian/build/puma-rk3399/uboot.elf      usr/lib/u-boot/puma-rk3399
+
+debian/build/rock-pi-4-rk3399/arch/arm/dts/rk3399-rock-pi-4a.dtb usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/arch/arm/dts/rk3399-rock-pi-4b.dtb usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/idbloader.img usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/spl/u-boot-spl.bin usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/u-boot-nodtb.bin usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/u-boot.bin usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/u-boot.img usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/u-boot.itb usr/lib/u-boot/rock-pi-4-rk3399
+debian/build/rock-pi-4-rk3399/uboot.elf usr/lib/u-boot/rock-pi-4-rk3399
+
+debian/build/rock64-rk3328/arch/arm/dts/rk3328-rock64.dtb usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/idbloader.img usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/spl/u-boot-spl.bin usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/tpl/u-boot-tpl.bin usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/u-boot-nodtb.bin usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/u-boot.bin   usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/u-boot.img   usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/u-boot.itb   usr/lib/u-boot/rock64-rk3328
+debian/build/rock64-rk3328/uboot.elf    usr/lib/u-boot/rock64-rk3328
+
+debian/build/rockpro64-rk3399/arch/arm/dts/rk3399-rockpro64.dtb usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/idbloader.img usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/spl/u-boot-spl.bin usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/u-boot-nodtb.bin usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/u-boot.bin usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/u-boot.img usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/u-boot.itb usr/lib/u-boot/rockpro64-rk3399
+debian/build/rockpro64-rk3399/uboot.elf usr/lib/u-boot/rockpro64-rk3399
diff --git a/debian/u-boot-rockchip.install.armhf b/debian/u-boot-rockchip.install.armhf
new file mode 100644
index 0000000000..3bac958d3e
--- /dev/null
+++ b/debian/u-boot-rockchip.install.armhf
@@ -0,0 +1,7 @@
+debian/bin/u-boot-install-rockchip      usr/bin
+
+debian/build/firefly-rk3288/idbloader.img usr/lib/u-boot/firefly-rk3288
+debian/build/firefly-rk3288/spl/u-boot-spl.bin usr/lib/u-boot/firefly-rk3288
+debian/build/firefly-rk3288/u-boot.bin  usr/lib/u-boot/firefly-rk3288
+debian/build/firefly-rk3288/u-boot.img  usr/lib/u-boot/firefly-rk3288
+debian/build/firefly-rk3288/uboot.elf   usr/lib/u-boot/firefly-rk3288
diff --git a/debian/u-boot-rockchip_arm64.mk b/debian/u-boot-rockchip_arm64.mk
new file mode 100644
index 0000000000..f7f03e0943
--- /dev/null
+++ b/debian/u-boot-rockchip_arm64.mk
@@ -0,0 +1,33 @@
+# Helper for debian/rules
+
+u-boot-rockchip_platforms := \
+  firefly-rk3399 \
+  pinebook-pro-rk3399 \
+  puma-rk3399 \
+  rock-pi-4-rk3399 \
+  rock64-rk3328 \
+  rockpro64-rk3399 \
+
+u-boot-rockchip: export BL31 := /usr/lib/arm-trusted-firmware/rk3399/bl31.elf
+
+u-boot-rockchip_substvars := "-Vuboot:Built-Using=$$(dpkg-query \
+  -f '$${source:Package} (= $${source:Version}) [arm64]' -W arm-trusted-firmware)"
+
+u-boot-rockchip: debian/build/rockchip_make_fit_atf
+debian/build/rockchip_make_fit_atf: arch/arm/mach-rockchip/make_fit_atf.py
+	mkdir -p debian/build
+	sed '1 s,/usr/bin/env python.*,/usr/bin/python3,' \
+	  arch/arm/mach-rockchip/make_fit_atf.py > debian/build/rockchip_make_fit_atf
+	chmod +x debian/build/rockchip_make_fit_atf
+
+# firefly-rk3399            Vagrant Cascadian <[email protected]>
+# pinebook-pro-rk3399       Vagrant Cascadian <[email protected]>
+# puma-rk3399               Vagrant Cascadian <[email protected]>
+
+# TODO: this was in debian/targets, but does not buid on my machine
+# puma-rk3399:: export BL31 := does not work
+# I (Nicolas) suspect that the previous export was active, hiding the issue.
+
+# rock-pi-4-rk3399          Walter Lozano <[email protected]>
+# rock64-rk3328             Vagrant Cascadian <[email protected]>
+# rockpro64-rk3399          Vagrant Cascadian <[email protected]>
diff --git a/debian/u-boot-rockchip_armhf.mk b/debian/u-boot-rockchip_armhf.mk
new file mode 100644
index 0000000000..8c58589282
--- /dev/null
+++ b/debian/u-boot-rockchip_armhf.mk
@@ -0,0 +1,8 @@
+# Helper for debian/rules
+
+u-boot-rockchip_platforms := firefly-rk3288
+
+# Silent a debhelper warning about an unused substvar.
+u-boot-rockchip_substvars := -Vuboot:Built-Using=
+
+# firefly-rk3288            Vagrant Cascadian <[email protected]>, 2GB and 4GB variants
diff --git a/debian/u-boot-rpi.install b/debian/u-boot-rpi.install
deleted file mode 100755
index 36cbec1358..0000000000
--- a/debian/u-boot-rpi.install
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets rpi
diff --git a/debian/u-boot-rpi.install.arm64 b/debian/u-boot-rpi.install.arm64
new file mode 100644
index 0000000000..bf8a8dc7c7
--- /dev/null
+++ b/debian/u-boot-rpi.install.arm64
@@ -0,0 +1,8 @@
+debian/build/rpi_3/u-boot.bin           usr/lib/u-boot/rpi_3
+debian/build/rpi_3/uboot.elf            usr/lib/u-boot/rpi_3
+
+debian/build/rpi_4/u-boot.bin           usr/lib/u-boot/rpi_4
+debian/build/rpi_4/uboot.elf            usr/lib/u-boot/rpi_4
+
+debian/build/rpi_arm64/u-boot.bin       usr/lib/u-boot/rpi_arm64
+debian/build/rpi_arm64/uboot.elf        usr/lib/u-boot/rpi_arm64
diff --git a/debian/u-boot-rpi.install.armel b/debian/u-boot-rpi.install.armel
new file mode 100644
index 0000000000..503bd25711
--- /dev/null
+++ b/debian/u-boot-rpi.install.armel
@@ -0,0 +1,5 @@
+debian/build/rpi/u-boot.bin             usr/lib/u-boot/rpi
+debian/build/rpi/uboot.elf              usr/lib/u-boot/rpi
+
+debian/build/rpi_0_w/u-boot.bin         usr/lib/u-boot/rpi_0_w
+debian/build/rpi_0_w/uboot.elf          usr/lib/u-boot/rpi_0_w
diff --git a/debian/u-boot-rpi.install.armhf b/debian/u-boot-rpi.install.armhf
new file mode 100644
index 0000000000..c5e6dc6dea
--- /dev/null
+++ b/debian/u-boot-rpi.install.armhf
@@ -0,0 +1,8 @@
+debian/build/rpi_2/u-boot.bin           usr/lib/u-boot/rpi_2
+debian/build/rpi_2/uboot.elf            usr/lib/u-boot/rpi_2
+
+debian/build/rpi_3_32b/u-boot.bin       usr/lib/u-boot/rpi_3_32b
+debian/build/rpi_3_32b/uboot.elf        usr/lib/u-boot/rpi_3_32b
+
+debian/build/rpi_4_32b/u-boot.bin       usr/lib/u-boot/rpi_4_32b
+debian/build/rpi_4_32b/uboot.elf        usr/lib/u-boot/rpi_4_32b
diff --git a/debian/u-boot-rpi_arm64.mk b/debian/u-boot-rpi_arm64.mk
new file mode 100644
index 0000000000..652f907651
--- /dev/null
+++ b/debian/u-boot-rpi_arm64.mk
@@ -0,0 +1,8 @@
+# Helper for debian/rules
+
+u-boot-rpi_platforms := rpi_3 rpi_4 rpi_arm64
+
+# rpi_3                     Ryan Finnie <[email protected]>
+# rpi_4                     Lucas Nussbaum <[email protected]>
+#                           Andreas Henriksson <[email protected]>
+# rpi_arm64                 Denis Pynkin <[email protected]>
diff --git a/debian/u-boot-rpi_armel.mk b/debian/u-boot-rpi_armel.mk
new file mode 100644
index 0000000000..344173ff8f
--- /dev/null
+++ b/debian/u-boot-rpi_armel.mk
@@ -0,0 +1,6 @@
+# Helper for debian/rules
+
+u-boot-rpi_platforms := rpi rpi_0_w
+
+# rpi                       Vagrant Cascadian <[email protected]>, rpi B 256M
+# rpi_0_w                   Romain Perier <[email protected]>, rpi zero w
diff --git a/debian/u-boot-rpi_armhf.mk b/debian/u-boot-rpi_armhf.mk
new file mode 100644
index 0000000000..7a1fc711ec
--- /dev/null
+++ b/debian/u-boot-rpi_armhf.mk
@@ -0,0 +1,8 @@
+# Helper for debian/rules
+
+u-boot-rpi_platforms := rpi_2 rpi_3_32b rpi_4_32b
+
+# rpi_2                     Vagrant Cascadian <[email protected]>, Raspberry PI 2B
+# rpi_3_32b                 Ryan Finnie <[email protected]>
+# rpi_4_32b                 Lucas Nussbaum <[email protected]>
+#                           Andreas Henriksson <[email protected]>
diff --git a/debian/u-boot-sifive.install b/debian/u-boot-sifive.install
old mode 100755
new mode 100644
index 5b20c3f900..cfb153e623
--- a/debian/u-boot-sifive.install
+++ b/debian/u-boot-sifive.install
@@ -1,2 +1,2 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets sifive
+debian/build/sifive_fu540/u-boot.bin    usr/lib/u-boot/sifive_fu540
+debian/build/sifive_fu540/uboot.elf     usr/lib/u-boot/sifive_fu540
diff --git a/debian/u-boot-sifive_riscv64.mk b/debian/u-boot-sifive_riscv64.mk
new file mode 100644
index 0000000000..baa9f55f1a
--- /dev/null
+++ b/debian/u-boot-sifive_riscv64.mk
@@ -0,0 +1,6 @@
+# Helper for debian/rules
+
+u-boot-sifive_platforms := sifive_fu540
+
+# Hector Oron <[email protected]>
+# sifive_fu540
diff --git a/debian/u-boot-sunxi.install b/debian/u-boot-sunxi.install
deleted file mode 100755
index 73835d69b4..0000000000
--- a/debian/u-boot-sunxi.install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets sunxi
-cp board/sunxi/mksunxi_fit_atf.sh debian/build/mksunxi_fit_atf
-echo debian/build/mksunxi_fit_atf /usr/bin/
-
-echo debian/bin/u-boot-install-sunxi64 /usr/bin/
diff --git a/debian/u-boot-sunxi.install.arm64 b/debian/u-boot-sunxi.install.arm64
new file mode 100644
index 0000000000..1f958d2928
--- /dev/null
+++ b/debian/u-boot-sunxi.install.arm64
@@ -0,0 +1,67 @@
+debian/bin/u-boot-install-sunxi64       usr/bin
+debian/build/mksunxi_fit_atf            usr/bin
+
+debian/build/a64-olinuxino/arch/arm/dts/sun50i-a64-olinuxino.dtb usr/lib/u-boot/a64-olinuxino
+debian/build/a64-olinuxino/spl/sunxi-spl.bin usr/lib/u-boot/a64-olinuxino
+debian/build/a64-olinuxino/u-boot-nodtb.bin usr/lib/u-boot/a64-olinuxino
+debian/build/a64-olinuxino/u-boot.bin   usr/lib/u-boot/a64-olinuxino
+debian/build/a64-olinuxino/u-boot.itb   usr/lib/u-boot/a64-olinuxino
+debian/build/a64-olinuxino/uboot.elf    usr/lib/u-boot/a64-olinuxino
+
+debian/build/a64-olinuxino-emmc/arch/arm/dts/sun50i-a64-olinuxino-emmc.dtb usr/lib/u-boot/a64-olinuxino-emmc
+debian/build/a64-olinuxino-emmc/spl/sunxi-spl.bin usr/lib/u-boot/a64-olinuxino-emmc
+debian/build/a64-olinuxino-emmc/u-boot-nodtb.bin usr/lib/u-boot/a64-olinuxino-emmc
+debian/build/a64-olinuxino-emmc/u-boot.bin usr/lib/u-boot/a64-olinuxino-emmc
+debian/build/a64-olinuxino-emmc/u-boot.itb usr/lib/u-boot/a64-olinuxino-emmc
+debian/build/a64-olinuxino-emmc/uboot.elf usr/lib/u-boot/a64-olinuxino-emmc
+
+debian/build/nanopi_neo2/arch/arm/dts/sun50i-h5-nanopi-neo2.dtb usr/lib/u-boot/nanopi_neo2
+debian/build/nanopi_neo2/spl/sunxi-spl.bin usr/lib/u-boot/nanopi_neo2
+debian/build/nanopi_neo2/u-boot-nodtb.bin usr/lib/u-boot/nanopi_neo2
+debian/build/nanopi_neo2/u-boot.bin     usr/lib/u-boot/nanopi_neo2
+debian/build/nanopi_neo2/u-boot.itb     usr/lib/u-boot/nanopi_neo2
+debian/build/nanopi_neo2/uboot.elf      usr/lib/u-boot/nanopi_neo2
+
+debian/build/nanopi_neo_plus2/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dtb usr/lib/u-boot/nanopi_neo_plus2
+debian/build/nanopi_neo_plus2/spl/sunxi-spl.bin usr/lib/u-boot/nanopi_neo_plus2
+debian/build/nanopi_neo_plus2/u-boot-nodtb.bin usr/lib/u-boot/nanopi_neo_plus2
+debian/build/nanopi_neo_plus2/u-boot.bin usr/lib/u-boot/nanopi_neo_plus2
+debian/build/nanopi_neo_plus2/u-boot.itb usr/lib/u-boot/nanopi_neo_plus2
+debian/build/nanopi_neo_plus2/uboot.elf usr/lib/u-boot/nanopi_neo_plus2
+
+debian/build/orangepi_zero_plus2/arch/arm/dts/sun50i-h5-orangepi-zero-plus2.dtb usr/lib/u-boot/orangepi_zero_plus2
+debian/build/orangepi_zero_plus2/spl/sunxi-spl.bin usr/lib/u-boot/orangepi_zero_plus2
+debian/build/orangepi_zero_plus2/u-boot-nodtb.bin usr/lib/u-boot/orangepi_zero_plus2
+debian/build/orangepi_zero_plus2/u-boot.bin usr/lib/u-boot/orangepi_zero_plus2
+debian/build/orangepi_zero_plus2/u-boot.itb usr/lib/u-boot/orangepi_zero_plus2
+debian/build/orangepi_zero_plus2/uboot.elf usr/lib/u-boot/orangepi_zero_plus2
+
+debian/build/pine64-lts/arch/arm/dts/sun50i-a64-pine64-lts.dtb usr/lib/u-boot/pine64-lts
+debian/build/pine64-lts/arch/arm/dts/sun50i-a64-pine64.dtb usr/lib/u-boot/pine64-lts
+debian/build/pine64-lts/spl/sunxi-spl.bin usr/lib/u-boot/pine64-lts
+debian/build/pine64-lts/u-boot-nodtb.bin usr/lib/u-boot/pine64-lts
+debian/build/pine64-lts/u-boot.bin      usr/lib/u-boot/pine64-lts
+debian/build/pine64-lts/u-boot.itb      usr/lib/u-boot/pine64-lts
+debian/build/pine64-lts/uboot.elf       usr/lib/u-boot/pine64-lts
+
+debian/build/pine64_plus/arch/arm/dts/sun50i-a64-pine64-plus.dtb usr/lib/u-boot/pine64_plus
+debian/build/pine64_plus/arch/arm/dts/sun50i-a64-pine64.dtb usr/lib/u-boot/pine64_plus
+debian/build/pine64_plus/spl/sunxi-spl.bin usr/lib/u-boot/pine64_plus
+debian/build/pine64_plus/u-boot-nodtb.bin usr/lib/u-boot/pine64_plus
+debian/build/pine64_plus/u-boot.bin     usr/lib/u-boot/pine64_plus
+debian/build/pine64_plus/u-boot.itb     usr/lib/u-boot/pine64_plus
+debian/build/pine64_plus/uboot.elf      usr/lib/u-boot/pine64_plus
+
+debian/build/pinebook/arch/arm/dts/sun50i-a64-pinebook.dtb usr/lib/u-boot/pinebook
+debian/build/pinebook/spl/sunxi-spl.bin usr/lib/u-boot/pinebook
+debian/build/pinebook/u-boot-nodtb.bin  usr/lib/u-boot/pinebook
+debian/build/pinebook/u-boot.bin        usr/lib/u-boot/pinebook
+debian/build/pinebook/u-boot.itb        usr/lib/u-boot/pinebook
+debian/build/pinebook/uboot.elf         usr/lib/u-boot/pinebook
+
+debian/build/teres_i/arch/arm/dts/sun50i-a64-teres-i.dtb usr/lib/u-boot/teres_i
+debian/build/teres_i/spl/sunxi-spl.bin  usr/lib/u-boot/teres_i
+debian/build/teres_i/u-boot-nodtb.bin   usr/lib/u-boot/teres_i
+debian/build/teres_i/u-boot.bin         usr/lib/u-boot/teres_i
+debian/build/teres_i/u-boot.itb         usr/lib/u-boot/teres_i
+debian/build/teres_i/uboot.elf          usr/lib/u-boot/teres_i
diff --git a/debian/u-boot-sunxi.install.armhf b/debian/u-boot-sunxi.install.armhf
new file mode 100644
index 0000000000..f4de270696
--- /dev/null
+++ b/debian/u-boot-sunxi.install.armhf
@@ -0,0 +1,77 @@
+debian/build/A10-OLinuXino-Lime/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A10-OLinuXino-Lime
+debian/build/A10-OLinuXino-Lime/uboot.elf usr/lib/u-boot/A10-OLinuXino-Lime
+
+debian/build/A10s-OLinuXino-M/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A10s-OLinuXino-M
+debian/build/A10s-OLinuXino-M/uboot.elf usr/lib/u-boot/A10s-OLinuXino-M
+
+debian/build/A20-OLinuXino-Lime/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A20-OLinuXino-Lime
+debian/build/A20-OLinuXino-Lime/uboot.elf usr/lib/u-boot/A20-OLinuXino-Lime
+
+debian/build/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A20-OLinuXino-Lime2
+debian/build/A20-OLinuXino-Lime2/uboot.elf usr/lib/u-boot/A20-OLinuXino-Lime2
+
+debian/build/A20-OLinuXino-Lime2-eMMC/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A20-OLinuXino-Lime2-eMMC
+debian/build/A20-OLinuXino-Lime2-eMMC/uboot.elf usr/lib/u-boot/A20-OLinuXino-Lime2-eMMC
+
+debian/build/A20-OLinuXino_MICRO/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A20-OLinuXino_MICRO
+debian/build/A20-OLinuXino_MICRO/uboot.elf usr/lib/u-boot/A20-OLinuXino_MICRO
+
+debian/build/A20-Olimex-SOM-EVB/u-boot-sunxi-with-spl.bin usr/lib/u-boot/A20-Olimex-SOM-EVB
+debian/build/A20-Olimex-SOM-EVB/uboot.elf usr/lib/u-boot/A20-Olimex-SOM-EVB
+
+debian/build/Bananapi/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Bananapi
+debian/build/Bananapi/uboot.elf         usr/lib/u-boot/Bananapi
+
+debian/build/Bananapi_M2_Ultra/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Bananapi_M2_Ultra
+debian/build/Bananapi_M2_Ultra/uboot.elf usr/lib/u-boot/Bananapi_M2_Ultra
+
+debian/build/Bananapro/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Bananapro
+debian/build/Bananapro/uboot.elf        usr/lib/u-boot/Bananapro
+
+debian/build/CHIP/u-boot-sunxi-with-spl.bin usr/lib/u-boot/CHIP
+debian/build/CHIP/uboot.elf             usr/lib/u-boot/CHIP
+
+debian/build/Cubieboard/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Cubieboard
+debian/build/Cubieboard/uboot.elf       usr/lib/u-boot/Cubieboard
+
+debian/build/Cubieboard2/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Cubieboard2
+debian/build/Cubieboard2/uboot.elf      usr/lib/u-boot/Cubieboard2
+
+debian/build/Cubieboard4/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Cubieboard4
+debian/build/Cubieboard4/uboot.elf      usr/lib/u-boot/Cubieboard4
+
+debian/build/Cubietruck/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Cubietruck
+debian/build/Cubietruck/uboot.elf       usr/lib/u-boot/Cubietruck
+
+debian/build/Cubietruck_plus/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Cubietruck_plus
+debian/build/Cubietruck_plus/uboot.elf  usr/lib/u-boot/Cubietruck_plus
+
+debian/build/Lamobo_R1/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Lamobo_R1
+debian/build/Lamobo_R1/uboot.elf        usr/lib/u-boot/Lamobo_R1
+
+debian/build/Linksprite_pcDuino/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Linksprite_pcDuino
+debian/build/Linksprite_pcDuino/uboot.elf usr/lib/u-boot/Linksprite_pcDuino
+
+debian/build/Linksprite_pcDuino3/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Linksprite_pcDuino3
+debian/build/Linksprite_pcDuino3/uboot.elf usr/lib/u-boot/Linksprite_pcDuino3
+
+debian/build/Mini-X/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Mini-X
+debian/build/Mini-X/uboot.elf           usr/lib/u-boot/Mini-X
+
+debian/build/Sinovoip_BPI_M3/u-boot-sunxi-with-spl.bin usr/lib/u-boot/Sinovoip_BPI_M3
+debian/build/Sinovoip_BPI_M3/uboot.elf  usr/lib/u-boot/Sinovoip_BPI_M3
+
+debian/build/bananapi_m2_berry/u-boot-sunxi-with-spl.bin usr/lib/u-boot/bananapi_m2_berry
+debian/build/bananapi_m2_berry/uboot.elf usr/lib/u-boot/bananapi_m2_berry
+
+debian/build/nanopi_neo/u-boot-sunxi-with-spl.bin usr/lib/u-boot/nanopi_neo
+debian/build/nanopi_neo/uboot.elf       usr/lib/u-boot/nanopi_neo
+
+debian/build/nanopi_neo_air/u-boot-sunxi-with-spl.bin usr/lib/u-boot/nanopi_neo_air
+debian/build/nanopi_neo_air/uboot.elf   usr/lib/u-boot/nanopi_neo_air
+
+debian/build/orangepi_plus/u-boot-sunxi-with-spl.bin usr/lib/u-boot/orangepi_plus
+debian/build/orangepi_plus/uboot.elf    usr/lib/u-boot/orangepi_plus
+
+debian/build/orangepi_zero/u-boot-sunxi-with-spl.bin usr/lib/u-boot/orangepi_zero
+debian/build/orangepi_zero/uboot.elf    usr/lib/u-boot/orangepi_zero
diff --git a/debian/u-boot-sunxi.manpages b/debian/u-boot-sunxi.manpages.arm64
similarity index 100%
rename from debian/u-boot-sunxi.manpages
rename to debian/u-boot-sunxi.manpages.arm64
diff --git a/debian/u-boot-sunxi_arm64.mk b/debian/u-boot-sunxi_arm64.mk
new file mode 100644
index 0000000000..8cb0c48e70
--- /dev/null
+++ b/debian/u-boot-sunxi_arm64.mk
@@ -0,0 +1,32 @@
+# Helper for debian/rules
+
+u-boot-sunxi_platforms := \
+  a64-olinuxino \
+  a64-olinuxino-emmc \
+  nanopi_neo2 \
+  nanopi_neo_plus2 \
+  orangepi_zero_plus2 \
+  pine64-lts \
+  pine64_plus \
+  pinebook \
+  teres_i \
+
+u-boot-sunxi: export BL31 := /usr/lib/arm-trusted-firmware/sun50i_a64/bl31.bin
+
+u-boot-sunxi_substvars := "-Vuboot:Built-Using=$$(dpkg-query \
+  -f '$${source:Package} (= $${source:Version}) [arm64]' -W arm-trusted-firmware)"
+
+u-boot-sunxi: debian/build/mksunxi_fit_atf
+debian/build/mksunxi_fit_atf: board/sunxi/mksunxi_fit_atf.sh
+	mkdir -p debian/build
+	cp board/sunxi/mksunxi_fit_atf.sh debian/build/mksunxi_fit_atf
+
+# a64-olinuxino             Rodrigo Exterckötter Tjäder <[email protected]>
+# a64-olinuxino-emmc        Philip Rinn <[email protected]>
+# nanopi_neo2               Domenico Andreoli <[email protected]>
+# nanopi_neo_plus2          Steev Klimaszewski <[email protected]>
+# orangepi_zero_plus2       Frederic Danis <[email protected]>
+# pine64-lts                Sunil Mohan Adapa <[email protected]>
+# pine64_plus               Vagrant Cascadian <[email protected]>
+# pinebook                  Vagrant Cascadian <[email protected]>
+# teres_i                   Jonas Smedegaard <[email protected]>
diff --git a/debian/u-boot-sunxi_armhf.mk b/debian/u-boot-sunxi_armhf.mk
new file mode 100644
index 0000000000..c75ce4cae0
--- /dev/null
+++ b/debian/u-boot-sunxi_armhf.mk
@@ -0,0 +1,63 @@
+# Helper for debian/rules
+
+u-boot-sunxi_platforms := \
+  A10-OLinuXino-Lime \
+  A10s-OLinuXino-M \
+  A20-OLinuXino-Lime \
+  A20-OLinuXino-Lime2 \
+  A20-OLinuXino-Lime2-eMMC \
+  A20-OLinuXino_MICRO \
+  A20-Olimex-SOM-EVB \
+  Bananapi \
+  Bananapi_M2_Ultra \
+  Bananapro \
+  CHIP \
+  Cubieboard \
+  Cubieboard2 \
+  Cubieboard4 \
+  Cubietruck \
+  Cubietruck_plus \
+  Lamobo_R1 \
+  Linksprite_pcDuino \
+  Linksprite_pcDuino3 \
+  Mini-X \
+  Sinovoip_BPI_M3 \
+  bananapi_m2_berry \
+  nanopi_neo \
+  nanopi_neo_air \
+  orangepi_plus \
+  orangepi_zero \
+
+# Silent a debhelper warning about an unused substvar.
+u-boot-sunxi_substvars := -Vuboot:Built-Using=
+
+# A10-OLinuXino-Lime          Christian Kastner <[email protected]>
+# A10s-OLinuXino-M            Benedikt Wildenhain <[email protected]>
+# A20-OLinuXino-Lime          Christian Kastner <[email protected]>
+# A20-OLinuXino-Lime2         Karsten Merker <[email protected]>
+# A20-OLinuXino-Lime2-eMMC    Andreas B. Mundt <[email protected]>
+# A20-OLinuXino_MICRO         Arne Ploese <[email protected]>
+# A20-Olimex-SOM-EVB          Karsten Merker <[email protected]>
+# Bananapi                    Ian Campbell <[email protected]>
+#                             Vagrant Cascadian <[email protected]>
+# Bananapi_M2_Ultra           Bernhard Wörner <[email protected]>
+# Bananapro                   Karsten Merker <[email protected]>
+# CHIP                        Vagrant Cascadian <[email protected]>
+# Cubieboard                  Vagrant Cascadian <[email protected]>
+# Cubieboard2                 Ian Campbell <[email protected]>
+#                             Karsten Merker <[email protected]>
+# Cubieboard4                 Vagrant Cascadian <[email protected]>
+# Cubietruck                  Ian Campbell <[email protected]>
+#                             Robert Nelson <[email protected]>
+#                             Karsten Merker <[email protected]>
+# Cubietruck_plus             Vagrant Cascadian <[email protected]>
+# Lamobo_R1                   Vagrant Cascadian <[email protected]>
+# Linksprite_pcDuino          Robert Hegner <[email protected]>
+# Linksprite_pcDuino3         Patrice Go <[email protected]>
+# Mini-X                      Jochen Sprickerhof <[email protected]>
+# Sinovoip_BPI_M3             Bernhard <[email protected]>
+# bananapi_m2_berry           Lucas Nussbaum <[email protected]>
+# nanopi_neo                  Paul Tagliamonte <[email protected]>
+# nanopi_neo_air              Philip Hands <[email protected]>
+# orangepi_plus               Vagrant Cascadian <[email protected]>, Orange PI Plus2
+# orangepi_zero               Mateusz Łukasik <[email protected]>, Orange PI Zero
diff --git a/debian/u-boot-tegra.install b/debian/u-boot-tegra.install
deleted file mode 100755
index 15b8ab96d9..0000000000
--- a/debian/u-boot-tegra.install
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets tegra
diff --git a/debian/u-boot-tegra.install.arm64 b/debian/u-boot-tegra.install.arm64
new file mode 100644
index 0000000000..c006fd5f20
--- /dev/null
+++ b/debian/u-boot-tegra.install.arm64
@@ -0,0 +1,2 @@
+debian/build/p2371-2180/u-boot.bin      usr/lib/u-boot/p2371-2180
+debian/build/p2371-2180/uboot.elf       usr/lib/u-boot/p2371-2180
diff --git a/debian/u-boot-tegra.install.armhf b/debian/u-boot-tegra.install.armhf
new file mode 100644
index 0000000000..24c0f4c54a
--- /dev/null
+++ b/debian/u-boot-tegra.install.armhf
@@ -0,0 +1,2 @@
+debian/build/jetson-tk1/u-boot-tegra.bin usr/lib/u-boot/jetson-tk1
+debian/build/jetson-tk1/uboot.elf       usr/lib/u-boot/jetson-tk1
diff --git a/debian/u-boot-tegra.links b/debian/u-boot-tegra.links
deleted file mode 100755
index 49fabfc108..0000000000
--- a/debian/u-boot-tegra.links
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-case $DEB_HOST_GNU_TYPE in
-  aarch64-linux-gnu)
-    echo /usr/lib/u-boot/p2371-2180/uboot.elf /usr/lib/u-boot/p2371-2180/u-boot
-    ;;
-esac
diff --git a/debian/u-boot-tegra.links.arm64 b/debian/u-boot-tegra.links.arm64
new file mode 100644
index 0000000000..a71745bef0
--- /dev/null
+++ b/debian/u-boot-tegra.links.arm64
@@ -0,0 +1 @@
+usr/lib/u-boot/p2371-2180/uboot.elf     usr/lib/u-boot/p2371-2180/u-boot
diff --git a/debian/u-boot-tegra_arm64.mk b/debian/u-boot-tegra_arm64.mk
new file mode 100644
index 0000000000..9b571a0a40
--- /dev/null
+++ b/debian/u-boot-tegra_arm64.mk
@@ -0,0 +1,5 @@
+# Helper for debian/rules
+
+u-boot-tegra_platforms := p2371-2180
+
+# p2371-2180                Vagrant Cascadian <[email protected]>
diff --git a/debian/u-boot-tegra_armhf.mk b/debian/u-boot-tegra_armhf.mk
new file mode 100644
index 0000000000..a88a42bd92
--- /dev/null
+++ b/debian/u-boot-tegra_armhf.mk
@@ -0,0 +1,5 @@
+# Helper for debian/rules
+
+u-boot-tegra_platforms := jetson-tk1
+
+# jetson-tk1_targets        Ian Campbell <[email protected]>
diff --git a/debian/u-boot-tools.install b/debian/u-boot-tools.install
index efa9af7d79..0f60ddec67 100644
--- a/debian/u-boot-tools.install
+++ b/debian/u-boot-tools.install
@@ -3,6 +3,3 @@ debian/build/tools/tools/kwboot         usr/bin
 debian/build/tools/tools/mkenvimage     usr/bin
 debian/build/tools/tools/mkimage        usr/bin
 debian/build/tools/tools/mksunxiboot    usr/bin
-
-# install config
-debian/build/tools/config               usr/share/doc/u-boot-tools
diff --git a/debian/u-boot.install b/debian/u-boot.install
deleted file mode 100755
index aff6d5de57..0000000000
--- a/debian/u-boot.install
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-debian/bin/u-boot-install-targets -
diff --git a/debian/u-boot.install.armel b/debian/u-boot.install.armel
new file mode 100644
index 0000000000..25a39129ed
--- /dev/null
+++ b/debian/u-boot.install.armel
@@ -0,0 +1,11 @@
+debian/build/dockstar/u-boot.kwb        usr/lib/u-boot/dockstar
+debian/build/dockstar/uboot.elf         usr/lib/u-boot/dockstar
+
+debian/build/dreamplug/u-boot.kwb       usr/lib/u-boot/dreamplug
+debian/build/dreamplug/uboot.elf        usr/lib/u-boot/dreamplug
+
+debian/build/guruplug/u-boot.kwb        usr/lib/u-boot/guruplug
+debian/build/guruplug/uboot.elf         usr/lib/u-boot/guruplug
+
+debian/build/sheevaplug/u-boot.kwb      usr/lib/u-boot/sheevaplug
+debian/build/sheevaplug/uboot.elf       usr/lib/u-boot/sheevaplug
diff --git a/debian/u-boot.install.avr32 b/debian/u-boot.install.avr32
new file mode 100644
index 0000000000..431a2cf9d7
--- /dev/null
+++ b/debian/u-boot.install.avr32
@@ -0,0 +1,2 @@
+debian/build/hammerhead/u-boot.img      usr/lib/u-boot/hammerhead
+debian/build/hammerhead/uboot.elf       usr/lib/u-boot/hammerhead
diff --git a/debian/u-boot.install.sh4 b/debian/u-boot.install.sh4
new file mode 100644
index 0000000000..0fac0ee01b
--- /dev/null
+++ b/debian/u-boot.install.sh4
@@ -0,0 +1,2 @@
+debian/build/r2dplus/u-boot.bin         usr/lib/u-boot/r2dplus
+debian/build/r2dplus/uboot.elf          usr/lib/u-boot/r2dplus
diff --git a/debian/u-boot_armel.mk b/debian/u-boot_armel.mk
new file mode 100644
index 0000000000..d4cf1c9f82
--- /dev/null
+++ b/debian/u-boot_armel.mk
@@ -0,0 +1,8 @@
+# Helper for debian/rules
+
+u-boot_platforms := dockstar dreamplug guruplug sheevaplug
+
+# dreamplug                 Ian Campbell <[email protected]>
+# guruplug                  drEagle <[email protected]>
+# sheevaplug                drEagle <[email protected]>
+#                           Rick Thomas <[email protected]>
diff --git a/debian/u-boot_avr32.mk b/debian/u-boot_avr32.mk
new file mode 100644
index 0000000000..d5ca404b82
--- /dev/null
+++ b/debian/u-boot_avr32.mk
@@ -0,0 +1,3 @@
+# Helper for debian/rules
+
+u-boot_platforms := hammerhead
diff --git a/debian/u-boot_sh4.mk b/debian/u-boot_sh4.mk
new file mode 100644
index 0000000000..1e160ad9a2
--- /dev/null
+++ b/debian/u-boot_sh4.mk
@@ -0,0 +1,3 @@
+# Helper for debian/rules
+
+u-boot_platforms := r2dplus
-- 
2.20.1

Attachment: signature.asc
Description: PGP signature

Reply via email to