> From: Stuart Henderson <[email protected]>
> 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'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.

Yes I thought about that.  I think that's best done after I split out
a few of the SoCs.


> On 7 August 2023 22:11:43 Mark Kettenis <[email protected]> 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 <[email protected]>
>  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