diff options
author | Glen Barber <gjb@FreeBSD.org> | 2015-05-05 16:28:04 +0000 |
---|---|---|
committer | Glen Barber <gjb@FreeBSD.org> | 2015-05-05 16:28:04 +0000 |
commit | 20a67b05200871b833b09c573b2d64dc1a060ed3 (patch) | |
tree | fc35778596391a73aeffe2b88fef465c323c6997 | |
parent | 65c3de4e620a465cfd7bf067bcc18ec33cc2275b (diff) | |
download | src-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.conf | 53 | ||||
-rwxr-xr-x | release/release.sh | 1 | ||||
-rw-r--r-- | release/tools/arm/crochet-RPI2.conf | 29 |
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 |