Download raw body.
UPDATE: sysutils/u-boot
On Mon, Aug 11, 2025 at 10:29:34PM +0200, Marcus Glocker wrote:
> On Mon, Aug 11, 2025 at 10:21:57PM +0200, Marcus Glocker wrote:
>
> > Hi,
> >
> > As discussed today with kettenis@ on icb hackers, we would like to make
> > two changes to sysutils/u-boot:
> >
> > 1. Split out the rpi part from aarch64, and move it to an own
> > subdir. This for example simplifies the testing during
> > updates, by having a smaller subset of devices being
> > impacted.
> >
> > 2. Update the rpi u-boot to 2025.07, the same version as we
> > already use for rk356x and rk3588. This is required to
> > progress on the Raspberry Pi 5-B support.
> >
> > I've decided to put both changes in to one diff. I've tested the
> > new rpi u-boot successfully on the Raspberry Pi 3-B Plus, and the
> > Raspberry Pi 4-B. My ask:
> >
> > - Call for testing on the other supported Raspberry Pi devices.
> >
> > - Any feedback on the diff itself.
> >
> > Thanks,
> > Marcus
>
> And as always, missed the aarch64 revision bump, noticed 5 seconds
> after hitting the send button. Updated diff.
Fixes inline,
>
> Index: sysutils/u-boot/Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/u-boot/Makefile,v
> diff -u -p -u -p -r1.101 Makefile
> --- sysutils/u-boot/Makefile 9 Apr 2024 13:03:23 -0000 1.101
> +++ sysutils/u-boot/Makefile 11 Aug 2025 20:25:04 -0000
> @@ -4,6 +4,7 @@
> SUBDIR += riscv64
> SUBDIR += rk356x
> SUBDIR += rk3588
> + SUBDIR += rpi
> SUBDIR += sun50i
> SUBDIR += sunxi
>
> Index: sysutils/u-boot/aarch64/Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/u-boot/aarch64/Makefile,v
> diff -u -p -u -p -r1.8 Makefile
> --- sysutils/u-boot/aarch64/Makefile 21 Dec 2024 11:38:54 -0000 1.8
> +++ sysutils/u-boot/aarch64/Makefile 11 Aug 2025 20:25:04 -0000
> @@ -1,5 +1,5 @@
> VERSION= 2021.10
> -REVISION= 10
> +REVISION= 11
>
> SOC= aarch64
>
> @@ -17,8 +17,7 @@ BOARDS=\
> rock960-rk3399 \
> rock-pi-4-rk3399 \
> rock-pi-n10-rk3399pro \
> - rockpro64-rk3399 \
> - rpi_arm64
> + rockpro64-rk3399
>
> BUILD_DEPENDS+= devel/arm-none-eabi/gcc,aarch64 \
> devel/py-elftools \
> Index: sysutils/u-boot/aarch64/patches/patch-drivers_pci_pcie_brcmstb_c
> ===================================================================
> RCS file: sysutils/u-boot/aarch64/patches/patch-drivers_pci_pcie_brcmstb_c
> diff -N sysutils/u-boot/aarch64/patches/patch-drivers_pci_pcie_brcmstb_c
> --- sysutils/u-boot/aarch64/patches/patch-drivers_pci_pcie_brcmstb_c 11 Aug 2023 19:48:27 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,42 +0,0 @@
> -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,
> - };
> Index: sysutils/u-boot/aarch64/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/sysutils/u-boot/aarch64/pkg/PLIST,v
> diff -u -p -u -p -r1.3 PLIST
> --- sysutils/u-boot/aarch64/pkg/PLIST 24 Feb 2024 11:57:37 -0000 1.3
> +++ sysutils/u-boot/aarch64/pkg/PLIST 11 Aug 2025 20:25:04 -0000
> @@ -98,6 +98,3 @@ share/u-boot/rockpro64-rk3399/u-boot-roc
> @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
> Index: sysutils/u-boot/rpi/Makefile
> ===================================================================
> RCS file: sysutils/u-boot/rpi/Makefile
> diff -N sysutils/u-boot/rpi/Makefile
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/u-boot/rpi/Makefile 11 Aug 2025 20:25:04 -0000
> @@ -0,0 +1,28 @@
> +VERSION= 2025.07
> +
> +SOC= rpi
> +
> +BOARDS=\
> + rpi_arm64
> +
> +BUILD_DEPENDS+= devel/arm-none-eabi/gcc,aarch64 \
> + devel/py-elftools \
You're missing shells/bash and security/gnutls, the build fails
without them installed. Other recent u-boot ports also have a dep on
sysutils/e2fsprogs, but it doesn't seem required here.
> + sysutils/arm-trusted-firmware>=2.2p0v0
> +CROSS_COMPILE= aarch64-none-elf-
> +
> +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
> + cd ${WRKSRC}/build/${BOARD} && \
> + ../../scripts/config --set-val BAUDRATE 115200
> + cd ${WRKSRC} && \
> + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
> + O="build/${BOARD}" \
> + -f ${MAKE_FILE} ${ALL_TARGET}
> +.endfor
> +
> +.include <bsd.port.mk>
> Index: sysutils/u-boot/rpi/distinfo
> ===================================================================
> RCS file: sysutils/u-boot/rpi/distinfo
> diff -N sysutils/u-boot/rpi/distinfo
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/u-boot/rpi/distinfo 11 Aug 2025 20:25:04 -0000
> @@ -0,0 +1,2 @@
> +SHA256 (u-boot-2025.07.tar.bz2) = D5M/bFpCaJW/MG6T5qxTxghw5LVM2lbZUhG+yZ5jvsc=
> +SIZE (u-boot-2025.07.tar.bz2) = 33516210
> Index: sysutils/u-boot/rpi/patches/patch-drivers_pci_pcie_brcmstb_c
> ===================================================================
> RCS file: sysutils/u-boot/rpi/patches/patch-drivers_pci_pcie_brcmstb_c
> diff -N sysutils/u-boot/rpi/patches/patch-drivers_pci_pcie_brcmstb_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/u-boot/rpi/patches/patch-drivers_pci_pcie_brcmstb_c 11 Aug 2025 20:25:04 -0000
> @@ -0,0 +1,41 @@
> +revert 'pci: brcmstb: Cleanup controller state before handover'
> +85f3fddbcc2e8282f1c26dcef4684f59490d47ba
> +
> +resetting pcie breaks pcie xhci on rpi4
> +
> +--- drivers/pci/pcie_brcmstb.c.orig Mon Jul 7 17:48:28 2025
> ++++ drivers/pci/pcie_brcmstb.c Sun Aug 10 19:49:25 2025
> +@@ -508,24 +508,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, PCIE_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, PCIE_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);
> +@@ -565,8 +547,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,
> + };
> Index: sysutils/u-boot/rpi/pkg/DESCR
> ===================================================================
> RCS file: sysutils/u-boot/rpi/pkg/DESCR
> diff -N sysutils/u-boot/rpi/pkg/DESCR
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/u-boot/rpi/pkg/DESCR 11 Aug 2025 20:25:04 -0000
> @@ -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 Raspberry Pi boards using 64-bit ARM processors.
Please fold to 80 characters (as hinted by portcheck(1)).
> Index: sysutils/u-boot/rpi/pkg/PLIST
> ===================================================================
> RCS file: sysutils/u-boot/rpi/pkg/PLIST
> diff -N sysutils/u-boot/rpi/pkg/PLIST
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysutils/u-boot/rpi/pkg/PLIST 11 Aug 2025 20:25:04 -0000
> @@ -0,0 +1,5 @@
> +@pkgpath sysutils/u-boot,rpi
Please drop this line which isn't needed - when sysutils/u-boot was a
single port there was no "rpi" FLAVOR - and instead add
@conflict u-boot-aarch64-<2021.10p11
In my tests this is needed for pkg_add -U u-boot-rpi to work out of
the box. With these fixes applied ok jca@ ports-wise (no rpi at hand
to test).
> +share/u-boot/
> +share/u-boot/rpi_arm64/
> +@comment share/u-boot/rpi_arm64/u-boot
> +share/u-boot/rpi_arm64/u-boot.bin
>
--
jca
UPDATE: sysutils/u-boot