aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlen Barber <gjb@FreeBSD.org>2015-05-05 16:28:04 +0000
committerGlen Barber <gjb@FreeBSD.org>2015-05-05 16:28:04 +0000
commit20a67b05200871b833b09c573b2d64dc1a060ed3 (patch)
treefc35778596391a73aeffe2b88fef465c323c6997
parent65c3de4e620a465cfd7bf067bcc18ec33cc2275b (diff)
downloadsrc-20a67b05200871b833b09c573b2d64dc1a060ed3.tar.gz
src-20a67b05200871b833b09c573b2d64dc1a060ed3.zip
Add initial support for building RPI2 images.
In release.sh, allow overriding buildenv_setup() before the handoff to arm/release.sh. Copy arm/RPI-B.conf -> arm/RPI2.conf, set UBOOT_PORT and the correct KERNEL, and add the buildenv_setup() override to install the sysutils/u-boot-rpi2 port/package. Copy tools/arm/crochet-RPI-B.conf -> tools/arm/crochet-RPI2.conf, and set the correct entries for the RaspberryPi2 board. Thanks to: loos@ Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=282500
-rw-r--r--release/arm/RPI2.conf53
-rwxr-xr-xrelease/release.sh1
-rw-r--r--release/tools/arm/crochet-RPI2.conf29
3 files changed, 83 insertions, 0 deletions
diff --git a/release/arm/RPI2.conf b/release/arm/RPI2.conf
new file mode 100644
index 000000000000..5cf31ffc9276
--- /dev/null
+++ b/release/arm/RPI2.conf
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# Global variables.
+export SVNROOT="svn://svn.FreeBSD.org/"
+export SRCBRANCH="base/head@rHEAD"
+export DOCBRANCH="doc/head@rHEAD"
+export PORTBRANCH="ports/head@rHEAD"
+export NODOC=yes
+export WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
+export KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
+export CHROOTDIR="/scratch"
+export EMBEDDEDBUILD=1
+export UBOOT_PORT="sysutils/u-boot-rpi2"
+
+# Build chroot configuration
+load_chroot_env() {
+ # Avoid collision with TARGET and XDEV.
+ unset XDEV XDEV_ARCH KERNEL
+ export TARGET="amd64"
+ export TARGET_ARCH="amd64"
+}
+
+# Build target configuration
+load_target_env() {
+ # Avoid collision with TARGET and XDEV.
+ unset TARGET TARGET_ARCH
+ export XDEV="arm"
+ export XDEV_ARCH="armv6"
+ export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
+ export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
+ export KERNEL="RPI2"
+ export CROCHETSRC="https://github.com/freebsd/crochet"
+ export CROCHETBRANCH="trunk@rHEAD"
+}
+
+# Build environment setup
+buildenv_setup() {
+ if [ ! -d ${CHROOTDIR}/usr/ports/${UBOOT_PORT} ]; then
+ chroot ${CHROOTDIR} env ASSUME_ALWAYS_YES=yes \
+ /usr/sbin/pkg bootstrap -y
+ chroot ${CHROOTDIR} env ASSUME_ALWAYS_YES=yes \
+ /usr/sbin/pkg install -y ${UBOOT_PORT}
+ else
+ chroot ${CHROOTDIR} env BATCH=1 \
+ make -C /usr/ports/${UBOOT_PORT} \
+ all install clean
+ fi
+ return 0
+}
+
diff --git a/release/release.sh b/release/release.sh
index 6b24b73b8071..158794f0c515 100755
--- a/release/release.sh
+++ b/release/release.sh
@@ -238,6 +238,7 @@ fi
# Embedded builds do not use the 'make release' target.
if [ -n "${EMBEDDEDBUILD}" ]; then
+ buildenv_setup
# If a crochet configuration file exists in *this* checkout of
# release/, copy it to the /tmp/external directory within the chroot.
# This allows building embedded releases without relying on updated
diff --git a/release/tools/arm/crochet-RPI2.conf b/release/tools/arm/crochet-RPI2.conf
new file mode 100644
index 000000000000..7ecab4ca5b44
--- /dev/null
+++ b/release/tools/arm/crochet-RPI2.conf
@@ -0,0 +1,29 @@
+#
+# $FreeBSD$
+#
+
+# This is the configuration file for use with crochet to produce
+# FreeBSD Raspberry Pi 2 images.
+
+board_setup RaspberryPi2
+option ImageSize 1gb
+option Growfs
+
+export MAKEOBJDIRPREFIX=/usr/obj
+FREEBSD_SRC=/usr/src
+__MAKE_CONF=/dev/null
+SRCCONF=/dev/null
+WORKDIR=/usr/obj
+_BRANCH=$(make -C ${FREEBSD_SRC}/release -V BRANCH)
+_REVISION=$(make -C ${FREEBSD_SRC}/release -V REVISION)
+KERNCONF=RPI2
+TARGET=arm
+TARGET_ARCH=armv6
+FREEBSD_BUILDWORLD_EXTRA_ARGS="${WORLD_FLAGS}"
+FREEBSD_BUILDKERNEL_EXTRA_ARGS="${KERNEL_FLAGS}"
+FREEBSD_INSTALLWORLD_EXTRA_ARGS=""
+FREEBSD_INSTALLKERNEL_EXTRA_ARGS=""
+FREEBSD_WORLD_EXTRA_ARGS=""
+FREEBSD_KERNEL_EXTRA_ARGS=""
+FREEBSD_EXTRA_ARGS=""
+IMG=${WORKDIR}/FreeBSD-${_REVISION}-${_BRANCH}-${TARGET}-${TARGET_ARCH}-${KERNCONF}.img