In release/release.sh:
- Rename chroot_arm_armv6_build_release() to chroot_arm_build_release() and make it hardware agnostic (such as armv6 -vs- armv7 -vs- arm64). - Evaluate EMBEDDED_TARGET differently so release/tools/arm.subr can be used for arm/armv6 and arm64/aarch64. - Update comments and copyright. In release/tools/arm.subr: - In arm_create_disk(), change the default alignment from 63 to 512k, fixing a boot issue on arm64 and EFI. [1] - Update comments and copyright. Add a RPI3 configuration file, pieces obtained from Crochet. Obtained from: Crochet [1] MFC after: 5 days X-MFC-Note: maybe Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
6f81bd02b3
commit
751c20d8a5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=320252
66
release/arm64/RPI3.conf
Normal file
66
release/arm64/RPI3.conf
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# $FreeBSD$
|
||||||
|
#
|
||||||
|
|
||||||
|
CHROOT_MAKEENV="TARGET=amd64 TARGET_ARCH=amd64"
|
||||||
|
SRCBRANCH="base/head@rHEAD"
|
||||||
|
EMBEDDEDBUILD=1
|
||||||
|
EMBEDDED_TARGET="arm64"
|
||||||
|
EMBEDDED_TARGET_ARCH="aarch64"
|
||||||
|
EMBEDDEDPORTS="sysutils/u-boot-rpi3 security/ca_root_nss"
|
||||||
|
KERNEL="GENERIC"
|
||||||
|
#MAKE_FLAGS="${MAKE_FLAGS} -s"
|
||||||
|
WORLD_FLAGS="${WORLD_FLAGS} -j48 UBLDR_LOADADDR=0x42000000"
|
||||||
|
IMAGE_SIZE="2G"
|
||||||
|
PART_SCHEME="MBR"
|
||||||
|
FAT_SIZE="50m -b 1m"
|
||||||
|
FAT_TYPE="16"
|
||||||
|
MD_ARGS="-x 63 -y 255"
|
||||||
|
NODOC=1
|
||||||
|
DTB_REPO="https://github.com/raspberrypi/firmware/blob/master/boot"
|
||||||
|
DTB="bcm2710-rpi-3-b.dtb"
|
||||||
|
OVERLAYS="mmc.dtbo pi3-disable-bt.dtbo"
|
||||||
|
export BOARDNAME="RPI3"
|
||||||
|
|
||||||
|
arm_install_uboot() {
|
||||||
|
UBOOT_DIR="/usr/local/share/u-boot/u-boot-rpi3"
|
||||||
|
UBOOT_FILES="LICENCE.broadcom README armstub8.bin bootcode.bin config.txt \
|
||||||
|
fixup.dat fixup_cd.dat fixup_x.dat start.elf start_cd.elf \
|
||||||
|
start_x.elf u-boot.bin"
|
||||||
|
FATMOUNT="${DESTDIR%${KERNEL}}fat"
|
||||||
|
UFSMOUNT="${DESTDIR%${KERNEL}}ufs"
|
||||||
|
chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
|
||||||
|
chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
|
||||||
|
chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
|
||||||
|
for _UF in ${UBOOT_FILES}; do
|
||||||
|
chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/${_UF} \
|
||||||
|
${FATMOUNT}/${_UF}
|
||||||
|
done
|
||||||
|
chroot ${CHROOTDIR} fetch -o "${FATMOUNT}/${DTB}" "${DTB_REPO}/${DTB}?raw=true"
|
||||||
|
chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/overlays
|
||||||
|
for _OL in ${OVERLAYS}; do
|
||||||
|
chroot ${CHROOTDIR} fetch -o "${FATMOUNT}/overlays/${_OL}"\
|
||||||
|
"${DTB_REPO}/overlays/${_OL}?raw=true"
|
||||||
|
done
|
||||||
|
|
||||||
|
_OBJDIR="$(chroot ${CHROOTDIR} make -C ${WORLDDIR} -V .OBJDIR)"
|
||||||
|
_OBJDIR="$(realpath ${_OBJDIR})"
|
||||||
|
if [ -d "${CHROOTDIR}/${_OBJDIR%%/usr/src}/${TARGET}.${TARGET_ARCH}" ]; then
|
||||||
|
BOOTFILES="/${_OBJDIR%%/usr/src}/${TARGET}.${TARGET_ARCH}/usr/src/sys/boot"
|
||||||
|
else
|
||||||
|
BOOTFILES="/${_OBJDIR}/sys/boot"
|
||||||
|
fi
|
||||||
|
|
||||||
|
chroot ${CHROOTDIR} mkdir -p ${FATMOUNT}/EFI/BOOT
|
||||||
|
chroot ${CHROOTDIR} cp -p ${BOOTFILES}/efi/boot1/boot1.efi \
|
||||||
|
${FATMOUNT}/EFI/BOOT/bootaa64.efi
|
||||||
|
chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
|
||||||
|
sync
|
||||||
|
umount_loop ${CHROOTDIR}/${FATMOUNT}
|
||||||
|
umount_loop ${CHROOTDIR}/${UFSMOUNT}
|
||||||
|
chroot ${CHROOTDIR} rmdir ${FATMOUNT}
|
||||||
|
chroot ${CHROOTDIR} rmdir ${UFSMOUNT}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#-
|
#-
|
||||||
# Copyright (c) 2013-2015 The FreeBSD Foundation
|
# Copyright (c) 2013-2017 The FreeBSD Foundation
|
||||||
# Copyright (c) 2013 Glen Barber
|
# Copyright (c) 2013 Glen Barber
|
||||||
# Copyright (c) 2011 Nathan Whitehorn
|
# Copyright (c) 2011 Nathan Whitehorn
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
@ -148,10 +148,11 @@ env_check() {
|
|||||||
WITH_COMPRESSED_IMAGES=
|
WITH_COMPRESSED_IMAGES=
|
||||||
NODOC=yes
|
NODOC=yes
|
||||||
case ${EMBEDDED_TARGET}:${EMBEDDED_TARGET_ARCH} in
|
case ${EMBEDDED_TARGET}:${EMBEDDED_TARGET_ARCH} in
|
||||||
arm:armv6)
|
arm:armv6|arm64:aarch64)
|
||||||
chroot_build_release_cmd="chroot_arm_armv6_build_release"
|
chroot_build_release_cmd="chroot_arm_build_release"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -346,13 +347,19 @@ chroot_build_release() {
|
|||||||
return 0
|
return 0
|
||||||
} # chroot_build_release()
|
} # chroot_build_release()
|
||||||
|
|
||||||
# chroot_arm_armv6_build_release(): Create arm/armv6 SD card image.
|
# chroot_arm_build_release(): Create arm SD card image.
|
||||||
chroot_arm_armv6_build_release() {
|
chroot_arm_build_release() {
|
||||||
load_target_env
|
load_target_env
|
||||||
eval chroot ${CHROOTDIR} make -C /usr/src/release obj
|
eval chroot ${CHROOTDIR} make -C /usr/src/release obj
|
||||||
if [ -e "${RELENGDIR}/tools/${EMBEDDED_TARGET}.subr" ]; then
|
case ${EMBEDDED_TARGET} in
|
||||||
. "${RELENGDIR}/tools/${EMBEDDED_TARGET}.subr"
|
arm|arm64)
|
||||||
fi
|
if [ -e "${RELENGDIR}/tools/arm.subr" ]; then
|
||||||
|
. "${RELENGDIR}/tools/arm.subr"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
[ ! -z "${RELEASECONF}" ] && . "${RELEASECONF}"
|
[ ! -z "${RELEASECONF}" ] && . "${RELEASECONF}"
|
||||||
WORLDDIR="$(eval chroot ${CHROOTDIR} make -C /usr/src/release -V WORLDDIR)"
|
WORLDDIR="$(eval chroot ${CHROOTDIR} make -C /usr/src/release -V WORLDDIR)"
|
||||||
OBJDIR="$(eval chroot ${CHROOTDIR} make -C /usr/src/release -V .OBJDIR)"
|
OBJDIR="$(eval chroot ${CHROOTDIR} make -C /usr/src/release -V .OBJDIR)"
|
||||||
@ -381,7 +388,7 @@ chroot_arm_armv6_build_release() {
|
|||||||
> CHECKSUM.SHA256
|
> CHECKSUM.SHA256
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
} # chroot_arm_armv6_build_release()
|
} # chroot_arm_build_release()
|
||||||
|
|
||||||
# main(): Start here.
|
# main(): Start here.
|
||||||
main() {
|
main() {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#-
|
#-
|
||||||
# Copyright (c) 2015 The FreeBSD Foundation
|
# Copyright (c) 2015-2017 The FreeBSD Foundation
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Portions of this software were developed by Glen Barber
|
# Portions of this software were developed by Glen Barber
|
||||||
@ -27,7 +27,7 @@
|
|||||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
# SUCH DAMAGE.
|
# SUCH DAMAGE.
|
||||||
#
|
#
|
||||||
# Common subroutines used to build arm/armv6 images.
|
# Common subroutines used to build arm SD card images.
|
||||||
#
|
#
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
#
|
#
|
||||||
@ -65,7 +65,7 @@ umount_loop() {
|
|||||||
arm_create_disk() {
|
arm_create_disk() {
|
||||||
# Create the target raw file and temporary work directory.
|
# Create the target raw file and temporary work directory.
|
||||||
chroot ${CHROOTDIR} gpart create -s ${PART_SCHEME} ${mddev}
|
chroot ${CHROOTDIR} gpart create -s ${PART_SCHEME} ${mddev}
|
||||||
chroot ${CHROOTDIR} gpart add -t '!12' -a 63 -s ${FAT_SIZE} ${mddev}
|
chroot ${CHROOTDIR} gpart add -t '!12' -a 512k -s ${FAT_SIZE} ${mddev}
|
||||||
chroot ${CHROOTDIR} gpart set -a active -i 1 ${mddev}
|
chroot ${CHROOTDIR} gpart set -a active -i 1 ${mddev}
|
||||||
chroot ${CHROOTDIR} newfs_msdos -L msdosboot -F ${FAT_TYPE} /dev/${mddev}s1
|
chroot ${CHROOTDIR} newfs_msdos -L msdosboot -F ${FAT_TYPE} /dev/${mddev}s1
|
||||||
chroot ${CHROOTDIR} gpart add -t freebsd ${mddev}
|
chroot ${CHROOTDIR} gpart add -t freebsd ${mddev}
|
||||||
|
Loading…
Reference in New Issue
Block a user