Index: head/release/arm/BEAGLEBONE.conf =================================================================== --- head/release/arm/BEAGLEBONE.conf (revision 282514) +++ head/release/arm/BEAGLEBONE.conf (revision 282515) @@ -1,37 +1,38 @@ #!/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 EMBEDDEDPORTS="sysutils/u-boot-beaglebone" # 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 EMBEDDEDPORTS="lang/python textproc/gsed" 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="BEAGLEBONE" export CROCHETSRC="https://github.com/freebsd/crochet" export CROCHETBRANCH="trunk@rHEAD" } Index: head/release/arm/release.sh =================================================================== --- head/release/arm/release.sh (revision 282514) +++ head/release/arm/release.sh (revision 282515) @@ -1,156 +1,151 @@ #!/bin/sh #- # Copyright (c) 2013, 2014 The FreeBSD Foundation # All rights reserved. # # This software was developed by Glen Barber # under sponsorship from the FreeBSD Foundation. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # # This script is intended to be called by release/release.sh to build ARM # images for release. It is not intended to be run directly. This sets up # the software needed within a build chroot, then runs crochet to provide # downloadable images for embedded devices. set -e before_build() { WANT_UBOOT= KNOWNHASH= UBOOT_VERSION= case ${KERNEL} in - BEAGLEBONE) - WANT_UBOOT=1 - KNOWNHASH="7b6444bd23eb61068c43bd1d44ec7e7bfdbce5cadeca20c833eee186b4d3fd31" - UBOOT_VERSION="u-boot-2014.04" - ;; PANDABOARD) WANT_UBOOT=1 KNOWNHASH="e08e20a6979bfca6eebb9a2b0e42aa4416af3d796332fd63a3470495a089d496" UBOOT_VERSION="u-boot-2012.07" ;; WANDBOARD-QUAD) WANT_UBOOT=1 KNOWNHASH="b4f83b8db325c21671a997198ec3a373e2e00dde2fcf17be9b9afd7cfd727f56" UBOOT_VERSION="u-boot-2014.07" ;; *) # Fallthrough. ;; esac if [ ! -z ${WANT_UBOOT} ]; then chroot ${CHROOTDIR} fetch -o /tmp/crochet/${UBOOT_VERSION}.tar.bz2 \ http://people.freebsd.org/~gjb/${UBOOT_VERSION}.tar.bz2 UBOOT_HASH="$(sha256 -q ${CHROOTDIR}/tmp/crochet/${UBOOT_VERSION}.tar.bz2)" if [ "${UBOOT_HASH}" != "${KNOWNHASH}" ]; then echo "Checksum mismatch! Exiting now." exit 1 fi chroot ${CHROOTDIR} tar xf /tmp/crochet/${UBOOT_VERSION}.tar.bz2 \ -C /tmp/crochet/ fi } install_crochet() { chroot ${CHROOTDIR} svn co -q ${CROCHETSRC}/${CROCHETBRANCH} \ /tmp/crochet } install_uboot() { # Only fetch u-boot sources if UBOOTSRC is set; otherwise it is # not needed. if [ -n "${UBOOTSRC}" ]; then continue else return 0 fi chroot ${CHROOTDIR} svn co -q ${UBOOTSRC}/${UBOOTBRANCH} \ /${UBOOTDIR} } main() { # Fix broken ports that use kern.osreldate. OSVERSION=$(chroot ${CHROOTDIR} /usr/bin/uname -U) export OSVERSION REVISION=$(chroot ${CHROOTDIR} make -C /usr/src/release -V REVISION) BRANCH=$(chroot ${CHROOTDIR} make -C /usr/src/release -V BRANCH) UNAME_r=${REVISION}-${BRANCH} export UNAME_r export XZ_CMD=$(chroot ${CHROOTDIR} make -C /usr/src/release -V XZ_CMD) # Build the 'xdev' target for crochet. eval chroot ${CHROOTDIR} make -C /usr/src \ ${XDEV_FLAGS} XDEV=${XDEV} XDEV_ARCH=${XDEV_ARCH} \ TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ ${WORLD_FLAGS} xdev # Install the cross-build symlinks to /usr/bin to make crochet # happy. eval chroot ${CHROOTDIR} make -C /usr/src \ ${XDEV_FLAGS} XDEV=${XDEV} XDEV_ARCH=${XDEV_ARCH} \ TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ ${WORLD_FLAGS} xdev-links || true # Run the ldconfig(8) startup script so /var/run/ld-elf*.so.hints # is created. eval chroot ${CHROOTDIR} /etc/rc.d/ldconfig forcerestart # Install security/ca_root_nss since we need to check the https # certificate of github. eval chroot ${CHROOTDIR} make -C /usr/ports/security/ca_root_nss \ OPTIONS_SET="ETCSYMLINK" BATCH=1 FORCE_PKG_REGISTER=1 \ install clean distclean EMBEDDEDPORTS="${EMBEDDEDPORTS} devel/subversion" for _PORT in ${EMBEDDEDPORTS}; do eval chroot ${CHROOTDIR} make -C /usr/ports/${_PORT} \ BATCH=1 FORCE_PKG_REGISTER=1 install clean distclean done # Certain u-boot versions hardcode the use of a host gcc, and gcc's # build relies on having gperf installed. eval chroot ${CHROOTDIR} make -C /usr/src/gnu/usr.bin/gperf \ WITH_GCC=1 ${WORLD_FLAGS} obj eval chroot ${CHROOTDIR} make -C /usr/src/gnu/usr.bin/gperf \ WITH_GCC=1 ${WORLD_FLAGS} -j1 depend all eval chroot ${CHROOTDIR} make -C /usr/src/gnu/usr.bin/gperf \ WITH_GCC=1 ${WORLD_FLAGS} -j1 install eval chroot ${CHROOTDIR} make -C /usr/src/gnu/usr.bin/cc \ WITH_GCC=1 ${WORLD_FLAGS} -j1 obj depend all install mkdir -p ${CHROOTDIR}/tmp/crochet/work before_build install_crochet install_uboot eval chroot ${CHROOTDIR} /bin/sh /tmp/crochet/crochet.sh \ -c /tmp/external/${XDEV}/crochet-${KERNEL}.conf mkdir -p ${CHROOTDIR}/R/ cp -p ${CHROOTDIR}/usr/obj/*.img ${CHROOTDIR}/R/ ${XZ_CMD} ${CHROOTDIR}/R/FreeBSD*.img cd ${CHROOTDIR}/R/ && sha256 FreeBSD*.img.xz > CHECKSUM.SHA256 cd ${CHROOTDIR}/R/ && md5 FreeBSD*.img.xz > CHECKSUM.MD5 } main "$@" exit 0 Index: head/release/tools/arm/crochet-BEAGLEBONE.conf =================================================================== --- head/release/tools/arm/crochet-BEAGLEBONE.conf (revision 282514) +++ head/release/tools/arm/crochet-BEAGLEBONE.conf (revision 282515) @@ -1,29 +1,40 @@ # # $FreeBSD$ # # This is the configuration file for use with crochet to produce # FreeBSD BeagleBone images. board_setup BeagleBone 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=BEAGLEBONE 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 +BEAGLEBONE_UBOOT=/tmp/external/u-boot-beaglebone + +beaglebone_check_uboot() { + mkdir -p "${BEAGLEBONE_UBOOT}" + ln -fs /usr/local/share/u-boot/u-boot-beaglebone/MLO \ + ${BEAGLEBONE_UBOOT}/MLO + ln -fs /usr/local/share/u-boot/u-boot-beaglebone/u-boot.img \ + ${BEAGLEBONE_UBOOT}/bb-uboot.img + ln -fs ${BOARDDIR}/files/uEnv.txt \ + ${BEAGLEBONE_UBOOT}/bb-uenv.txt +}