Just had a quick read through on my phone, I'll try to have another look tomorrow, generally looks good.

For each of the new PLIST files you need to add "@pkgpath sysutils/u-boot,old_flavour_name" alongside any existing @pkgpath so that pkg_add -u accepts it as an update despite the different path.

I'd suggest splitting the build/install steps to the arch Makefiles (either move completely, or keep the common parts in Makefile.inc by using do-build/do-install in one file, post-build/post-install for the other) but probably simpler to do that as a separate step.

--
 Sent from a phone, apologies for poor formatting.

On 7 August 2023 22:11:43 Mark Kettenis <mark.kette...@xs4all.nl> wrote:

This splits sysutils/u-boot into three different ports instead of
using flavours.  The motivation behind this is that the current port
is very hard to update without breaking shit.  By turning this into
separate ports we can update them individually.  My idea is that we
split this up by SoC family/generation where appropriate.  Then we can
test a few boards with that particular SoC and be reasonably sure that
things still work on the other boards.  For example I will probably
create a new "sun50i" port with proper support for suspend/resume
(this needs a newer version of u-boot as well as some additional
firmware).  Support for older SoCs will probably not be updated at
all.

Since I am fairly clueless regarding ports, please let me know if this
makes sense.  The new packages should have the same name as the old
flavours.  Does that mean upgrading them will work?

I created a git diff for this since I didn't want to pollute the CVS
repo with new directories yet.  This has the benefit that it clearly
shows that the patch files have simply been moved.

Thoughts?


From 3dcb8724513098a710972a3b3f47c7601756cd76 Mon Sep 17 00:00:00 2001
From: Mark Kettenis <kette...@zemlinsky.sibelius.xs4all.nl>
Date: Mon, 7 Aug 2023 22:56:47 +0200
Subject: [PATCH] Split u-boot port

