> Date: Tue, 8 Aug 2023 16:20:09 -0400
> From: A Tammy <openbsd.po...@aisha.cc>
> 
> On 8/8/23 15:38, Mark Kettenis wrote:
> >> From: Stuart Henderson <s...@spacehopper.org>
> >> Date: Mon, 07 Aug 2023 22:59:21 +0100
> >>
> >> 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.
> > Thanks, that does indeed make updates work!  New diff attached.
> I think you forgot to attach :P

Ugh, here it is.



>From 259ee792caa2211de9cf972c7b897d9ca35f3c41 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             | 194 +++++++++++++
 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                 | 265 ++++++++++++++++++
 .../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             |  11 +
 43 files changed, 802 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..de7df829409
--- /dev/null
+++ b/sysutils/u-boot/aarch64/pkg/PLIST
@@ -0,0 +1,194 @@
+@pkgpath sysutils/u-boot-pinebook
+@pkgpath sysutils/u-boot,aarch64
+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..2a9ae2e526f
--- /dev/null
+++ b/sysutils/u-boot/arm/pkg/PLIST
@@ -0,0 +1,265 @@
+@pkgpath sysutils/u-boot,
+@pkgpath sysutils/u-boot,arm
+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..871ffbd1dff
--- /dev/null
+++ b/sysutils/u-boot/riscv64/pkg/PLIST
@@ -0,0 +1,11 @@
+@pkgpath sysutils/u-boot,riscv64
+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