Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Jun 2026 18:25:33 +0000
From:      Joseph Mingrone <jrm@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: a20df639517c - main - sysutils/rpi-usbboot: Raspberry Pi USB device provisioning tool
Message-ID:  <6a20719d.2288c.7af73496@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by jrm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a20df639517c1ca99c5145d9e00293ec008a8391

commit a20df639517c1ca99c5145d9e00293ec008a8391
Author:     Joseph Mingrone <jrm@FreeBSD.org>
AuthorDate: 2026-05-28 22:05:48 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2026-06-03 18:21:22 +0000

    sysutils/rpi-usbboot: Raspberry Pi USB device provisioning tool
    
    Reviewed by:    emaste
    Tested by:      emaste
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D57317
---
 sysutils/Makefile                         |  1 +
 sysutils/rpi-usbboot/Makefile             | 22 ++++++++++++++++++++++
 sysutils/rpi-usbboot/distinfo             |  3 +++
 sysutils/rpi-usbboot/files/patch-Makefile | 18 ++++++++++++++++++
 sysutils/rpi-usbboot/files/patch-main.c   | 11 +++++++++++
 sysutils/rpi-usbboot/pkg-descr            |  5 +++++
 sysutils/rpi-usbboot/pkg-plist            |  7 +++++++
 7 files changed, 67 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index b4bc8334a6df..b6113c665988 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1187,6 +1187,7 @@
     SUBDIR += root-tail
     SUBDIR += rovclock
     SUBDIR += rpi-firmware
+    SUBDIR += rpi-usbboot
     SUBDIR += rset
     SUBDIR += rshim-user-space
     SUBDIR += rsnapshot
diff --git a/sysutils/rpi-usbboot/Makefile b/sysutils/rpi-usbboot/Makefile
new file mode 100644
index 000000000000..bea00832c647
--- /dev/null
+++ b/sysutils/rpi-usbboot/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	rpi-usbboot
+DISTVERSION=	20260603
+CATEGORIES=	sysutils
+
+MAINTAINER=	jrm@FreeBSD.org
+COMMENT=	Raspberry Pi USB device provisioning tool
+WWW=		https://github.com/raspberrypi/usbboot
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		gmake pkgconfig
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	raspberrypi
+GH_PROJECT=	usbboot
+GH_TAGNAME=	58c1051777998637083b9d7d8b8700dabf97d468
+
+ALL_TARGET=	rpiboot
+MAKE_ARGS=	INSTALL_PREFIX=${PREFIX} PKG_VER=${DISTVERSION}
+
+.include <bsd.port.mk>
diff --git a/sysutils/rpi-usbboot/distinfo b/sysutils/rpi-usbboot/distinfo
new file mode 100644
index 000000000000..4693fe32ab13
--- /dev/null
+++ b/sysutils/rpi-usbboot/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1780510799
+SHA256 (raspberrypi-usbboot-20260603-58c1051777998637083b9d7d8b8700dabf97d468_GH0.tar.gz) = 0826b38b1e07069edf73df0027a75e2dbe49ca09d8f9be86b10a6767c03aa9c7
+SIZE (raspberrypi-usbboot-20260603-58c1051777998637083b9d7d8b8700dabf97d468_GH0.tar.gz) = 126865434
diff --git a/sysutils/rpi-usbboot/files/patch-Makefile b/sysutils/rpi-usbboot/files/patch-Makefile
new file mode 100644
index 000000000000..e642d987385f
--- /dev/null
+++ b/sysutils/rpi-usbboot/files/patch-Makefile
@@ -0,0 +1,18 @@
+--- Makefile.orig	2026-05-27 13:41:12 UTC
++++ Makefile
+@@ -1,6 +1,3 @@
+-BUILD_DATE ?= $(shell date "+%Y/%m/%d")
+-PKG_VER=$(shell if [ -f debian/changelog ]; then grep rpiboot debian/changelog | head -n1 | sed 's/.*(\(.*\)).*/\1/g'; else echo local; fi)
+-GIT_VER=$(shell git rev-parse HEAD 2>/dev/null | cut -c1-8 || echo "")
+ HAVE_XXD=$(shell xxd -v >/dev/null 2>/dev/null && echo y)
+ INSTALL_PREFIX?=/usr
+ ifeq ($(OS),Windows_NT)
+@@ -10,7 +7,7 @@ rpiboot: main.c bootfiles.c decode_duid.c fmemopen.c m
+ endif
+ 
+ rpiboot: main.c bootfiles.c decode_duid.c fmemopen.c msd/bootcode.h msd/start.h msd/bootcode4.h
+-	$(CC) -Wall -Wextra -g $(CPPFLAGS) $(CFLAGS) -o $@ main.c bootfiles.c decode_duid.c `pkg-config --cflags --libs libusb-1.0` -DGIT_VER="\"$(GIT_VER)\"" -DPKG_VER="\"$(PKG_VER)\"" -DBUILD_DATE="\"$(BUILD_DATE)\"" -DDEFAULT_MSG_DIR=\"$(DEFAULT_MSG_DIR)\" $(LDFLAGS)
++	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ main.c bootfiles.c decode_duid.c `pkg-config --cflags --libs libusb-1.0` -DPKG_VER="\"$(PKG_VER)\"" -DDEFAULT_MSG_DIR=\"$(DEFAULT_MSG_DIR)\" $(LDFLAGS)
+ 
+ ifeq ($(HAVE_XXD),y)
+ %.h: %.bin
diff --git a/sysutils/rpi-usbboot/files/patch-main.c b/sysutils/rpi-usbboot/files/patch-main.c
new file mode 100644
index 000000000000..9a8ec3d9e11c
--- /dev/null
+++ b/sysutils/rpi-usbboot/files/patch-main.c
@@ -0,0 +1,11 @@
+--- main.c.orig	2026-06-03 17:54:41 UTC
++++ main.c
+@@ -480,7 +480,7 @@ void print_version(void)
+ 
+ void print_version(void)
+ {
+-	printf("RPIBOOT: build-date %s pkg-version %s %s\n", BUILD_DATE, PKG_VER, GIT_VER);
++	printf("RPIBOOT: FreeBSD package version %s\n", PKG_VER);
+ }
+ 
+ void get_options(int argc, char *argv[])
diff --git a/sysutils/rpi-usbboot/pkg-descr b/sysutils/rpi-usbboot/pkg-descr
new file mode 100644
index 000000000000..e3cf303a7a9c
--- /dev/null
+++ b/sysutils/rpi-usbboot/pkg-descr
@@ -0,0 +1,5 @@
+The rpiboot tool provides a file server for loading software into memory
+on a Raspberry Pi for provisioning.  By default, it boots the device
+with firmware that makes it appear to the host as a USB mass-storage
+device.  The host operating system then treats it as a standard USB
+drive, allowing the filesystem to be accessed.
diff --git a/sysutils/rpi-usbboot/pkg-plist b/sysutils/rpi-usbboot/pkg-plist
new file mode 100644
index 000000000000..3472f330909a
--- /dev/null
+++ b/sysutils/rpi-usbboot/pkg-plist
@@ -0,0 +1,7 @@
+bin/rpiboot
+share/rpiboot/mass-storage-gadget64/boot.img
+share/rpiboot/mass-storage-gadget64/bootfiles.bin
+share/rpiboot/mass-storage-gadget64/config.txt
+share/rpiboot/msd/bootcode.bin
+share/rpiboot/msd/bootcode4.bin
+share/rpiboot/msd/start.elf


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a20719d.2288c.7af73496>