---
sysutils/u-boot/Makefile                      | 248 +---------------
sysutils/u-boot/Makefile.inc                  | 143 ++++++++++
sysutils/u-boot/aarch64/Makefile              |  39 +++
sysutils/u-boot/{ => aarch64}/distinfo        |   0
.../patches/patch-arch_arm_dts_Makefile       |   0
.../patch-arch_arm_dts_rk3328-nanopi-r2s_dts  |   0
.../patch-arch_arm_dts_rk3328-rock64_dts      |   0
.../patch-arch_arm_dts_rk3399-nanopi4_dtsi    |   0
...patch-arch_arm_dts_rk3399-pinebook-pro_dts |   0
.../patch-arch_arm_dts_rk3399-rock-pi-4_dtsi  |   0
.../patch-arch_arm_dts_rk3399-rock960_dts     |   0
.../patch-arch_arm_dts_rk3399-rockpro64_dtsi  |   0
.../patch-arch_arm_dts_rk3399-u-boot_dtsi     |   0
...tch-arch_arm_dts_rk3399pro-rock-pi-n10_dts |   0
...rch_arm_dts_sun50i-h6-pine-h64-model-b_dts |   0
.../patch-configs_firefly-rk3399_defconfig    |   0
.../patch-configs_nanopc-t4-rk3399_defconfig  |   0
...patch-configs_nanopi-neo4-rk3399_defconfig |   0
.../patch-configs_nanopi-r2s-rk3328_defconfig |   0
.../patch-configs_nanopi-r4s-rk3399_defconfig |   0
.../patch-configs_pine_h64-model-b_defconfig  |   0
...atch-configs_pinebook-pro-rk3399_defconfig |   0
.../patch-configs_rock-pi-4-rk3399_defconfig  |   0
...ch-configs_rock-pi-n10-rk3399pro_defconfig |   0
.../patch-configs_rock64-rk3328_defconfig     |   0
.../patch-configs_rock960-rk3399_defconfig    |   0
.../patch-configs_rockpro64-rk3399_defconfig  |   0
.../patches/patch-drivers_pci_pcie_brcmstb_c  |   0
sysutils/u-boot/aarch64/pkg/DESCR             |   8 +
sysutils/u-boot/aarch64/pkg/PLIST             | 193 +++++++++++++
sysutils/u-boot/arm/Makefile                  |  64 +++++
sysutils/u-boot/arm/distinfo                  |   2 +
.../patches/patch-configs_rpi_2_defconfig     |   0
.../patches/patch-configs_rpi_3_32b_defconfig |   0
.../patches/patch-drivers_pci_pcie_brcmstb_c  |  42 +++
sysutils/u-boot/arm/pkg/DESCR                 |   8 +
sysutils/u-boot/arm/pkg/PLIST                 | 264 ++++++++++++++++++
.../patches/patch-configs_rpi_3_defconfig     |  28 --
sysutils/u-boot/riscv64/Makefile              |  11 +
sysutils/u-boot/riscv64/distinfo              |   2 +
.../patches/patch-arch_riscv_Makefile         |   0
sysutils/u-boot/riscv64/pkg/DESCR             |   8 +
sysutils/u-boot/riscv64/pkg/PLIST             |  10 +
43 files changed, 799 insertions(+), 271 deletions(-)
create mode 100644 sysutils/u-boot/Makefile.inc
create mode 100644 sysutils/u-boot/aarch64/Makefile
rename sysutils/u-boot/{ => aarch64}/distinfo (100%)
rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_Makefile (100%)
rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3328-nanopi-r2s_dts (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3328-rock64_dts (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399-nanopi4_dtsi (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399-pinebook-pro_dts (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399-rock-pi-4_dtsi (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399-rock960_dts (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399-rockpro64_dtsi (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399-u-boot_dtsi (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_rk3399pro-rock-pi-n10_dts (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-arch_arm_dts_sun50i-h6-pine-h64-model-b_dts (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_firefly-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_nanopc-t4-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_nanopi-neo4-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_nanopi-r2s-rk3328_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_nanopi-r4s-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_pine_h64-model-b_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_pinebook-pro-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_rock-pi-4-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_rock-pi-n10-rk3399pro_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_rock64-rk3328_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_rock960-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-configs_rockpro64-rk3399_defconfig (100%) rename sysutils/u-boot/{ => aarch64}/patches/patch-drivers_pci_pcie_brcmstb_c (100%)
create mode 100644 sysutils/u-boot/aarch64/pkg/DESCR
create mode 100644 sysutils/u-boot/aarch64/pkg/PLIST
create mode 100644 sysutils/u-boot/arm/Makefile
create mode 100644 sysutils/u-boot/arm/distinfo
rename sysutils/u-boot/{ => arm}/patches/patch-configs_rpi_2_defconfig (100%)
rename sysutils/u-boot/{ => arm}/patches/patch-configs_rpi_3_32b_defconfig (100%)
create mode 100644 sysutils/u-boot/arm/patches/patch-drivers_pci_pcie_brcmstb_c
create mode 100644 sysutils/u-boot/arm/pkg/DESCR
create mode 100644 sysutils/u-boot/arm/pkg/PLIST
delete mode 100644 sysutils/u-boot/patches/patch-configs_rpi_3_defconfig
create mode 100644 sysutils/u-boot/riscv64/Makefile
create mode 100644 sysutils/u-boot/riscv64/distinfo
rename sysutils/u-boot/{ => riscv64}/patches/patch-arch_riscv_Makefile (100%)
create mode 100644 sysutils/u-boot/riscv64/pkg/DESCR
create mode 100644 sysutils/u-boot/riscv64/pkg/PLIST

diff --git a/sysutils/u-boot/Makefile b/sysutils/u-boot/Makefile
index d2dd2fad980..857155ac9f6 100644
--- a/sysutils/u-boot/Makefile
+++ b/sysutils/u-boot/Makefile
@@ -1,244 +1,6 @@
-BROKEN-sparc64= Error: the specified option is not accepted in ISB at operand 1 -- isb sy
-BROKEN-arm=    lib/time.c:187:1: internal compiler error: Bus error
+     SUBDIR =
+     SUBDIR += aarch64
+     SUBDIR += arm
+     SUBDIR += riscv64

-DPB_PROPERTIES=        parallel
-
-FLAVORS=       aarch64 arm riscv64
-FLAVOR?=       arm
-
-COMMENT=       U-Boot firmware
-VERSION=       2021.10
-REVISION=      6
-DISTNAME=      u-boot-${VERSION}
-PKGNAME=       u-boot-${FLAVOR}-${VERSION:S/-//}
-FULLPKGNAME=   ${PKGNAME}
-CATEGORIES=    sysutils
-HOMEPAGE=      https://www.denx.de/wiki/U-Boot
-
-# GPLv2
-PERMIT_PACKAGE=        Yes
-
-MASTER_SITES=  https://ftp.denx.de/pub/u-boot/
-EXTRACT_SUFX=  .tar.bz2
-PKG_ARCH=      *
-
-BUILD_DEPENDS= devel/bison \
-               devel/dtc \
-               devel/swig
-
-# for pkg_resources used in tools/binman/control.py
-BUILD_DEPENDS+=        devel/py-setuptools${MODPY_FLAVOR}
-
-MODULES=       lang/python
-MODPY_RUNDEP=  No
-
-MODPY_ADJ_FILES=\
-       arch/arm/mach-rockchip/make_fit_atf.py
-
-MAKE_ENV=      KBUILD_VERBOSE=1 \
-               PYTHON="${MODPY_BIN}"
-
-.if "${FLAVOR}" == "aarch64"
-BUILD_DEPENDS+=        devel/arm-none-eabi/gcc,aarch64 \
-               devel/py-elftools${MODPY_FLAVOR} \
-               sysutils/arm-trusted-firmware>=2.2p0v0
-MAKE_ENV+=     CROSS_COMPILE="aarch64-none-elf-"
-RK3328_BL31=   "${LOCALBASE}/share/arm-trusted-firmware/rk3328-bl31.elf"
-RK3399_BL31=   "${LOCALBASE}/share/arm-trusted-firmware/rk3399-bl31.elf"
-SUNXI_BL31=    "${LOCALBASE}/share/arm-trusted-firmware/sun50i_a64-bl31.bin"
-SUNXI_H6_BL31= "${LOCALBASE}/share/arm-trusted-firmware/sun50i_h6-bl31.bin"
-.elif "${FLAVOR}" == "arm"
-BUILD_DEPENDS+=        devel/arm-none-eabi/gcc,arm
-MAKE_ENV+=     CROSS_COMPILE="arm-none-eabi-"
-.elif "${FLAVOR}" == "riscv64"
-BUILD_DEPENDS+= devel/riscv-elf/gcc \
-               sysutils/opensbi>=0.9p0
-MAKE_ENV+=     CROSS_COMPILE="riscv64-unknown-elf-"
-FW_DYNAMIC=    "${LOCALBASE}/share/opensbi/generic/fw_dynamic.bin"
-.endif
-
-USE_GMAKE=     Yes
-NO_TEST=       Yes
-
-.if "${FLAVOR}" == "aarch64"
-SUNXI64=\
-       a64-olinuxino \
-       bananapi_m64 \
-       nanopi_a64 \
-       nanopi_neo2 \
-       orangepi_pc2 \
-       orangepi_prime \
-       orangepi_win \
-       orangepi_zero_plus \
-       pine64-lts \
-       pine64_plus \
-       pine_h64-model-b \
-       pinebook \
-       sopine_baseboard
-BOARDS=\
-       firefly-rk3399 \
-       mvebu_espressobin-88f3720 \
-       mvebu_mcbin-88f8040 \
-       nanopc-t4-rk3399 \
-       nanopi-neo4-rk3399 \
-       nanopi-r2s-rk3328 \
-       nanopi-r4s-rk3399 \
-       pinebook-pro-rk3399 \
-       qemu_arm64 \
-       rock64-rk3328 \
-       rock960-rk3399 \
-       rock-pi-4-rk3399 \
-       rock-pi-n10-rk3399pro \
-       rockpro64-rk3399 \
-       rpi_arm64
-.elif "${FLAVOR}" == "arm"
-OMAP=\
-       omap4_panda \
-       am335x_evm
-SUNXI64=
-SUNXI=\
-       A10-OLinuXino-Lime \
-       A10s-OLinuXino-M \
-       A20-OLinuXino-Lime \
-       A20-OLinuXino-Lime2 \
-       A20-OLinuXino-Lime2-eMMC \
-       A20-OLinuXino_MICRO \
-       Bananapi \
-       Bananapi_M2_Ultra \
-       Bananapi_m2m \
-       bananapi_m2_plus_h3 \
-       bananapi_m2_zero \
-       Bananapro \
-       CHIP \
-       Cubieboard \
-       Cubieboard2 \
-       Cubieboard4 \
-       Cubietruck \
-       Lamobo_R1 \
-       Linksprite_pcDuino \
-       Linksprite_pcDuino3 \
-       Linksprite_pcDuino3_Nano \
-       nanopi_neo \
-       Orangepi \
-       Orangepi_mini \
-       orangepi_2 \
-       orangepi_lite \
-       orangepi_one \
-       orangepi_pc \
-       orangepi_pc_plus \
-       orangepi_plus \
-       orangepi_plus2e \
-       orangepi_zero
-IMX=\
-       cm_fx6 \
-       mx6cuboxi \
-       mx6qsabrelite \
-       nitrogen6q \
-       novena \
-       udoo \
-       usbarmory \
-       wandboard
-BOARDS=\
-       ${OMAP} \
-       ${SUNXI} \
-       ${IMX} \
-       clearfog \
-       qemu_arm \
-       rpi_2 \
-       rpi_3_32b \
-       tinker-rk3288 \
-       turris_omnia
-.elif "${FLAVOR}" == "riscv64"
-BOARDS=\
-       qemu-riscv64_smode \
-       sifive_unmatched
-.endif
-
-FILES=\
-       MLO \
-       SPL \
-       u-boot \
-       u-boot.img \
-       u-boot.bin \
-       u-boot-sunxi-with-spl.bin \
-       u-boot.imx \
-       u-boot-dtb.imx \
-       u-boot-spl.kwb \
-       u-boot-with-spl.bin \
-       u-boot.itb \
-       u-boot-rockchip.bin \
-       idbloader.img \
-       spl/sunxi-spl.bin \
-       spl/u-boot-spl.bin
-
-do-build:
-.for BOARD in ${BOARDS}
-       cd ${WRKSRC} && \
-           mkdir -p build/${BOARD} && \
-           ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
-               O="build/${BOARD}" \
-               -f ${MAKE_FILE} "${BOARD}"_defconfig
-.if "${BOARD:M*-rk3399*}"
-       cd ${WRKSRC} && \
-           ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} ${ALL_TARGET}
-.elif "${BOARD:M*-rk3328}"
-       cd ${WRKSRC} && \
-           ${SETENV} ${MAKE_ENV} BL31=${RK3328_BL31} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} ${ALL_TARGET}
-.elif "${BOARD:M*sifive_*}"
-       cd ${WRKSRC} && \
-           ${SETENV} ${MAKE_ENV} OPENSBI=${FW_DYNAMIC} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} ${ALL_TARGET}
-.else
-       cd ${WRKSRC} && \
-           ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
-               O="build/${BOARD}" \
-               -f ${MAKE_FILE} ${ALL_TARGET}
-.endif
-.if "${BOARD:M*-rk3288}"
-       cd ${WRKSRC}/build/${BOARD} && \
-           tools/mkimage -n rk3288 -T rksd -d tpl/u-boot-tpl.bin \
-               idbloader.img && \
-           cat spl/u-boot-spl-dtb.bin >> idbloader.img
-.endif
-.endfor
-.for BOARD in ${SUNXI64}
-.if "${BOARD:M*_h64*}"
-       cd ${WRKSRC} && \
-           mkdir -p build/${BOARD} && \
-           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} "${BOARD}"_defconfig && \
-           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} ${ALL_TARGET}
-.else
-       cd ${WRKSRC} && \
-           mkdir -p build/${BOARD} && \
-           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} "${BOARD}"_defconfig && \
-           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \
-               ${MAKE_FLAGS} O="build/${BOARD}" \
-               -f ${MAKE_FILE} ${ALL_TARGET}
-.endif
-       if [[ -f ${WRKSRC}/build/${BOARD}/spl/sunxi-spl.bin && \
-             -f ${WRKSRC}/build/${BOARD}/u-boot.itb ]]; then \
-               cd ${WRKSRC}/build/${BOARD} && \
-                   cat spl/sunxi-spl.bin u-boot.itb > 
u-boot-sunxi-with-spl.bin ; \
-       fi
-.endfor
-
-do-install:
-       ${INSTALL_DATA_DIR} ${PREFIX}/share/u-boot
-.for BOARD in ${BOARDS} ${SUNXI64}
-       ${INSTALL_DATA_DIR} ${PREFIX}/share/u-boot/${BOARD}
-       -cd ${WRKSRC}/build/${BOARD} && \
-           cp ${FILES} ${PREFIX}/share/u-boot/${BOARD}/
-.endfor
-
-.include <bsd.port.mk>
+.include <bsd.port.subdir.mk>
diff --git a/sysutils/u-boot/Makefile.inc b/sysutils/u-boot/Makefile.inc
new file mode 100644
index 00000000000..6e80db36be0
--- /dev/null
+++ b/sysutils/u-boot/Makefile.inc
@@ -0,0 +1,143 @@
+BROKEN-sparc64= Error: the specified option is not accepted in ISB at operand 1 -- isb sy
+BROKEN-arm=    lib/time.c:187:1: internal compiler error: Bus error
+
+DPB_PROPERTIES=        parallel
+
+COMMENT=       U-Boot firmware
+DISTNAME=      u-boot-${VERSION}
+PKGNAME=       u-boot-${SOC}-${VERSION:S/-//}
+FULLPKGNAME=   ${PKGNAME}
+CATEGORIES=    sysutils
+HOMEPAGE=      https://www.denx.de/wiki/U-Boot
+
+# GPLv2
+PERMIT_PACKAGE=        Yes
+
+MASTER_SITES=  https://ftp.denx.de/pub/u-boot/
+EXTRACT_SUFX=  .tar.bz2
+PKG_ARCH=      *
+
+BUILD_DEPENDS= devel/bison \
+               devel/dtc \
+               devel/swig
+
+# for pkg_resources used in tools/binman/control.py
+BUILD_DEPENDS+=        devel/py-setuptools${MODPY_FLAVOR}
+
+MODULES=       lang/python
+MODPY_RUNDEP=  No
+
+MODPY_ADJ_FILES=\
+       arch/arm/mach-rockchip/make_fit_atf.py
+
+MAKE_ENV=      KBUILD_VERBOSE=1 \
+               PYTHON="${MODPY_BIN}"
+
+.if "${SOC_CPU}" == "arm64"
+BUILD_DEPENDS+=        devel/arm-none-eabi/gcc,aarch64 \
+               devel/py-elftools${MODPY_FLAVOR} \
+               sysutils/arm-trusted-firmware>=2.2p0v0
+MAKE_ENV+=     CROSS_COMPILE="aarch64-none-elf-"
+RK3328_BL31=   "${LOCALBASE}/share/arm-trusted-firmware/rk3328-bl31.elf"
+RK3399_BL31=   "${LOCALBASE}/share/arm-trusted-firmware/rk3399-bl31.elf"
+SUNXI_BL31=    "${LOCALBASE}/share/arm-trusted-firmware/sun50i_a64-bl31.bin"
+SUNXI_H6_BL31= "${LOCALBASE}/share/arm-trusted-firmware/sun50i_h6-bl31.bin"
+.elif "${SOC_CPU}" == "arm"
+BUILD_DEPENDS+=        devel/arm-none-eabi/gcc,arm
+MAKE_ENV+=     CROSS_COMPILE="arm-none-eabi-"
+.elif "${SOC_CPU}" == "riscv64"
+BUILD_DEPENDS+= devel/riscv-elf/gcc \
+               sysutils/opensbi>=0.9p0
+MAKE_ENV+=     CROSS_COMPILE="riscv64-unknown-elf-"
+FW_DYNAMIC=    "${LOCALBASE}/share/opensbi/generic/fw_dynamic.bin"
+.endif
+
+USE_GMAKE=     Yes
+NO_TEST=       Yes
+
+FILES=\
+       MLO \
+       SPL \
+       u-boot \
+       u-boot.img \
+       u-boot.bin \
+       u-boot-sunxi-with-spl.bin \
+       u-boot.imx \
+       u-boot-dtb.imx \
+       u-boot-spl.kwb \
+       u-boot-with-spl.bin \
+       u-boot.itb \
+       u-boot-rockchip.bin \
+       idbloader.img \
+       spl/sunxi-spl.bin \
+       spl/u-boot-spl.bin
+
+do-build:
+.for BOARD in ${BOARDS}
+       cd ${WRKSRC} && \
+           mkdir -p build/${BOARD} && \
+           ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
+               O="build/${BOARD}" \
+               -f ${MAKE_FILE} "${BOARD}"_defconfig
+.if "${BOARD:M*-rk3399*}"
+       cd ${WRKSRC} && \
+           ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} ${ALL_TARGET}
+.elif "${BOARD:M*-rk3328}"
+       cd ${WRKSRC} && \
+           ${SETENV} ${MAKE_ENV} BL31=${RK3328_BL31} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} ${ALL_TARGET}
+.elif "${BOARD:M*sifive_*}"
+       cd ${WRKSRC} && \
+           ${SETENV} ${MAKE_ENV} OPENSBI=${FW_DYNAMIC} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} ${ALL_TARGET}
+.else
+       cd ${WRKSRC} && \
+           ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
+               O="build/${BOARD}" \
+               -f ${MAKE_FILE} ${ALL_TARGET}
+.endif
+.if "${BOARD:M*-rk3288}"
+       cd ${WRKSRC}/build/${BOARD} && \
+           tools/mkimage -n rk3288 -T rksd -d tpl/u-boot-tpl.bin \
+               idbloader.img && \
+           cat spl/u-boot-spl-dtb.bin >> idbloader.img
+.endif
+.endfor
+.for BOARD in ${SUNXI64}
+.if "${BOARD:M*_h64*}"
+       cd ${WRKSRC} && \
+           mkdir -p build/${BOARD} && \
+           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} "${BOARD}"_defconfig && \
+           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} ${ALL_TARGET}
+.else
+       cd ${WRKSRC} && \
+           mkdir -p build/${BOARD} && \
+           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} "${BOARD}"_defconfig && \
+           ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \
+               ${MAKE_FLAGS} O="build/${BOARD}" \
+               -f ${MAKE_FILE} ${ALL_TARGET}
+.endif
+       if [[ -f ${WRKSRC}/build/${BOARD}/spl/sunxi-spl.bin && \
+             -f ${WRKSRC}/build/${BOARD}/u-boot.itb ]]; then \
+               cd ${WRKSRC}/build/${BOARD} && \
+                   cat spl/sunxi-spl.bin u-boot.itb > 
u-boot-sunxi-with-spl.bin ; \
+       fi
+.endfor
+
+do-install:
+       ${INSTALL_DATA_DIR} ${PREFIX}/share/u-boot
+.for BOARD in ${BOARDS} ${SUNXI64}
+       ${INSTALL_DATA_DIR} ${PREFIX}/share/u-boot/${BOARD}
+       -cd ${WRKSRC}/build/${BOARD} && \
+           cp ${FILES} ${PREFIX}/share/u-boot/${BOARD}/
+.endfor
diff --git a/sysutils/u-boot/aarch64/Makefile b/sysutils/u-boot/aarch64/Makefile
new file mode 100644
index 00000000000..f2ef4a4a3e0
--- /dev/null
+++ b/sysutils/u-boot/aarch64/Makefile
@@ -0,0 +1,39 @@
+VERSION=       2021.10
+REVISION=      7
+
+SOC=           aarch64
+SOC_CPU=       arm64
+
+SUNXI64=\
+       a64-olinuxino \
+       bananapi_m64 \
+       nanopi_a64 \
+       nanopi_neo2 \
+       orangepi_pc2 \
+       orangepi_prime \
+       orangepi_win \
+       orangepi_zero_plus \
+       pine64-lts \
+       pine64_plus \
+       pine_h64-model-b \
+       pinebook \
+       sopine_baseboard
+
+BOARDS=\
+       firefly-rk3399 \
+       mvebu_espressobin-88f3720 \
+       mvebu_mcbin-88f8040 \
+       nanopc-t4-rk3399 \
+       nanopi-neo4-rk3399 \
+       nanopi-r2s-rk3328 \
+       nanopi-r4s-rk3399 \
+       pinebook-pro-rk3399 \
+       qemu_arm64 \
+       rock64-rk3328 \
+       rock960-rk3399 \
+       rock-pi-4-rk3399 \
+       rock-pi-n10-rk3399pro \
+       rockpro64-rk3399 \
+       rpi_arm64
+
+.include <bsd.port.mk>
diff --git a/sysutils/u-boot/distinfo b/sysutils/u-boot/aarch64/distinfo
similarity index 100%
rename from sysutils/u-boot/distinfo
rename to sysutils/u-boot/aarch64/distinfo
diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_Makefile b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_Makefile
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_Makefile
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_Makefile
diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3328-nanopi-r2s_dts b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3328-nanopi-r2s_dts
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3328-nanopi-r2s_dts
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3328-nanopi-r2s_dts diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3328-rock64_dts b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3328-rock64_dts
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3328-rock64_dts
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3328-rock64_dts
diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-nanopi4_dtsi b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-nanopi4_dtsi
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-nanopi4_dtsi
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-nanopi4_dtsi diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-pinebook-pro_dts b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-pinebook-pro_dts
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-pinebook-pro_dts
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-pinebook-pro_dts diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rock-pi-4_dtsi b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-rock-pi-4_dtsi
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rock-pi-4_dtsi
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-rock-pi-4_dtsi diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rock960_dts b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-rock960_dts
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rock960_dts
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-rock960_dts
diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rockpro64_dtsi b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-rockpro64_dtsi
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-rockpro64_dtsi
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-rockpro64_dtsi diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-u-boot_dtsi b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-u-boot_dtsi
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399-u-boot_dtsi
rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399-u-boot_dtsi
diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_rk3399pro-rock-pi-n10_dts b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399pro-rock-pi-n10_dts
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_rk3399pro-rock-pi-n10_dts rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_rk3399pro-rock-pi-n10_dts diff --git a/sysutils/u-boot/patches/patch-arch_arm_dts_sun50i-h6-pine-h64-model-b_dts b/sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_sun50i-h6-pine-h64-model-b_dts
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_arm_dts_sun50i-h6-pine-h64-model-b_dts rename to sysutils/u-boot/aarch64/patches/patch-arch_arm_dts_sun50i-h6-pine-h64-model-b_dts diff --git a/sysutils/u-boot/patches/patch-configs_firefly-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_firefly-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_firefly-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_firefly-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_nanopc-t4-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_nanopc-t4-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_nanopc-t4-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_nanopc-t4-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_nanopi-neo4-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_nanopi-neo4-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_nanopi-neo4-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_nanopi-neo4-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_nanopi-r2s-rk3328_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_nanopi-r2s-rk3328_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_nanopi-r2s-rk3328_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_nanopi-r2s-rk3328_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_nanopi-r4s-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_nanopi-r4s-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_nanopi-r4s-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_nanopi-r4s-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_pine_h64-model-b_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_pine_h64-model-b_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_pine_h64-model-b_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_pine_h64-model-b_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_pinebook-pro-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_pinebook-pro-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_pinebook-pro-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_pinebook-pro-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_rock-pi-4-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_rock-pi-4-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rock-pi-4-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_rock-pi-4-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_rock-pi-n10-rk3399pro_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_rock-pi-n10-rk3399pro_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rock-pi-n10-rk3399pro_defconfig rename to sysutils/u-boot/aarch64/patches/patch-configs_rock-pi-n10-rk3399pro_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_rock64-rk3328_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_rock64-rk3328_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rock64-rk3328_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_rock64-rk3328_defconfig
diff --git a/sysutils/u-boot/patches/patch-configs_rock960-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_rock960-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rock960-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_rock960-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-configs_rockpro64-rk3399_defconfig b/sysutils/u-boot/aarch64/patches/patch-configs_rockpro64-rk3399_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rockpro64-rk3399_defconfig
rename to sysutils/u-boot/aarch64/patches/patch-configs_rockpro64-rk3399_defconfig diff --git a/sysutils/u-boot/patches/patch-drivers_pci_pcie_brcmstb_c b/sysutils/u-boot/aarch64/patches/patch-drivers_pci_pcie_brcmstb_c
similarity index 100%
rename from sysutils/u-boot/patches/patch-drivers_pci_pcie_brcmstb_c
rename to sysutils/u-boot/aarch64/patches/patch-drivers_pci_pcie_brcmstb_c
diff --git a/sysutils/u-boot/aarch64/pkg/DESCR b/sysutils/u-boot/aarch64/pkg/DESCR
new file mode 100644
index 00000000000..7425448b396
--- /dev/null
+++ b/sysutils/u-boot/aarch64/pkg/DESCR
@@ -0,0 +1,8 @@
+U-Boot is a firmware for embedded boards based on PowerPC, ARM, MIPS and
+several other processors, which can be installed in a boot ROM and used to
+initialize and test the hardware or to download and run application code.
+
+As ARM systems often do not come with firmware it must be supplied on
+an SD card or MMC device to have a bootable system.
+
+This package provides U-Boot for various boards using ARM processors.
diff --git a/sysutils/u-boot/aarch64/pkg/PLIST b/sysutils/u-boot/aarch64/pkg/PLIST
new file mode 100644
index 00000000000..2d2fc9e6454
--- /dev/null
+++ b/sysutils/u-boot/aarch64/pkg/PLIST
@@ -0,0 +1,193 @@
+@pkgpath sysutils/u-boot-pinebook
+share/u-boot/
+share/u-boot/a64-olinuxino/
+share/u-boot/a64-olinuxino/sunxi-spl.bin
+@comment share/u-boot/a64-olinuxino/u-boot
+@comment share/u-boot/a64-olinuxino/u-boot-spl.bin
+share/u-boot/a64-olinuxino/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/a64-olinuxino/u-boot.bin
+@comment share/u-boot/a64-olinuxino/u-boot.img
+share/u-boot/bananapi_m64/
+share/u-boot/bananapi_m64/sunxi-spl.bin
+@comment share/u-boot/bananapi_m64/u-boot
+@comment share/u-boot/bananapi_m64/u-boot-spl.bin
+share/u-boot/bananapi_m64/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/bananapi_m64/u-boot.bin
+@comment share/u-boot/bananapi_m64/u-boot.img
+share/u-boot/firefly-rk3399/
+share/u-boot/firefly-rk3399/idbloader.img
+@comment share/u-boot/firefly-rk3399/u-boot
+share/u-boot/firefly-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/firefly-rk3399/u-boot-spl.bin
+@comment share/u-boot/firefly-rk3399/u-boot.bin
+@comment share/u-boot/firefly-rk3399/u-boot.img
+share/u-boot/firefly-rk3399/u-boot.itb
+share/u-boot/mvebu_espressobin-88f3720/
+share/u-boot/mvebu_espressobin-88f3720/u-boot
+share/u-boot/mvebu_espressobin-88f3720/u-boot.bin
+share/u-boot/mvebu_mcbin-88f8040/
+share/u-boot/mvebu_mcbin-88f8040/u-boot
+share/u-boot/mvebu_mcbin-88f8040/u-boot.bin
+share/u-boot/nanopc-t4-rk3399/
+share/u-boot/nanopc-t4-rk3399/idbloader.img
+@comment share/u-boot/nanopc-t4-rk3399/u-boot
+share/u-boot/nanopc-t4-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/nanopc-t4-rk3399/u-boot-spl.bin
+@comment share/u-boot/nanopc-t4-rk3399/u-boot.bin
+@comment share/u-boot/nanopc-t4-rk3399/u-boot.img
+share/u-boot/nanopc-t4-rk3399/u-boot.itb
+share/u-boot/nanopi-neo4-rk3399/
+share/u-boot/nanopi-neo4-rk3399/idbloader.img
+@comment share/u-boot/nanopi-neo4-rk3399/u-boot
+share/u-boot/nanopi-neo4-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/nanopi-neo4-rk3399/u-boot-spl.bin
+@comment share/u-boot/nanopi-neo4-rk3399/u-boot.bin
+@comment share/u-boot/nanopi-neo4-rk3399/u-boot.img
+share/u-boot/nanopi-neo4-rk3399/u-boot.itb
+share/u-boot/nanopi-r2s-rk3328/
+share/u-boot/nanopi-r2s-rk3328/idbloader.img
+@comment share/u-boot/nanopi-r2s-rk3328/u-boot
+share/u-boot/nanopi-r2s-rk3328/u-boot-rockchip.bin
+@comment share/u-boot/nanopi-r2s-rk3328/u-boot-spl.bin
+@comment share/u-boot/nanopi-r2s-rk3328/u-boot.bin
+@comment share/u-boot/nanopi-r2s-rk3328/u-boot.img
+share/u-boot/nanopi-r2s-rk3328/u-boot.itb
+share/u-boot/nanopi-r4s-rk3399/
+share/u-boot/nanopi-r4s-rk3399/idbloader.img
+@comment share/u-boot/nanopi-r4s-rk3399/u-boot
+share/u-boot/nanopi-r4s-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/nanopi-r4s-rk3399/u-boot-spl.bin
+@comment share/u-boot/nanopi-r4s-rk3399/u-boot.bin
+@comment share/u-boot/nanopi-r4s-rk3399/u-boot.img
+share/u-boot/nanopi-r4s-rk3399/u-boot.itb
+share/u-boot/nanopi_a64/
+share/u-boot/nanopi_a64/sunxi-spl.bin
+@comment share/u-boot/nanopi_a64/u-boot
+@comment share/u-boot/nanopi_a64/u-boot-spl.bin
+share/u-boot/nanopi_a64/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/nanopi_a64/u-boot.bin
+@comment share/u-boot/nanopi_a64/u-boot.img
+share/u-boot/nanopi_neo2/
+share/u-boot/nanopi_neo2/sunxi-spl.bin
+@comment share/u-boot/nanopi_neo2/u-boot
+@comment share/u-boot/nanopi_neo2/u-boot-spl.bin
+share/u-boot/nanopi_neo2/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/nanopi_neo2/u-boot.bin
+@comment share/u-boot/nanopi_neo2/u-boot.img
+share/u-boot/orangepi_pc2/
+share/u-boot/orangepi_pc2/sunxi-spl.bin
+@comment share/u-boot/orangepi_pc2/u-boot
+@comment share/u-boot/orangepi_pc2/u-boot-spl.bin
+share/u-boot/orangepi_pc2/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_pc2/u-boot.bin
+@comment share/u-boot/orangepi_pc2/u-boot.img
+share/u-boot/orangepi_prime/
+share/u-boot/orangepi_prime/sunxi-spl.bin
+@comment share/u-boot/orangepi_prime/u-boot
+@comment share/u-boot/orangepi_prime/u-boot-spl.bin
+share/u-boot/orangepi_prime/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_prime/u-boot.bin
+@comment share/u-boot/orangepi_prime/u-boot.img
+share/u-boot/orangepi_win/
+share/u-boot/orangepi_win/sunxi-spl.bin
+@comment share/u-boot/orangepi_win/u-boot
+@comment share/u-boot/orangepi_win/u-boot-spl.bin
+share/u-boot/orangepi_win/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_win/u-boot.bin
+@comment share/u-boot/orangepi_win/u-boot.img
+share/u-boot/orangepi_zero_plus/
+share/u-boot/orangepi_zero_plus/sunxi-spl.bin
+@comment share/u-boot/orangepi_zero_plus/u-boot
+@comment share/u-boot/orangepi_zero_plus/u-boot-spl.bin
+share/u-boot/orangepi_zero_plus/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_zero_plus/u-boot.bin
+@comment share/u-boot/orangepi_zero_plus/u-boot.img
+share/u-boot/pine64-lts/
+share/u-boot/pine64-lts/sunxi-spl.bin
+@comment share/u-boot/pine64-lts/u-boot
+@comment share/u-boot/pine64-lts/u-boot-spl.bin
+share/u-boot/pine64-lts/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/pine64-lts/u-boot.bin
+@comment share/u-boot/pine64-lts/u-boot.img
+share/u-boot/pine64_plus/
+share/u-boot/pine64_plus/sunxi-spl.bin
+@comment share/u-boot/pine64_plus/u-boot
+@comment share/u-boot/pine64_plus/u-boot-spl.bin
+share/u-boot/pine64_plus/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/pine64_plus/u-boot.bin
+@comment share/u-boot/pine64_plus/u-boot.img
+share/u-boot/pine_h64-model-b/
+share/u-boot/pine_h64-model-b/sunxi-spl.bin
+@comment share/u-boot/pine_h64-model-b/u-boot
+@comment share/u-boot/pine_h64-model-b/u-boot-spl.bin
+share/u-boot/pine_h64-model-b/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/pine_h64-model-b/u-boot.bin
+@comment share/u-boot/pine_h64-model-b/u-boot.img
+share/u-boot/pinebook-pro-rk3399/
+share/u-boot/pinebook-pro-rk3399/idbloader.img
+@comment share/u-boot/pinebook-pro-rk3399/u-boot
+share/u-boot/pinebook-pro-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/pinebook-pro-rk3399/u-boot-spl.bin
+@comment share/u-boot/pinebook-pro-rk3399/u-boot.bin
+@comment share/u-boot/pinebook-pro-rk3399/u-boot.img
+share/u-boot/pinebook-pro-rk3399/u-boot.itb
+share/u-boot/pinebook/
+share/u-boot/pinebook/sunxi-spl.bin
+@comment share/u-boot/pinebook/u-boot
+@comment share/u-boot/pinebook/u-boot-spl.bin
+share/u-boot/pinebook/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/pinebook/u-boot.bin
+@comment share/u-boot/pinebook/u-boot.img
+share/u-boot/qemu_arm64/
+share/u-boot/qemu_arm64/u-boot
+share/u-boot/qemu_arm64/u-boot.bin
+share/u-boot/rock-pi-4-rk3399/
+share/u-boot/rock-pi-4-rk3399/idbloader.img
+@comment share/u-boot/rock-pi-4-rk3399/u-boot
+share/u-boot/rock-pi-4-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/rock-pi-4-rk3399/u-boot-spl.bin
+@comment share/u-boot/rock-pi-4-rk3399/u-boot.bin
+@comment share/u-boot/rock-pi-4-rk3399/u-boot.img
+share/u-boot/rock-pi-4-rk3399/u-boot.itb
+share/u-boot/rock-pi-n10-rk3399pro/
+share/u-boot/rock-pi-n10-rk3399pro/idbloader.img
+@comment share/u-boot/rock-pi-n10-rk3399pro/u-boot
+share/u-boot/rock-pi-n10-rk3399pro/u-boot-rockchip.bin
+@comment share/u-boot/rock-pi-n10-rk3399pro/u-boot-spl.bin
+@comment share/u-boot/rock-pi-n10-rk3399pro/u-boot.bin
+@comment share/u-boot/rock-pi-n10-rk3399pro/u-boot.img
+share/u-boot/rock-pi-n10-rk3399pro/u-boot.itb
+share/u-boot/rock64-rk3328/
+share/u-boot/rock64-rk3328/idbloader.img
+@comment share/u-boot/rock64-rk3328/u-boot
+share/u-boot/rock64-rk3328/u-boot-rockchip.bin
+@comment share/u-boot/rock64-rk3328/u-boot-spl.bin
+@comment share/u-boot/rock64-rk3328/u-boot.bin
+@comment share/u-boot/rock64-rk3328/u-boot.img
+share/u-boot/rock64-rk3328/u-boot.itb
+share/u-boot/rock960-rk3399/
+share/u-boot/rock960-rk3399/idbloader.img
+@comment share/u-boot/rock960-rk3399/u-boot
+share/u-boot/rock960-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/rock960-rk3399/u-boot-spl.bin
+@comment share/u-boot/rock960-rk3399/u-boot.bin
+@comment share/u-boot/rock960-rk3399/u-boot.img
+share/u-boot/rock960-rk3399/u-boot.itb
+share/u-boot/rockpro64-rk3399/
+share/u-boot/rockpro64-rk3399/idbloader.img
+@comment share/u-boot/rockpro64-rk3399/u-boot
+share/u-boot/rockpro64-rk3399/u-boot-rockchip.bin
+@comment share/u-boot/rockpro64-rk3399/u-boot-spl.bin
+@comment share/u-boot/rockpro64-rk3399/u-boot.bin
+@comment share/u-boot/rockpro64-rk3399/u-boot.img
+share/u-boot/rockpro64-rk3399/u-boot.itb
+share/u-boot/rpi_arm64/
+@comment share/u-boot/rpi_arm64/u-boot
+share/u-boot/rpi_arm64/u-boot.bin
+share/u-boot/sopine_baseboard/
+share/u-boot/sopine_baseboard/sunxi-spl.bin
+@comment share/u-boot/sopine_baseboard/u-boot
+@comment share/u-boot/sopine_baseboard/u-boot-spl.bin
+share/u-boot/sopine_baseboard/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/sopine_baseboard/u-boot.bin
+@comment share/u-boot/sopine_baseboard/u-boot.img
diff --git a/sysutils/u-boot/arm/Makefile b/sysutils/u-boot/arm/Makefile
new file mode 100644
index 00000000000..6e6e746ae20
--- /dev/null
+++ b/sysutils/u-boot/arm/Makefile
@@ -0,0 +1,64 @@
+VERSION=       2021.10
+REVISION=      7
+
+SOC=           arm
+SOC_CPU=       arm
+
+OMAP=\
+       omap4_panda \
+       am335x_evm
+SUNXI64=
+SUNXI=\
+       A10-OLinuXino-Lime \
+       A10s-OLinuXino-M \
+       A20-OLinuXino-Lime \
+       A20-OLinuXino-Lime2 \
+       A20-OLinuXino-Lime2-eMMC \
+       A20-OLinuXino_MICRO \
+       Bananapi \
+       Bananapi_M2_Ultra \
+       Bananapi_m2m \
+       bananapi_m2_plus_h3 \
+       bananapi_m2_zero \
+       Bananapro \
+       CHIP \
+       Cubieboard \
+       Cubieboard2 \
+       Cubieboard4 \
+       Cubietruck \
+       Lamobo_R1 \
+       Linksprite_pcDuino \
+       Linksprite_pcDuino3 \
+       Linksprite_pcDuino3_Nano \
+       nanopi_neo \
+       Orangepi \
+       Orangepi_mini \
+       orangepi_2 \
+       orangepi_lite \
+       orangepi_one \
+       orangepi_pc \
+       orangepi_pc_plus \
+       orangepi_plus \
+       orangepi_plus2e \
+       orangepi_zero
+IMX=\
+       cm_fx6 \
+       mx6cuboxi \
+       mx6qsabrelite \
+       nitrogen6q \
+       novena \
+       udoo \
+       usbarmory \
+       wandboard
+BOARDS=\
+       ${OMAP} \
+       ${SUNXI} \
+       ${IMX} \
+       clearfog \
+       qemu_arm \
+       rpi_2 \
+       rpi_3_32b \
+       tinker-rk3288 \
+       turris_omnia
+
+.include <bsd.port.mk>
diff --git a/sysutils/u-boot/arm/distinfo b/sysutils/u-boot/arm/distinfo
new file mode 100644
index 00000000000..674a428905c
--- /dev/null
+++ b/sysutils/u-boot/arm/distinfo
@@ -0,0 +1,2 @@
+SHA256 (u-boot-2021.10.tar.bz2) = zecj4ZJi5kbyZw0l5exLGzaEkN6VDU4mJ1qYjDbfC9Q=
+SIZE (u-boot-2021.10.tar.bz2) = 17358295
diff --git a/sysutils/u-boot/patches/patch-configs_rpi_2_defconfig b/sysutils/u-boot/arm/patches/patch-configs_rpi_2_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rpi_2_defconfig
rename to sysutils/u-boot/arm/patches/patch-configs_rpi_2_defconfig
diff --git a/sysutils/u-boot/patches/patch-configs_rpi_3_32b_defconfig b/sysutils/u-boot/arm/patches/patch-configs_rpi_3_32b_defconfig
similarity index 100%
rename from sysutils/u-boot/patches/patch-configs_rpi_3_32b_defconfig
rename to sysutils/u-boot/arm/patches/patch-configs_rpi_3_32b_defconfig
diff --git a/sysutils/u-boot/arm/patches/patch-drivers_pci_pcie_brcmstb_c b/sysutils/u-boot/arm/patches/patch-drivers_pci_pcie_brcmstb_c
new file mode 100644
index 00000000000..5c52791c841
--- /dev/null
+++ b/sysutils/u-boot/arm/patches/patch-drivers_pci_pcie_brcmstb_c
@@ -0,0 +1,42 @@
+revert 'pci: brcmstb: Cleanup controller state before handover'
+85f3fddbcc2e8282f1c26dcef4684f59490d47ba
+
+resetting pcie breaks pcie xhci on rpi4
+
+Index: drivers/pci/pcie_brcmstb.c
+--- drivers/pci/pcie_brcmstb.c.orig
++++ drivers/pci/pcie_brcmstb.c
+@@ -577,24 +577,6 @@ static int brcm_pcie_probe(struct udevice *dev)
+       return 0;
+ }
+
+-static int brcm_pcie_remove(struct udevice *dev)
+-{
+-      struct brcm_pcie *pcie = dev_get_priv(dev);
+-      void __iomem *base = pcie->base;
+-
+-      /* Assert fundamental reset */
+-      setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK);
+-
+-      /* Turn off SerDes */
+-      setbits_le32(base + PCIE_MISC_HARD_PCIE_HARD_DEBUG,
+-                   PCIE_HARD_DEBUG_SERDES_IDDQ_MASK);
+-
+-      /* Shutdown bridge */
+-      setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK);
+-
+-      return 0;
+-}
+-
+ static int brcm_pcie_of_to_plat(struct udevice *dev)
+ {
+       struct brcm_pcie *pcie = dev_get_priv(dev);
+@@ -634,8 +616,6 @@ U_BOOT_DRIVER(pcie_brcm_base) = {
+       .ops                    = &brcm_pcie_ops,
+       .of_match               = brcm_pcie_ids,
+       .probe                  = brcm_pcie_probe,
+-      .remove                 = brcm_pcie_remove,
+       .of_to_plat     = brcm_pcie_of_to_plat,
+       .priv_auto      = sizeof(struct brcm_pcie),
+-      .flags          = DM_FLAG_OS_PREPARE,
+ };
diff --git a/sysutils/u-boot/arm/pkg/DESCR b/sysutils/u-boot/arm/pkg/DESCR
new file mode 100644
index 00000000000..7425448b396
--- /dev/null
+++ b/sysutils/u-boot/arm/pkg/DESCR
@@ -0,0 +1,8 @@
+U-Boot is a firmware for embedded boards based on PowerPC, ARM, MIPS and
+several other processors, which can be installed in a boot ROM and used to
+initialize and test the hardware or to download and run application code.
+
+As ARM systems often do not come with firmware it must be supplied on
+an SD card or MMC device to have a bootable system.
+
+This package provides U-Boot for various boards using ARM processors.
diff --git a/sysutils/u-boot/arm/pkg/PLIST b/sysutils/u-boot/arm/pkg/PLIST
new file mode 100644
index 00000000000..5681374ac01
--- /dev/null
+++ b/sysutils/u-boot/arm/pkg/PLIST
@@ -0,0 +1,264 @@
+@pkgpath sysutils/u-boot,
+share/u-boot/
+share/u-boot/A10-OLinuXino-Lime/
+share/u-boot/A10-OLinuXino-Lime/sunxi-spl.bin
+@comment share/u-boot/A10-OLinuXino-Lime/u-boot
+share/u-boot/A10-OLinuXino-Lime/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/A10-OLinuXino-Lime/u-boot.bin
+@comment share/u-boot/A10-OLinuXino-Lime/u-boot.img
+share/u-boot/A10s-OLinuXino-M/
+share/u-boot/A10s-OLinuXino-M/sunxi-spl.bin
+@comment share/u-boot/A10s-OLinuXino-M/u-boot
+share/u-boot/A10s-OLinuXino-M/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/A10s-OLinuXino-M/u-boot.bin
+@comment share/u-boot/A10s-OLinuXino-M/u-boot.img
+share/u-boot/A20-OLinuXino-Lime/
+share/u-boot/A20-OLinuXino-Lime/sunxi-spl.bin
+@comment share/u-boot/A20-OLinuXino-Lime/u-boot
+share/u-boot/A20-OLinuXino-Lime/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/A20-OLinuXino-Lime/u-boot.bin
+@comment share/u-boot/A20-OLinuXino-Lime/u-boot.img
+share/u-boot/A20-OLinuXino-Lime2/
+share/u-boot/A20-OLinuXino-Lime2-eMMC/
+share/u-boot/A20-OLinuXino-Lime2-eMMC/sunxi-spl.bin
+@comment share/u-boot/A20-OLinuXino-Lime2-eMMC/u-boot
+share/u-boot/A20-OLinuXino-Lime2-eMMC/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/A20-OLinuXino-Lime2-eMMC/u-boot.bin
+@comment share/u-boot/A20-OLinuXino-Lime2-eMMC/u-boot.img
+share/u-boot/A20-OLinuXino-Lime2/sunxi-spl.bin
+@comment share/u-boot/A20-OLinuXino-Lime2/u-boot
+share/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/A20-OLinuXino-Lime2/u-boot.bin
+@comment share/u-boot/A20-OLinuXino-Lime2/u-boot.img
+share/u-boot/A20-OLinuXino_MICRO/
+share/u-boot/A20-OLinuXino_MICRO/sunxi-spl.bin
+@comment share/u-boot/A20-OLinuXino_MICRO/u-boot
+share/u-boot/A20-OLinuXino_MICRO/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/A20-OLinuXino_MICRO/u-boot.bin
+@comment share/u-boot/A20-OLinuXino_MICRO/u-boot.img
+share/u-boot/Bananapi/
+share/u-boot/Bananapi/sunxi-spl.bin
+@comment share/u-boot/Bananapi/u-boot
+share/u-boot/Bananapi/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Bananapi/u-boot.bin
+@comment share/u-boot/Bananapi/u-boot.img
+share/u-boot/Bananapi_M2_Ultra/
+share/u-boot/Bananapi_M2_Ultra/sunxi-spl.bin
+@comment share/u-boot/Bananapi_M2_Ultra/u-boot
+share/u-boot/Bananapi_M2_Ultra/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Bananapi_M2_Ultra/u-boot.bin
+@comment share/u-boot/Bananapi_M2_Ultra/u-boot.img
+share/u-boot/Bananapi_m2m/
+share/u-boot/Bananapi_m2m/sunxi-spl.bin
+@comment share/u-boot/Bananapi_m2m/u-boot
+share/u-boot/Bananapi_m2m/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Bananapi_m2m/u-boot.bin
+@comment share/u-boot/Bananapi_m2m/u-boot.img
+share/u-boot/Bananapro/
+share/u-boot/Bananapro/sunxi-spl.bin
+@comment share/u-boot/Bananapro/u-boot
+share/u-boot/Bananapro/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Bananapro/u-boot.bin
+@comment share/u-boot/Bananapro/u-boot.img
+share/u-boot/CHIP/
+share/u-boot/CHIP/sunxi-spl.bin
+@comment share/u-boot/CHIP/u-boot
+share/u-boot/CHIP/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/CHIP/u-boot.bin
+@comment share/u-boot/CHIP/u-boot.img
+share/u-boot/Cubieboard/
+share/u-boot/Cubieboard/sunxi-spl.bin
+@comment share/u-boot/Cubieboard/u-boot
+share/u-boot/Cubieboard/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Cubieboard/u-boot.bin
+@comment share/u-boot/Cubieboard/u-boot.img
+share/u-boot/Cubieboard2/
+share/u-boot/Cubieboard2/sunxi-spl.bin
+@comment share/u-boot/Cubieboard2/u-boot
+share/u-boot/Cubieboard2/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Cubieboard2/u-boot.bin
+@comment share/u-boot/Cubieboard2/u-boot.img
+share/u-boot/Cubieboard4/
+share/u-boot/Cubieboard4/sunxi-spl.bin
+@comment share/u-boot/Cubieboard4/u-boot
+share/u-boot/Cubieboard4/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Cubieboard4/u-boot.bin
+@comment share/u-boot/Cubieboard4/u-boot.img
+share/u-boot/Cubietruck/
+share/u-boot/Cubietruck/sunxi-spl.bin
+@comment share/u-boot/Cubietruck/u-boot
+share/u-boot/Cubietruck/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Cubietruck/u-boot.bin
+@comment share/u-boot/Cubietruck/u-boot.img
+share/u-boot/Lamobo_R1/
+share/u-boot/Lamobo_R1/sunxi-spl.bin
+@comment share/u-boot/Lamobo_R1/u-boot
+share/u-boot/Lamobo_R1/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Lamobo_R1/u-boot.bin
+@comment share/u-boot/Lamobo_R1/u-boot.img
+share/u-boot/Linksprite_pcDuino/
+share/u-boot/Linksprite_pcDuino/sunxi-spl.bin
+@comment share/u-boot/Linksprite_pcDuino/u-boot
+share/u-boot/Linksprite_pcDuino/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Linksprite_pcDuino/u-boot.bin
+@comment share/u-boot/Linksprite_pcDuino/u-boot.img
+share/u-boot/Linksprite_pcDuino3/
+share/u-boot/Linksprite_pcDuino3/sunxi-spl.bin
+@comment share/u-boot/Linksprite_pcDuino3/u-boot
+share/u-boot/Linksprite_pcDuino3/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Linksprite_pcDuino3/u-boot.bin
+@comment share/u-boot/Linksprite_pcDuino3/u-boot.img
+share/u-boot/Linksprite_pcDuino3_Nano/
+share/u-boot/Linksprite_pcDuino3_Nano/sunxi-spl.bin
+@comment share/u-boot/Linksprite_pcDuino3_Nano/u-boot
+share/u-boot/Linksprite_pcDuino3_Nano/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Linksprite_pcDuino3_Nano/u-boot.bin
+@comment share/u-boot/Linksprite_pcDuino3_Nano/u-boot.img
+share/u-boot/Orangepi/
+share/u-boot/Orangepi/sunxi-spl.bin
+@comment share/u-boot/Orangepi/u-boot
+share/u-boot/Orangepi/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Orangepi/u-boot.bin
+@comment share/u-boot/Orangepi/u-boot.img
+share/u-boot/Orangepi_mini/
+share/u-boot/Orangepi_mini/sunxi-spl.bin
+@comment share/u-boot/Orangepi_mini/u-boot
+share/u-boot/Orangepi_mini/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/Orangepi_mini/u-boot.bin
+@comment share/u-boot/Orangepi_mini/u-boot.img
+share/u-boot/am335x_evm/
+share/u-boot/am335x_evm/MLO
+@comment share/u-boot/am335x_evm/u-boot
+@comment share/u-boot/am335x_evm/u-boot.bin
+share/u-boot/am335x_evm/u-boot.img
+share/u-boot/bananapi_m2_plus_h3/
+share/u-boot/bananapi_m2_plus_h3/sunxi-spl.bin
+@comment share/u-boot/bananapi_m2_plus_h3/u-boot
+share/u-boot/bananapi_m2_plus_h3/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/bananapi_m2_plus_h3/u-boot.bin
+@comment share/u-boot/bananapi_m2_plus_h3/u-boot.img
+share/u-boot/bananapi_m2_zero/
+share/u-boot/bananapi_m2_zero/sunxi-spl.bin
+@comment share/u-boot/bananapi_m2_zero/u-boot
+share/u-boot/bananapi_m2_zero/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/bananapi_m2_zero/u-boot.bin
+@comment share/u-boot/bananapi_m2_zero/u-boot.img
+share/u-boot/clearfog/
+@comment share/u-boot/clearfog/u-boot
+share/u-boot/clearfog/u-boot-spl.kwb
+@comment share/u-boot/clearfog/u-boot.bin
+@comment share/u-boot/clearfog/u-boot.img
+share/u-boot/cm_fx6/
+share/u-boot/cm_fx6/SPL
+@comment share/u-boot/cm_fx6/u-boot
+@comment share/u-boot/cm_fx6/u-boot.bin
+share/u-boot/cm_fx6/u-boot.img
+share/u-boot/mx6cuboxi/
+share/u-boot/mx6cuboxi/SPL
+@comment share/u-boot/mx6cuboxi/u-boot
+@comment share/u-boot/mx6cuboxi/u-boot.bin
+share/u-boot/mx6cuboxi/u-boot.img
+share/u-boot/mx6qsabrelite/
+@comment share/u-boot/mx6qsabrelite/u-boot
+share/u-boot/mx6qsabrelite/u-boot-dtb.imx
+@comment share/u-boot/mx6qsabrelite/u-boot.bin
+share/u-boot/nanopi_neo/
+share/u-boot/nanopi_neo/sunxi-spl.bin
+@comment share/u-boot/nanopi_neo/u-boot
+share/u-boot/nanopi_neo/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/nanopi_neo/u-boot.bin
+@comment share/u-boot/nanopi_neo/u-boot.img
+share/u-boot/nitrogen6q/
+@comment share/u-boot/nitrogen6q/u-boot
+share/u-boot/nitrogen6q/u-boot-dtb.imx
+@comment share/u-boot/nitrogen6q/u-boot.bin
+share/u-boot/novena/
+share/u-boot/novena/SPL
+@comment share/u-boot/novena/u-boot
+@comment share/u-boot/novena/u-boot.bin
+share/u-boot/novena/u-boot.img
+share/u-boot/omap4_panda/
+share/u-boot/omap4_panda/MLO
+@comment share/u-boot/omap4_panda/u-boot
+@comment share/u-boot/omap4_panda/u-boot.bin
+share/u-boot/omap4_panda/u-boot.img
+share/u-boot/orangepi_2/
+share/u-boot/orangepi_2/sunxi-spl.bin
+@comment share/u-boot/orangepi_2/u-boot
+share/u-boot/orangepi_2/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_2/u-boot.bin
+@comment share/u-boot/orangepi_2/u-boot.img
+share/u-boot/orangepi_lite/
+share/u-boot/orangepi_lite/sunxi-spl.bin
+@comment share/u-boot/orangepi_lite/u-boot
+share/u-boot/orangepi_lite/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_lite/u-boot.bin
+@comment share/u-boot/orangepi_lite/u-boot.img
+share/u-boot/orangepi_one/
+share/u-boot/orangepi_one/sunxi-spl.bin
+@comment share/u-boot/orangepi_one/u-boot
+share/u-boot/orangepi_one/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_one/u-boot.bin
+@comment share/u-boot/orangepi_one/u-boot.img
+share/u-boot/orangepi_pc/
+share/u-boot/orangepi_pc/sunxi-spl.bin
+@comment share/u-boot/orangepi_pc/u-boot
+share/u-boot/orangepi_pc/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_pc/u-boot.bin
+@comment share/u-boot/orangepi_pc/u-boot.img
+share/u-boot/orangepi_pc_plus/
+share/u-boot/orangepi_pc_plus/sunxi-spl.bin
+@comment share/u-boot/orangepi_pc_plus/u-boot
+share/u-boot/orangepi_pc_plus/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_pc_plus/u-boot.bin
+@comment share/u-boot/orangepi_pc_plus/u-boot.img
+share/u-boot/orangepi_plus/
+share/u-boot/orangepi_plus/sunxi-spl.bin
+@comment share/u-boot/orangepi_plus/u-boot
+share/u-boot/orangepi_plus/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_plus/u-boot.bin
+@comment share/u-boot/orangepi_plus/u-boot.img
+share/u-boot/orangepi_plus2e/
+share/u-boot/orangepi_plus2e/sunxi-spl.bin
+@comment share/u-boot/orangepi_plus2e/u-boot
+share/u-boot/orangepi_plus2e/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_plus2e/u-boot.bin
+@comment share/u-boot/orangepi_plus2e/u-boot.img
+share/u-boot/orangepi_zero/
+share/u-boot/orangepi_zero/sunxi-spl.bin
+@comment share/u-boot/orangepi_zero/u-boot
+share/u-boot/orangepi_zero/u-boot-sunxi-with-spl.bin
+@comment share/u-boot/orangepi_zero/u-boot.bin
+@comment share/u-boot/orangepi_zero/u-boot.img
+share/u-boot/qemu_arm/
+share/u-boot/qemu_arm/u-boot
+share/u-boot/qemu_arm/u-boot.bin
+share/u-boot/rpi_2/
+@comment share/u-boot/rpi_2/u-boot
+share/u-boot/rpi_2/u-boot.bin
+share/u-boot/rpi_3_32b/
+@comment share/u-boot/rpi_3_32b/u-boot
+share/u-boot/rpi_3_32b/u-boot.bin
+share/u-boot/tinker-rk3288/
+share/u-boot/tinker-rk3288/idbloader.img
+@comment share/u-boot/tinker-rk3288/u-boot
+@comment share/u-boot/tinker-rk3288/u-boot.bin
+share/u-boot/tinker-rk3288/u-boot.img
+share/u-boot/turris_omnia/
+@comment share/u-boot/turris_omnia/u-boot
+share/u-boot/turris_omnia/u-boot-spl.kwb
+@comment share/u-boot/turris_omnia/u-boot.bin
+@comment share/u-boot/turris_omnia/u-boot.img
+share/u-boot/udoo/
+share/u-boot/udoo/SPL
+@comment share/u-boot/udoo/u-boot
+@comment share/u-boot/udoo/u-boot.bin
+share/u-boot/udoo/u-boot.img
+share/u-boot/usbarmory/
+share/u-boot/usbarmory/u-boot
+share/u-boot/usbarmory/u-boot.bin
+share/u-boot/wandboard/
+share/u-boot/wandboard/SPL
+@comment share/u-boot/wandboard/u-boot
+@comment share/u-boot/wandboard/u-boot.bin
+share/u-boot/wandboard/u-boot.img
diff --git a/sysutils/u-boot/patches/patch-configs_rpi_3_defconfig b/sysutils/u-boot/patches/patch-configs_rpi_3_defconfig
deleted file mode 100644
index 6c3e6862d5a..00000000000
--- a/sysutils/u-boot/patches/patch-configs_rpi_3_defconfig
+++ /dev/null
@@ -1,28 +0,0 @@
-rpi: Use firmware provided device tree
-
-Currently the firmware generates a device tree for us that we could
-just use to adjust ourselves. We then on boot throw that away and
-use our own built-in device tree to configure device access.
-
-This is bad for a multitude of reasons. For starters, it breaks
-overlay support in config.txt, confusing users. Much worse however
-is that we are stuck with individual U-Boot builds per board.
-The firmware can easily give us the right DT depending on the
-target board and revision though.
-
-So let's use the firmware provided device tree instead. That way
-U-Boot as well as payloads loaded by it can automatically adapt
-to variants of RPi hardware.
-
-Index: configs/rpi_3_defconfig
---- configs/rpi_3_defconfig.orig
-+++ configs/rpi_3_defconfig
-@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y
- CONFIG_CMD_MMC=y
- CONFIG_CMD_USB=y
- CONFIG_CMD_FS_UUID=y
--CONFIG_OF_EMBED=y
-+CONFIG_OF_BOARD=y
- CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
- CONFIG_SYS_RELOC_GD_ENV_ADDR=y
- CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
diff --git a/sysutils/u-boot/riscv64/Makefile b/sysutils/u-boot/riscv64/Makefile
new file mode 100644
index 00000000000..4927e7c1715
--- /dev/null
+++ b/sysutils/u-boot/riscv64/Makefile
@@ -0,0 +1,11 @@
+VERSION=       2021.10
+REVISION=      7
+
+SOC=           riscv64
+SOC_CPU=       riscv64
+
+BOARDS=\
+       qemu-riscv64_smode \
+       sifive_unmatched
+
+.include <bsd.port.mk>
diff --git a/sysutils/u-boot/riscv64/distinfo b/sysutils/u-boot/riscv64/distinfo
new file mode 100644
index 00000000000..674a428905c
--- /dev/null
+++ b/sysutils/u-boot/riscv64/distinfo
@@ -0,0 +1,2 @@
+SHA256 (u-boot-2021.10.tar.bz2) = zecj4ZJi5kbyZw0l5exLGzaEkN6VDU4mJ1qYjDbfC9Q=
+SIZE (u-boot-2021.10.tar.bz2) = 17358295
diff --git a/sysutils/u-boot/patches/patch-arch_riscv_Makefile b/sysutils/u-boot/riscv64/patches/patch-arch_riscv_Makefile
similarity index 100%
rename from sysutils/u-boot/patches/patch-arch_riscv_Makefile
rename to sysutils/u-boot/riscv64/patches/patch-arch_riscv_Makefile
diff --git a/sysutils/u-boot/riscv64/pkg/DESCR b/sysutils/u-boot/riscv64/pkg/DESCR
new file mode 100644
index 00000000000..7425448b396
--- /dev/null
+++ b/sysutils/u-boot/riscv64/pkg/DESCR
@@ -0,0 +1,8 @@
+U-Boot is a firmware for embedded boards based on PowerPC, ARM, MIPS and
+several other processors, which can be installed in a boot ROM and used to
+initialize and test the hardware or to download and run application code.
+
+As ARM systems often do not come with firmware it must be supplied on
+an SD card or MMC device to have a bootable system.
+
+This package provides U-Boot for various boards using ARM processors.
diff --git a/sysutils/u-boot/riscv64/pkg/PLIST b/sysutils/u-boot/riscv64/pkg/PLIST
new file mode 100644
index 00000000000..e0d4902e58e
--- /dev/null
+++ b/sysutils/u-boot/riscv64/pkg/PLIST
@@ -0,0 +1,10 @@
+share/u-boot/
+share/u-boot/qemu-riscv64_smode/
+share/u-boot/qemu-riscv64_smode/u-boot
+share/u-boot/qemu-riscv64_smode/u-boot.bin
+share/u-boot/sifive_unmatched/
+@comment share/u-boot/sifive_unmatched/u-boot
+share/u-boot/sifive_unmatched/u-boot-spl.bin
+@comment share/u-boot/sifive_unmatched/u-boot.bin
+@comment share/u-boot/sifive_unmatched/u-boot.img
+share/u-boot/sifive_unmatched/u-boot.itb
--
2.41.0

Reply via email to